diff --git a/.github/workflows/ci.ml b/.github/workflows/ci.ml index 77ffd687992..6f753cebb8b 100644 --- a/.github/workflows/ci.ml +++ b/.github/workflows/ci.ml @@ -13,14 +13,17 @@ open Lib +let latest_ocaml4 = "4.14.2" +let latest_ocaml5 = "5.2.0" let ocamls = [ (* Fully supported versions *) "4.08.1"; "4.09.1"; "4.10.2"; "4.11.2"; "4.12.1"; "4.13.1"; - "5.0.0"; "5.1.1"; "5.2.0"; + "5.0.0"; "5.1.1"; (* The last elements of the list after 4.14 will be used as default versions *) - "4.14.2"; + latest_ocaml4; latest_ocaml5; ] +let start_latests_ocaml = (4, 14) (* Entry point for the workflow. Workflows are specified as continuations where each job is passed as a continuation to the [workflow], terminated with @@ -69,8 +72,6 @@ let end_workflow ~oc:_ ~workflow:_ = () let ocamls = List.map (fun v -> Scanf.sscanf v "%u.%u.%u" (fun major minor _ -> ((major, minor), v))) ocamls -let start_latests_ocaml = (4, 14) - let platform_ocaml_matrix ?(dir=List.drop_while) ~fail_fast start_version = (fail_fast, [("ocamlv", List.map snd (dir (fun ocaml -> fst ocaml <> start_version) ocamls))], @@ -300,13 +301,18 @@ let main_build_job ~analyse_job ~cygwin_job ?section runner start_version ~oc ~w (* Intentionally fail fast, no need to run all build if there is a * problem in a given version; usually it is functions not defined in lower * versions of OCaml. *) - let (_fail_fast, matrix, _) = platform_ocaml_matrix ~fail_fast:true start_version in let (matrix, includes) = if platform = Windows then - (("host", ["x86_64-pc-cygwin"; "i686-w64-mingw32"; "x86_64-w64-mingw32"; "i686-pc-windows"; "x86_64-pc-windows"]) :: - ("build", ["x86_64-pc-cygwin"]) :: - matrix, []) + ([], [ + [("host", "x86_64-pc-cygwin"); ("build", "x86_64-pc-cygwin"); ("ocamlv", latest_ocaml4)]; + [("host", "i686-w64-mingw32"); ("build", "x86_64-pc-cygwin"); ("ocamlv", latest_ocaml4)]; + [("host", "x86_64-w64-mingw32"); ("build", "x86_64-pc-cygwin"); ("ocamlv", latest_ocaml4)]; + [("host", "x86_64-w64-mingw32"); ("build", "x86_64-pc-cygwin"); ("ocamlv", latest_ocaml5)]; + [("host", "i686-pc-windows"); ("build", "x86_64-pc-cygwin"); ("ocamlv", latest_ocaml4)]; + [("host", "x86_64-pc-windows"); ("build", "x86_64-pc-cygwin"); ("ocamlv", latest_ocaml4)]; + ]) else + let (_fail_fast, matrix, _) = platform_ocaml_matrix ~fail_fast:true start_version in (matrix, []) in let matrix = ((platform <> Windows), matrix, includes) in let needs = if platform = Windows then [analyse_job; cygwin_job] else [analyse_job] in diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 10df4d143b6..155edebc0e4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -106,7 +106,7 @@ jobs: needs: Analyse strategy: matrix: - ocamlv: [ 4.08.1, 4.09.1, 4.10.2, 4.11.2, 4.12.1, 4.13.1, 5.0.0, 5.1.1, 5.2.0, 4.14.2 ] + ocamlv: [ 4.08.1, 4.09.1, 4.10.2, 4.11.2, 4.12.1, 4.13.1, 5.0.0, 5.1.1, 4.14.2, 5.2.0 ] fail-fast: true steps: - name: Install bubblewrap @@ -141,9 +141,25 @@ jobs: needs: [ Analyse, Cygwin ] strategy: matrix: - host: [ x86_64-pc-cygwin, i686-w64-mingw32, x86_64-w64-mingw32, i686-pc-windows, x86_64-pc-windows ] - build: [ x86_64-pc-cygwin ] - ocamlv: [ 4.14.2 ] + include: + - host: x86_64-pc-cygwin + build: x86_64-pc-cygwin + ocamlv: 4.14.2 + - host: i686-w64-mingw32 + build: x86_64-pc-cygwin + ocamlv: 4.14.2 + - host: x86_64-w64-mingw32 + build: x86_64-pc-cygwin + ocamlv: 4.14.2 + - host: x86_64-w64-mingw32 + build: x86_64-pc-cygwin + ocamlv: 5.2.0 + - host: i686-pc-windows + build: x86_64-pc-cygwin + ocamlv: 4.14.2 + - host: x86_64-pc-windows + build: x86_64-pc-cygwin + ocamlv: 4.14.2 fail-fast: false defaults: run: @@ -226,7 +242,7 @@ jobs: needs: Analyse strategy: matrix: - ocamlv: [ 4.14.2 ] + ocamlv: [ 4.14.2, 5.2.0 ] fail-fast: true steps: - name: Checkout tree @@ -262,7 +278,7 @@ jobs: needs: [ Analyse, Build-Linux ] strategy: matrix: - ocamlv: [ 4.14.2 ] + ocamlv: [ 4.14.2, 5.2.0 ] fail-fast: false env: OPAM_TEST: 1 @@ -316,7 +332,7 @@ jobs: needs: Analyse strategy: matrix: - ocamlv: [ 4.14.2 ] + ocamlv: [ 4.14.2, 5.2.0 ] fail-fast: false env: OPAM_TEST: 1 @@ -403,7 +419,7 @@ jobs: strategy: matrix: solver: [ z3, 0install ] - ocamlv: [ 4.14.2 ] + ocamlv: [ 4.14.2, 5.2.0 ] fail-fast: false env: SOLVER: ${{ matrix.solver }} @@ -451,7 +467,7 @@ jobs: strategy: matrix: solver: [ z3, 0install ] - ocamlv: [ 4.14.2 ] + ocamlv: [ 4.14.2, 5.2.0 ] fail-fast: false env: SOLVER: ${{ matrix.solver }} @@ -499,7 +515,7 @@ jobs: needs: [ Analyse, Build-Linux ] strategy: matrix: - ocamlv: [ 4.14.2 ] + ocamlv: [ 4.14.2, 5.2.0 ] fail-fast: false steps: - name: Install bubblewrap @@ -532,7 +548,7 @@ jobs: needs: [ Analyse, Build-macOS ] strategy: matrix: - ocamlv: [ 4.14.2 ] + ocamlv: [ 4.14.2, 5.2.0 ] fail-fast: false steps: - name: Checkout tree diff --git a/master_changes.md b/master_changes.md index 75a08ba191b..f833d57a90b 100644 --- a/master_changes.md +++ b/master_changes.md @@ -113,7 +113,7 @@ users) ## Github Actions * Add OCaml 5.2.0 to the build matrix [#6216 @kit-ty-kate] - * Allow to have more than one OCaml default version [#6216 @kit-ty-kate] + * Allow to have more than one OCaml default version and add 5.2 to the list of default versions together with 4.14 [#6216 @kit-ty-kate] * Bump 4.14 to the latest patch version (4.14.2) [#6216 @kit-ty-kate] ## Doc