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

Merged
merged 3 commits into from
Jan 23, 2025
Merged
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
9 changes: 8 additions & 1 deletion .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"
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
11 changes: 6 additions & 5 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.0" (* 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.1";

(* The last elements of the list after 4.14 will be used as default versions *)
latest_ocaml4; latest_ocaml5;
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"; *) (* TODO: Restore Cygwin + OCaml 5.3 when C++ support is fixed and released *)
"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 Expand Up @@ -525,8 +526,8 @@ let main oc : unit =
("OPAM12CACHE", "~/.cache/opam1.2/cache");
(* These should be identical to the values in appveyor.yml *)
("OPAM_REPO", "https://github.com/ocaml/opam-repository.git");
("OPAM_TEST_REPO_SHA", "dff745994c64d083a6ba3ddc5a9c28ed0ad0f40a");
("OPAM_REPO_SHA", "6eee105e52e098e36949a584c053a18bcb9b2f6b");
("OPAM_TEST_REPO_SHA", "67e940587b8aca227f511e1943bcd31eabe6b1db");
("OPAM_REPO_SHA", "67e940587b8aca227f511e1943bcd31eabe6b1db");
("SOLVER", "");
(* Cygwin configuration *)
("CYGWIN_MIRROR", "http://mirrors.kernel.org/sourceware/cygwin/");
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
31 changes: 17 additions & 14 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ env:
OPAMBSROOT: ~/.cache/.opam.cached
OPAM12CACHE: ~/.cache/opam1.2/cache
OPAM_REPO: https://github.com/ocaml/opam-repository.git
OPAM_TEST_REPO_SHA: dff745994c64d083a6ba3ddc5a9c28ed0ad0f40a
OPAM_REPO_SHA: 6eee105e52e098e36949a584c053a18bcb9b2f6b
OPAM_TEST_REPO_SHA: 67e940587b8aca227f511e1943bcd31eabe6b1db
OPAM_REPO_SHA: 67e940587b8aca227f511e1943bcd31eabe6b1db
SOLVER:
CYGWIN_MIRROR: http://mirrors.kernel.org/sourceware/cygwin/
CYGWIN_ROOT: D:\cygwin
Expand Down 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.1, 4.14.2, 5.3.0 ]
fail-fast: true
steps:
- name: Install bubblewrap
Expand Down Expand Up @@ -139,7 +139,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 @@ -161,7 +161,10 @@ jobs:
ocamlv: 4.14.2
- host: x86_64-w64-mingw32
build: x86_64-pc-cygwin
ocamlv: 5.2.0
ocamlv: 5.3.0
- host: x86_64-pc-windows
build: x86_64-pc-cygwin
ocamlv: 5.3.0
fail-fast: false
defaults:
run:
Expand Down Expand Up @@ -244,7 +247,7 @@ jobs:
needs: Analyse
strategy:
matrix:
ocamlv: [ 4.14.2, 5.2.0 ]
ocamlv: [ 4.14.2, 5.3.0 ]
fail-fast: true
steps:
- name: Install GNU patch
Expand Down Expand Up @@ -282,7 +285,7 @@ jobs:
needs: [ Analyse, Build-Linux ]
strategy:
matrix:
ocamlv: [ 4.14.2, 5.2.0 ]
ocamlv: [ 4.14.2, 5.3.0 ]
fail-fast: false
env:
OPAM_TEST: 1
Expand Down Expand Up @@ -339,7 +342,7 @@ jobs:
needs: Analyse
strategy:
matrix:
ocamlv: [ 4.14.2, 5.2.0 ]
ocamlv: [ 4.14.2, 5.3.0 ]
fail-fast: false
env:
OPAM_TEST: 1
Expand Down Expand Up @@ -428,7 +431,7 @@ jobs:
needs: [ Analyse, Build-Linux ]
strategy:
matrix:
ocamlv: [ 4.14.2, 5.2.0 ]
ocamlv: [ 4.14.2, 5.3.0 ]
fail-fast: false
env:
OPAM_DOC: 1
Expand Down Expand Up @@ -485,7 +488,7 @@ jobs:
strategy:
matrix:
solver: [ z3, 0install ]
ocamlv: [ 4.14.2, 5.2.0 ]
ocamlv: [ 4.14.2, 5.3.0 ]
fail-fast: false
env:
SOLVER: ${{ matrix.solver }}
Expand Down Expand Up @@ -535,7 +538,7 @@ jobs:
strategy:
matrix:
solver: [ z3, 0install ]
ocamlv: [ 4.14.2, 5.2.0 ]
ocamlv: [ 4.14.2, 5.3.0 ]
fail-fast: false
env:
SOLVER: ${{ matrix.solver }}
Expand Down Expand Up @@ -583,7 +586,7 @@ jobs:
needs: [ Analyse, Build-Linux ]
strategy:
matrix:
ocamlv: [ 4.14.2, 5.2.0 ]
ocamlv: [ 4.14.2, 5.3.0 ]
fail-fast: false
steps:
- name: Install bubblewrap
Expand Down Expand Up @@ -618,7 +621,7 @@ jobs:
needs: [ Analyse, Build-macOS ]
strategy:
matrix:
ocamlv: [ 4.14.2, 5.2.0 ]
ocamlv: [ 4.14.2, 5.3.0 ]
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 @@ -100,6 +100,8 @@ users)
* Upgrade to opam-file-format 2.2.0~alpha1 [#6321 @kit-ty-kate]
* Add menhir to the list of vendored packages [#6321 @kit-ty-kate]
* Upgrade the vendored spdx\_licenses to 1.3.0 [#6370 @kit-ty-kate - fix #6369]
* Bump the vendored dune to 3.16.1 [#6192 @kit-ty-kate]
* Fix compilation on macOS with OCaml 5.3 by bumping the vendored mccs to 1.1+19 [#6192 @kit-ty-kate]

## Infrastructure

Expand Down Expand Up @@ -172,6 +174,8 @@ users)
* Check `shell/install.sh` using `shellcheck` [#6313 @kit-ty-kate]
* Fix the alpine depexts test [#6363 @kit-ty-kate]
* Speedup the gentoo depexts test [#6363 @kit-ty-kate]
* Add OCaml 5.3 to the build matrix [#6192 @kit-ty-kate]
* Add OCaml 5.3/MSVC to the build matrix [#6192 @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
4 changes: 2 additions & 2 deletions src_ext/Makefile.sources
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ MD5_cudf = ed8fea314d0c6dc0d8811ccf860c53dd
URL_dose3 = https://gitlab.com/irill/dose3/-/archive/7.0.0/dose3-7.0.0.tar.gz
MD5_dose3 = bc99cbcea8fca29dca3ebbee54be45e1

URL_mccs = https://github.com/ocaml-opam/ocaml-mccs/releases/download/1.1+18/mccs-1.1+18.tar.gz
MD5_mccs = 3fd6f609a02f3357f57570750fcacde0
URL_mccs = https://github.com/ocaml-opam/ocaml-mccs/releases/download/1.1+19/mccs-1.1+19.tar.gz
MD5_mccs = f852da188bf7de20e64be2fce0e48e0a

URL_opam-0install-cudf = https://github.com/ocaml-opam/opam-0install-cudf/releases/download/v0.5.0/opam-0install-cudf-0.5.0.tar.gz
MD5_opam-0install-cudf = 75419722aa839f518a25cae1b3c6efd4
Expand Down
Loading