Skip to content

Modernize the GitHub Actions CI#322

Merged
avsm merged 4 commits into
mirage:mainfrom
samoht:fix-ci
Jul 10, 2026
Merged

Modernize the GitHub Actions CI#322
avsm merged 4 commits into
mirage:mainfrom
samoht:fix-ci

Conversation

@samoht

@samoht samoht commented Jul 7, 2026

Copy link
Copy Markdown
Member

CI currently fails on every PR: avsm/setup-ocaml@v1 errors with "the architecture is not supported" on today's runners, so all jobs abort in ~10s. This switches to ocaml/setup-ocaml@v3 + actions/checkout@v4, drops the removed opam depext step, and bumps the matrix to OCaml 5.3/5.1/4.14 (which ship a dune supporting the 3.17 language, needed once #321 lands).

avsm/setup-ocaml@v1 fails on current runners ("the architecture is not
supported"), so every job aborts. Switch to ocaml/setup-ocaml@v3 and
actions/checkout@v4 and drop the removed "opam depext" step.

Build cstruct and its runtime siblings on OCaml 5.3/5.1/4.14. ppx_cstruct
(ocaml-migrate-parsetree) and cstruct-async (async) do not build on
OCaml 5, so run the full build and test on 4.14.
samoht added 2 commits July 7, 2026 10:36
Their v0.17 releases require OCaml >= 5.1, but the Async binding only
builds on OCaml 4.x. Without an upper bound the solver picks v0.17 on a
5.x switch and the build fails; cap the three at < v0.17.0 so the
constraint that cstruct-async is OCaml 4.x-only lives in the package
metadata.
fuzz/fuzz.ml uses Crowbar's char generator, added in crowbar 0.2; 0.1
lacks it. Without a lower bound the solver picks crowbar 0.1 and the
fuzz build fails with "Unbound value char".
@samoht

samoht commented Jul 7, 2026

Copy link
Copy Markdown
Member Author

Need ocaml/opam-repository#30217 to fix the ocaml-ci issues.

The Drone pipeline (cloud.drone.io) that ran the afl campaign no longer
executes builds, so drop .drone.yml. The fuzz executable is afl-only:
its generators are unbounded (cstructs up to 64 KiB, unbounded lists), so
quickcheck mode hangs -- fuzz.ml itself guards against it. Build it under
runtest as a compile check instead of running it; reinstate the afl
campaign on an afl-instrumented switch when needed.
@samoht

samoht commented Jul 10, 2026

Copy link
Copy Markdown
Member Author

@avsm I've removed the Drone CI as it seems to be completely dead since they got acquired.

@avsm

avsm commented Jul 10, 2026

Copy link
Copy Markdown
Member

Looks good, thanks!

@avsm
avsm merged commit d4aa4f5 into mirage:main Jul 10, 2026
9 checks passed
@samoht
samoht deleted the fix-ci branch July 10, 2026 21:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants