Build:
  1. 1
  2. 0
2026-04-16 14:02.41: New job: test local/bruit 7948d888622ff448b134cd342acc82687a4eb6f1 (debian-13-5.4_opam-2.5)
Base: ocaml/opam@sha256:f01ea32106a9a667c3e662c7b8c4f33c337e55b5043eb98602495d938ae011a9
Opam project build

To reproduce locally:

cd $(mktemp -d)
git clone --recursive "/var/lib/git/repos/bruit" -b "main" && cd "bruit" && git reset --hard 7948d888
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam@sha256:f01ea32106a9a667c3e662c7b8c4f33c337e55b5043eb98602495d938ae011a9
# debian-13-5.4_opam-2.5
USER 1000:1000
ENV CLICOLOR_FORCE="1"
ENV OPAMCOLOR="always"
WORKDIR /src
RUN sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam
RUN opam init --reinit -ni
RUN uname -rs && opam exec -- ocaml -version && opam --version
WORKDIR /src
RUN sudo chown opam /src
RUN cd ~/opam-repository && (git cat-file -e 3e0c395e7b1393a792367f8edca3654dac71e6fd || git fetch origin master) && git reset -q --hard 3e0c395e7b1393a792367f8edca3654dac71e6fd && git log --no-decorate -n1 --oneline && opam update -u
COPY --chown=1000:1000 bruit.opam ./
RUN opam pin add -yn bruit.dev './'
RUN echo '(lang dune 3.0)' > './dune-project'
ENV DEPS="base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base dune.3.22.2 ocaml.5.4.1 ocaml-base-compiler.5.4.1 ocaml-compiler.5.4.1 ocaml-config.3 ocaml-options-vanilla.1"
ENV CI="true"
ENV OCAMLCI="true"
RUN opam update --depexts && opam install --cli=2.5 --depext-only -y bruit.dev $DEPS
RUN opam install $DEPS
COPY --chown=1000:1000 . /src
RUN opam exec -- dune build @install @check @runtest && rm -rf _build
END-OF-DOCKERFILE
docker build .
END-REPRO-BLOCK

2026-04-16 14:02.41: Checking out commit 7948d888. To reproduce:
                       git clone --recursive "/var/lib/git/repos/bruit" -b "main" && cd "bruit" && git reset --hard 7948d888
2026-04-16 14:02.41: Exec: "cp" "-a" "--" "/var/lib/git/repos/bruit/.git" 
                           "/tmp/git-checkout23cd1f61"
2026-04-16 14:02.41: Exec: "git" "-C" "/tmp/git-checkout23cd1f61" "submodule" 
                           "deinit" "--force" "--all"
2026-04-16 14:02.41: Exec: "git" "-C" "/tmp/git-checkout23cd1f61" "reset" 
                           "--hard" "-q" "7948d888622ff448b134cd342acc82687a4eb6f1"
2026-04-16 14:02.41: Exec: "git" "-c" "protocol.file.allow=always" "-C" 
                           "/tmp/git-checkout23cd1f61" "submodule" "update" 
                           "--recursive" "--init" "--no-fetch"
Writing BuildKit Dockerfile:
# syntax = docker/dockerfile:experimental@sha256:8c69d118cfcd040a222bea7f7d57c6156faa938cb61b47657cd65343babc3664
FROM ocaml/opam@sha256:f01ea32106a9a667c3e662c7b8c4f33c337e55b5043eb98602495d938ae011a9
# debian-13-5.4_opam-2.5
USER 1000:1000
ENV CLICOLOR_FORCE="1"
ENV OPAMCOLOR="always"
WORKDIR /src
RUN sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam
RUN opam init --reinit -ni
RUN uname -rs && opam exec -- ocaml -version && opam --version
WORKDIR /src
RUN sudo chown opam /src
RUN --mount=type=cache,id=opam-archives,target=/home/opam/.opam/download-cache,uid=1000 cd ~/opam-repository && (git cat-file -e 3e0c395e7b1393a792367f8edca3654dac71e6fd || git fetch origin master) && git reset -q --hard 3e0c395e7b1393a792367f8edca3654dac71e6fd && git log --no-decorate -n1 --oneline && opam update -u
COPY --chown=1000:1000 bruit.opam ./
RUN opam pin add -yn bruit.dev './'
RUN echo '(lang dune 3.0)' > './dune-project'
ENV DEPS="base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base dune.3.22.2 ocaml.5.4.1 ocaml-base-compiler.5.4.1 ocaml-compiler.5.4.1 ocaml-config.3 ocaml-options-vanilla.1"
ENV CI="true"
ENV OCAMLCI="true"
RUN --mount=type=cache,id=opam-archives,target=/home/opam/.opam/download-cache,uid=1000 opam update --depexts && opam install --cli=2.5 --depext-only -y bruit.dev $DEPS
RUN --mount=type=cache,id=opam-archives,target=/home/opam/.opam/download-cache,uid=1000 opam install $DEPS
COPY --chown=1000:1000 . /src
RUN opam exec -- dune build @install @check @runtest && rm -rf _build

2026-04-16 14:02.41: Exec: "docker" "build" "--" "/tmp/git-checkout23cd1f61"
#0 building with "default" instance using docker driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 1.59kB done
#1 DONE 0.0s

#2 resolve image config for docker-image://docker.io/docker/dockerfile:experimental@sha256:8c69d118cfcd040a222bea7f7d57c6156faa938cb61b47657cd65343babc3664
#2 DONE 0.7s

#3 docker-image://docker.io/docker/dockerfile:experimental@sha256:8c69d118cfcd040a222bea7f7d57c6156faa938cb61b47657cd65343babc3664
#3 CACHED

#4 [internal] load .dockerignore
#4 transferring context: 44B done
#4 DONE 0.0s

#5 [internal] load build definition from Dockerfile
#5 transferring dockerfile: 1.59kB done
#5 DONE 0.0s

#6 [internal] load metadata for docker.io/ocaml/opam@sha256:f01ea32106a9a667c3e662c7b8c4f33c337e55b5043eb98602495d938ae011a9
#6 DONE 0.0s

#7 [stage-0  1/15] FROM docker.io/ocaml/opam@sha256:f01ea32106a9a667c3e662c7b8c4f33c337e55b5043eb98602495d938ae011a9
#7 CACHED

#8 [internal] settings cache mount permissions
#8 CACHED

#9 [internal] load build context
#9 transferring context: 27.17kB done
#9 DONE 0.0s

#10 [stage-0  2/15] WORKDIR /src
#10 DONE 0.0s

#11 [stage-0  3/15] RUN sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam
#11 DONE 0.3s

#12 [stage-0  4/15] RUN opam init --reinit -ni
#12 0.250 Configuring from /home/opam/.opamrc and then from built-in defaults.
#12 0.250 Checking for available remotes: rsync and local, git.
#12 0.250   - you won't be able to use mercurial repositories unless you install the hg command on your system.
#12 0.250   - you won't be able to use darcs repositories unless you install the darcs command on your system.
#12 0.250 
#12 0.274 This version of opam requires an update to the layout of /home/opam/.opam from version 2.0 to version 2.2, which can't be reverted.
#12 0.274 You may want to back it up before going further.
#12 0.274 
#12 0.275 Continue? [Y/n] y
#12 0.275 [NOTE] The 'jobs' option was reset, its value was 71 and its new value will vary according to the current number of cores on your machine. You can restore the fixed value using:
#12 0.275            opam option jobs=71 --global
#12 0.278 Format upgrade done.
#12 4.307 
#12 4.307 <><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
#12 43.36 [default] Initialised
#12 DONE 49.1s

#13 [stage-0  5/15] RUN uname -rs && opam exec -- ocaml -version && opam --version
#13 0.201 Linux 6.12.77
#13 0.261 The OCaml toplevel, version 5.4.1
#13 0.278 2.5.0
#13 DONE 0.3s

#14 [stage-0  6/15] WORKDIR /src
#14 DONE 0.0s

#15 [stage-0  7/15] RUN sudo chown opam /src
#15 DONE 0.2s

#16 [stage-0  8/15] RUN --mount=type=cache,id=opam-archives,target=/home/opam/.opam/download-cache,uid=1000 cd ~/opam-repository && (git cat-file -e 3e0c395e7b1393a792367f8edca3654dac71e6fd || git fetch origin master) && git reset -q --hard 3e0c395e7b1393a792367f8edca3654dac71e6fd && git log --no-decorate -n1 --oneline && opam update -u
#16 43.50 3e0c395e7b [new release] dune (18 packages) (3.22.2)
#16 43.86 
#16 43.86 <><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>
#16 45.10 [default] synchronised from git+file:///home/opam/opam-repository
#16 45.53 
#16 49.54 Everything as up-to-date as possible
#16 49.54 However, you may "opam upgrade" these packages explicitly at these versions (e.g. "opam upgrade ocaml.5.5.0"), which will ask permission to downgrade or uninstall the conflicting packages.
#16 49.54 Nothing to do.
#16 49.54 # To update the current shell environment, run: eval $(opam env)
#16 DONE 50.0s

#17 [stage-0  9/15] COPY --chown=1000:1000 bruit.opam ./
#17 DONE 0.0s

#18 [stage-0 10/15] RUN opam pin add -yn bruit.dev './'
#18 1.089 [NOTE] Package bruit does not exist in opam repositories registered in the current switch.
#18 1.155 [bruit.dev] synchronised (file:///src)
#18 1.157 [WARNING] Failed checks on bruit package definition from source at file:///src:
#18 1.157   warning 62: License doesn't adhere to the SPDX standard, see https://spdx.org/licenses/ : "LICENSE"
#18 1.158 bruit is now pinned to file:///src (version dev)
#18 DONE 1.2s

#19 [stage-0 11/15] RUN echo '(lang dune 3.0)' > './dune-project'
#19 DONE 0.2s

#20 [stage-0 12/15] RUN --mount=type=cache,id=opam-archives,target=/home/opam/.opam/download-cache,uid=1000 opam update --depexts && opam install --cli=2.5 --depext-only -y bruit.dev base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base dune.3.22.2 ocaml.5.4.1 ocaml-base-compiler.5.4.1 ocaml-compiler.5.4.1 ocaml-config.3 ocaml-options-vanilla.1
#20 0.171 + /usr/bin/sudo "apt-get" "update"
#20 0.905 - Hit:1 http://deb.debian.org/debian trixie InRelease
#20 0.905 - Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.3 kB]
#20 0.905 - Get:3 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
#20 0.905 - Get:4 http://deb.debian.org/debian-security trixie-security/main amd64 Packages [123 kB]
#20 0.905 - Fetched 213 kB in 0s (1109 kB/s)
#20 0.905 - Reading package lists...
#20 1.252 
#20 1.252 <><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
#20 1.514 [bruit.dev] synchronised (file:///src)
#20 1.518 
#20 2.146 [NOTE] Package ocaml-options-vanilla is already installed (current version is 1).
#20 2.146 [NOTE] Package ocaml-config is already installed (current version is 3).
#20 2.146 [NOTE] Package ocaml-compiler is already installed (current version is 5.4.1).
#20 2.146 [NOTE] Package ocaml-base-compiler is already installed (current version is 5.4.1).
#20 2.146 [NOTE] Package ocaml is already installed (current version is 5.4.1).
#20 2.146 [NOTE] Package base-unix is already installed (current version is base).
#20 2.146 [NOTE] Package base-threads is already installed (current version is base).
#20 2.146 [NOTE] Package base-nnp is already installed (current version is base).
#20 2.146 [NOTE] Package base-effects is already installed (current version is base).
#20 2.146 [NOTE] Package base-domains is already installed (current version is base).
#20 2.146 [NOTE] Package base-bigarray is already installed (current version is base).
#20 6.238 # To update the current shell environment, run: eval $(opam env)
#20 DONE 6.3s

#21 [stage-0 13/15] RUN --mount=type=cache,id=opam-archives,target=/home/opam/.opam/download-cache,uid=1000 opam install base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base dune.3.22.2 ocaml.5.4.1 ocaml-base-compiler.5.4.1 ocaml-compiler.5.4.1 ocaml-config.3 ocaml-options-vanilla.1
#21 1.169 [NOTE] Package ocaml-options-vanilla is already installed (current version is 1).
#21 1.169 [NOTE] Package ocaml-config is already installed (current version is 3).
#21 1.169 [NOTE] Package ocaml-compiler is already installed (current version is 5.4.1).
#21 1.169 [NOTE] Package ocaml-base-compiler is already installed (current version is 5.4.1).
#21 1.169 [NOTE] Package ocaml is already installed (current version is 5.4.1).
#21 1.169 [NOTE] Package base-unix is already installed (current version is base).
#21 1.169 [NOTE] Package base-threads is already installed (current version is base).
#21 1.169 [NOTE] Package base-nnp is already installed (current version is base).
#21 1.169 [NOTE] Package base-effects is already installed (current version is base).
#21 1.169 [NOTE] Package base-domains is already installed (current version is base).
#21 1.169 [NOTE] Package base-bigarray is already installed (current version is base).
#21 4.880 The following actions will be performed:
#21 4.880 === install 1 package
#21 4.880   - install dune 3.22.2
#21 4.880 
#21 4.880 <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
#21 6.911 -> retrieved dune.3.22.2  (cached)
#21 41.07 -> installed dune.3.22.2
#21 41.71 Done.
#21 41.71 # To update the current shell environment, run: eval $(opam env)
#21 DONE 41.9s

#22 [stage-0 14/15] COPY --chown=1000:1000 . /src
#22 DONE 0.0s

#23 [stage-0 15/15] RUN opam exec -- dune build @install @check @runtest && rm -rf _build
#23 0.236 File "src/dune", line 3, characters 30-37:
#23 0.236 3 |  (libraries terminal unix fmt astring)
#23 0.236                                   ^^^^^^^
#23 0.236 Error: Library "astring" not found.
#23 0.236 -> required by library "bruit" in _build/default/src
#23 0.236 -> required by _build/default/src/.bruit.objs/byte/bruit.cmi
#23 0.236 -> required by alias src/check
#23 0.236 File "example/dune", line 3, characters 18-25:
#23 0.236 3 |  (libraries bruit fmt.tty))
#23 0.236                       ^^^^^^^
#23 0.236 Error: Library "fmt.tty" not found.
#23 0.236 -> required by _build/default/example/.main.eobjs/byte/dune__exe__Main.cmi
#23 0.236 -> required by alias example/check
#23 ERROR: process "/bin/sh -c opam exec -- dune build @install @check @runtest && rm -rf _build" did not complete successfully: exit code: 1
------
 > [stage-0 15/15] RUN opam exec -- dune build @install @check @runtest && rm -rf _build:
0.236 Error: Library "astring" not found.
0.236 -> required by library "bruit" in _build/default/src
0.236 -> required by _build/default/src/.bruit.objs/byte/bruit.cmi
0.236 -> required by alias src/check
0.236 File "example/dune", line 3, characters 18-25:
0.236 3 |  (libraries bruit fmt.tty))
0.236                       ^^^^^^^
0.236 Error: Library "fmt.tty" not found.
0.236 -> required by _build/default/example/.main.eobjs/byte/dune__exe__Main.cmi
0.236 -> required by alias example/check
------
ERROR: failed to build: failed to solve: process "/bin/sh -c opam exec -- dune build @install @check @runtest && rm -rf _build" did not complete successfully: exit code: 1
2026-04-16 14:05.12: Job failed: Docker build exited with status 1