ocurrent / ocaml-ci

A CI for OCaml projects
https://ocaml.ci.dev
111 stars 75 forks source link

Exclude debian-12 x86_32 from builds with capnproto #932

Closed shonfeder closed 3 months ago

shonfeder commented 3 months ago

Debian 12, "bookwork" is currently on a stable package repo, and package versions are frozen. The frozen version of capnproto is 0.9.2. This version does not support large files on 32 bit arch, and this can result in specious test and build failures.

These false positives have been giving us noisy red trunks for a long while, but this fix should clean up our builds until we either drop support for this target or the fix needed is backported to 0.9.2.

Mitigates #931, however that should remain open until we have a fix, rather than a workaround.

shonfeder commented 3 months ago

There's a CI failure on the linting job I'm troubleshooting (tho which I think must be unrelated):

/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
           (network host)
           (shell "opam depext -i conf-m4 && opam depext -i dune 'odoc>=1.5.0'"))
Opam plugin "depext" may require upgrading/reinstalling. Reinstall the plugin on the current switch? [Y/n] y
[WARNING] Opam package conf-git.1.1 depends on the following system package that can no longer be found: git
The following actions will be performed:
  - recompile opam-depext 1.2.1-1

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved opam-depext.1.2.1-1  (cached)
-> removed   opam-depext.1.2.1-1
-> installed opam-depext.1.2.1-1
Done.

<><> opam-depext.1.2.1-1 installed successfully <><><><><><><><><><><><><><><><>
=> opam-depext is unnecessary when used with opam >= 2.1. Please use opam install directly instead
# Run eval $(opam env) to update the current shell environment

<><> Carrying on to "opam depext -i conf-m4" ><><><><><><><><><><><><><><><><><>

You are using opam 2.1+, where external dependency handling has been integrated: consider calling opam directly, the 'depext' plugin interface is provided for backwards compatibility only
# Detecting depexts using vars: arch=x86_64, os=linux, os-distribution=alpine, os-family=alpine
[WARNING] Opam package conf-git.1.1 depends on the following system package that can no longer be found: git
# The following system packages are needed:
m4
[WARNING] Opam package conf-git.1.1 depends on the following system package that can no longer be found: git
opam: PACKAGES... arguments: Invalid character in package name
      "\027[01;04mconf-git\027[0m\027[04m"
Usage: opam install [OPTION]... [PACKAGES]...
Try `opam install --help' or `opam --help' for more information.
"/usr/bin/env" "bash" "-c" "opam depext -i conf-m4 && opam depext -i dune 'odoc>=1.5.0'" failed with exit status 2
2024-05-17 15:44.40: Job failed: Failed: Build failed

But this should be ready for review in the meanwhile.

shonfeder commented 3 months ago

The failing linting error here is not related to this change, but instead (I think) must be due to a change in the container the job is running in. I just reran the linting job on the latest commit to master here, and got the same error (https://ocaml.ci.dev/github/ocurrent/ocaml-ci/commit/f544ddc4809c029767774e6cd1964b6a7d24c673/variant/%28lint-doc%29) even tho that error was not being produced when the commit was first merged. I'll track this new problem in its own issue.