Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GHA: Add OCaml 5.3 to the build matrix #6192

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions .github/scripts/main/ocaml-cache.sh
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,12 @@ case "$HOST" in
esac

FLEXDLL_VERSION=0.43
MINGW_W64_VERSION=12.0.0

curl -sLO "https://github.com/ocaml/ocaml/archive/refs/tags/${OCAML_VERSION}.tar.gz"
curl -sLO "https://github.com/ocaml/ocaml/archive/${OCAML_VERSION}.tar.gz"
if [[ $PLATFORM = 'Windows' ]] ; then
curl -sLO "https://github.com/ocaml/flexdll/archive/refs/tags/$FLEXDLL_VERSION.tar.gz"
curl -sLO "https://github.com/mingw-w64/mingw-w64/archive/refs/tags/v${MINGW_W64_VERSION}.tar.gz"
fi

tar -xzf "$OCAML_VERSION.tar.gz"
Expand All @@ -72,6 +74,11 @@ if [[ $PLATFORM = 'Windows' ]] ; then
tar -xzf ../$FLEXDLL_VERSION.tar.gz
rm -rf flexdll
mv "flexdll-$FLEXDLL_VERSION" flexdll

tar -xzf "../v${MINGW_W64_VERSION}.tar.gz"
rm -rf winpthreads
mv "mingw-w64-${MINGW_W64_VERSION}/mingw-w64-libraries/winpthreads" winpthreads
rm -rf "mingw-w64-${MINGW_W64_VERSION}"
fi

if [[ $PLATFORM = 'macOS' ]]; then
Expand Down Expand Up @@ -115,7 +122,7 @@ if [[ $OPAM_TEST -ne 1 ]] ; then
fi
fi

if ! ./configure --prefix "$PREFIX"$HOST --with-vendored-deps ${CONFIGURE_SWITCHES:-} ; then
if ! ./configure --prefix "$PREFIX"$HOST ${CONFIGURE_SWITCHES:-} ; then
echo
echo -e "[\e[31mERROR\e[0m] OCaml's configure script failed"
(set +x ; echo -en "::group::config.log contents\r") 2>/dev/null
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/ci.ml
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@
open Lib

let latest_ocaml4 = "4.14.2"
let latest_ocaml5 = "5.2.0" (* Add this number to ocamls below when the next version comes out *)
let latest_ocaml5 = "5.3" (* Add this number to ocamls below when the next version comes out *)
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.0.0"; "5.1.1"; "5.2.0";

(* The last elements of the list after 4.14 will be used as default versions *)
latest_ocaml4; latest_ocaml5;
Expand Down Expand Up @@ -70,7 +70,7 @@ jobs:
let end_workflow ~oc:_ ~workflow:_ = ()

let ocamls =
List.map (fun v -> Scanf.sscanf v "%u.%u.%u" (fun major minor _ -> ((major, minor), v))) ocamls
List.map (fun v -> Scanf.sscanf v "%u.%u" (fun major minor -> ((major, minor), v))) ocamls

let platform_ocaml_matrix ?(dir=List.drop_while) ~fail_fast start_version =
(fail_fast,
Expand Down Expand Up @@ -312,8 +312,9 @@ let main_build_job ~analyse_job ~cygwin_job ?section runner start_version ~oc ~w
"x86_64-pc-windows"
] in
let ocaml5 = [
"x86_64-pc-cygwin";
"x86_64-w64-mingw32";
(* "x86_64-pc-windows"; 5.3 needed *)
"x86_64-pc-windows";
] in
let matrix_elem ocamlv hosts =
let elem ocaml host =
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lib.ml
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ let find_need need = Hashtbl.find jobs need
let emit_runs_on ~oc runs_on =
let runner_of_platform (type a) (platform : a platform) =
match platform with
| Windows -> "windows-2019"
| Windows -> "windows-2022"
| MacOS
| Linux as platform -> os_name_of_platform platform ^ "-latest"
| Specific (platform, version) -> os_name_of_platform platform ^ "-" ^ version
Expand Down
28 changes: 17 additions & 11 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ jobs:
run: bash -exu .github/scripts/main/archives-cache.sh

Cygwin:
runs-on: windows-2019
runs-on: windows-2022
needs: Analyse
steps:
- name: Cygwin64 Cache
Expand All @@ -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, 4.14.2, 5.2.0 ]
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, 5.3 ]
fail-fast: true
steps:
- name: Install bubblewrap
Expand Down Expand Up @@ -137,7 +137,7 @@ jobs:
run: bash -exu .github/scripts/main/test.sh

Build-Windows:
runs-on: windows-2019
runs-on: windows-2022
needs: [ Analyse, Cygwin ]
strategy:
matrix:
Expand All @@ -157,9 +157,15 @@ jobs:
- host: x86_64-pc-windows
build: x86_64-pc-cygwin
ocamlv: 4.14.2
- host: x86_64-pc-cygwin
build: x86_64-pc-cygwin
ocamlv: 5.3
- host: x86_64-w64-mingw32
build: x86_64-pc-cygwin
ocamlv: 5.2.0
ocamlv: 5.3
- host: x86_64-pc-windows
build: x86_64-pc-cygwin
ocamlv: 5.3
fail-fast: false
defaults:
run:
Expand Down Expand Up @@ -242,7 +248,7 @@ jobs:
needs: Analyse
strategy:
matrix:
ocamlv: [ 4.14.2, 5.2.0 ]
ocamlv: [ 4.14.2, 5.3 ]
fail-fast: true
steps:
- name: Checkout tree
Expand Down Expand Up @@ -278,7 +284,7 @@ jobs:
needs: [ Analyse, Build-Linux ]
strategy:
matrix:
ocamlv: [ 4.14.2, 5.2.0 ]
ocamlv: [ 4.14.2, 5.3 ]
fail-fast: false
env:
OPAM_TEST: 1
Expand Down Expand Up @@ -332,7 +338,7 @@ jobs:
needs: Analyse
strategy:
matrix:
ocamlv: [ 4.14.2, 5.2.0 ]
ocamlv: [ 4.14.2, 5.3 ]
fail-fast: false
env:
OPAM_TEST: 1
Expand Down Expand Up @@ -473,7 +479,7 @@ jobs:
strategy:
matrix:
solver: [ z3, 0install ]
ocamlv: [ 4.14.2, 5.2.0 ]
ocamlv: [ 4.14.2, 5.3 ]
fail-fast: false
env:
SOLVER: ${{ matrix.solver }}
Expand Down Expand Up @@ -521,7 +527,7 @@ jobs:
strategy:
matrix:
solver: [ z3, 0install ]
ocamlv: [ 4.14.2, 5.2.0 ]
ocamlv: [ 4.14.2, 5.3 ]
fail-fast: false
env:
SOLVER: ${{ matrix.solver }}
Expand Down Expand Up @@ -569,7 +575,7 @@ jobs:
needs: [ Analyse, Build-Linux ]
strategy:
matrix:
ocamlv: [ 4.14.2, 5.2.0 ]
ocamlv: [ 4.14.2, 5.3 ]
fail-fast: false
steps:
- name: Install bubblewrap
Expand Down Expand Up @@ -602,7 +608,7 @@ jobs:
needs: [ Analyse, Build-macOS ]
strategy:
matrix:
ocamlv: [ 4.14.2, 5.2.0 ]
ocamlv: [ 4.14.2, 5.3 ]
fail-fast: false
steps:
- name: Checkout tree
Expand Down
4 changes: 4 additions & 0 deletions master_changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,10 @@ users)

## Github Actions
* Add a doc generation job under linux [#5349 @rjbou]
* Add OCaml 5.2.0 to the build matrix [#6216 @kit-ty-kate]
* Allow to have more than one OCaml default version to run all jobs 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]
* Add OCaml 5.3 to the build matrix [#6189 @kit-ty-kate]

## Doc
* Update the command to install opam to point to the new simplified url on opam.ocaml.org [#6226 @kit-ty-kate]
Expand Down
4 changes: 2 additions & 2 deletions src_ext/Makefile.dune
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# NB If minimum OCaml version for Dune changes, update DUNE_SECONDARY in configure.ac
URL_dune-local = https://github.com/ocaml/dune/releases/download/3.16.0/dune-3.16.0.tbz
MD5_dune-local = 4605a1d9783a96a16cbec381cfbb3ac1
URL_dune-local = https://github.com/ocaml/dune/releases/download/3.16.1/dune-3.16.1.tbz
MD5_dune-local = c19a1bb71eb3510ca15ddcf9f875947a
Loading