Build:
- 0
2026-10-07 14:25.54: New job: docker build {
"commit": "4df0b2e6fd28c60af9567c9771cde662c79ea29b",
"dockerfile": {
"file": "Dockerfile"
},
"docker_context": null,
"squash": false,
"buildx": true,
"build_args": [
"--target", "test"
],
"path": null
}
2026-10-07 14:25.54: Waiting for resource in pool docker-build-pool
2026-10-07 14:26.44: Got resource from pool docker-build-pool
2026-10-07 14:26.44: Checking out commit 4df0b2e6. To reproduce:
git clone --recursive "https://github.com/tarides/tarides.com.git" && cd "tarides.com" && git fetch origin "refs/pull/1122/head" && git reset --hard 4df0b2e6
2026-10-07 14:26.44: Exec: "cp" "-a" "--" "/var/lib/ocurrent/var/git/tarides.com.git-c625fb5f52c964610b54f32d27d46965b6bf2fad211456d66e1ff8a0f4c02fec/.git"
"/tmp/git-checkout2e2f8e00"
2026-10-07 14:26.46: Exec: "git" "-C" "/tmp/git-checkout2e2f8e00" "submodule"
"deinit" "--force" "--all"
2026-10-07 14:26.46: Exec: "git" "-C" "/tmp/git-checkout2e2f8e00" "reset"
"--hard" "-q" "4df0b2e6fd28c60af9567c9771cde662c79ea29b"
2026-10-07 14:26.48: Exec: "git" "-c" "protocol.file.allow=always" "-C"
"/tmp/git-checkout2e2f8e00" "submodule" "update"
"--recursive" "--init" "--no-fetch"
2026-10-07 14:26.48: Exec: "docker" "buildx" "build" "--pull" "--target"
"test" "-f" "/tmp/git-checkout2e2f8e00/Dockerfile"
"--iidfile" "/tmp/git-checkout2e2f8e00/docker-iid"
"--" "/tmp/git-checkout2e2f8e00"
#0 building with "default" instance using docker driver
#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 2.42kB done
#1 DONE 0.0s
#2 [internal] load metadata for docker.io/library/alpine:3.22
#2 DONE 0.5s
#3 [internal] load .dockerignore
#3 transferring context: 77B done
#3 DONE 0.0s
#4 [build 1/17] FROM docker.io/library/alpine:3.22@sha256:5291449c3df73caf6ed85e649dec1b9e818b39a5d8c871e97afc13e9cd5e8fa8
#4 DONE 0.0s
#5 [internal] load build context
#5 transferring context: 603.36MB 2.0s done
#5 DONE 2.1s
#6 [build 9/17] COPY --link src/gen src/gen
#6 CACHED
#7 [build 11/17] COPY --link data/images data/images
#7 CACHED
#8 [build 10/17] COPY --link data/fonts data/fonts
#8 CACHED
#9 [build 6/17] COPY --link dune-project .
#9 CACHED
#10 [build 14/17] COPY --link data/team data/team
#10 CACHED
#11 [build 13/17] COPY --link data/css data/css
#11 CACHED
#12 [build 4/17] RUN curl -fsSL https://get.dune.build/install | sh
#12 CACHED
#13 [build 8/17] COPY --link ./generate-images.sh .
#13 CACHED
#14 [build 3/17] WORKDIR /root
#14 CACHED
#15 [build 15/17] RUN ./generate-images.sh
#15 CACHED
#16 [build 12/17] COPY --link data/blog/images data/blog/images
#16 CACHED
#17 [build 2/17] RUN --mount=type=cache,target=/var/cache/apk,sharing=locked ln -s /var/cache/apk /etc/apk/cache && apk -U upgrade && apk add autoconf curl-dev gmp-dev imagemagick imagemagick-jpeg imagemagick-webp inotify-tools libev-dev oniguruma-dev openssl-dev curl bash gcc musl-dev make m4 git autoconf
#17 CACHED
#18 [build 5/17] COPY --link tarides-com.opam .
#18 CACHED
#19 [build 16/17] COPY --link . .
#19 CACHED
#20 [build 7/17] RUN dune --version && dune pkg lock && dune build @pkg-install
#20 CACHED
#21 [build 17/17] RUN dune build && dune build --profile=release
#21 CACHED
#22 [test 1/1] RUN dune test
#22 34.46 File "test/dune", line 2, characters 7-11:
#22 34.46 2 | (name test)
#22 34.46 ^^^^
#22 34.46 Testing `tarides.com'.
#22 34.46 This run has ID `I0J7SB7C'.
#22 34.46
#22 34.46 [OK] files 0 /images.
#22 34.46 [OK] files 1 /blog/images.
#22 34.46 [OK] files 2 /css.
#22 34.46 [OK] files 3 /logos.
#22 34.46 [OK] seo 0 h1.
#22 34.46 [OK] seo 1 title.
#22 34.46 > [FAIL] seo 2 description.
#22 34.46 [OK] seo 3 href.
#22 34.46 [OK] seo 4 alt.
#22 34.46 [OK] tailwind 0 duplicate.
#22 34.46 [OK] blog 0 title.
#22 34.46 [OK] blog 1 links.
#22 34.46
#22 34.46 ┌──────────────────────────────────────────────────────────────────────────────┐
#22 34.46 │ [FAIL] seo 2 description. │
#22 34.46 └──────────────────────────────────────────────────────────────────────────────┘
#22 34.46 ASSERT src/pages/index.ml: len(description) = 155 <= 160
#22 34.46 ASSERT src/pages/index.ml: len(description) = 155 >= 110
#22 34.46 ASSERT src/pages/services.ml: len(description) = 150 <= 160
#22 34.46 ASSERT src/pages/services.ml: len(description) = 150 >= 110
#22 34.46 ASSERT src/pages/training.ml: len(description) = 155 <= 160
#22 34.46 ASSERT src/pages/training.ml: len(description) = 155 >= 110
#22 34.46 ASSERT src/pages/open_source.ml: len(description) = 154 <= 160
#22 34.46 ASSERT src/pages/open_source.ml: len(description) = 154 >= 110
#22 34.46 ASSERT src/pages/innovation.ml: len(description) = 146 <= 160
#22 34.46 ASSERT src/pages/innovation.ml: len(description) = 146 >= 110
#22 34.46 ASSERT src/pages/company.ml: len(description) = 149 <= 160
#22 34.46 ASSERT src/pages/company.ml: len(description) = 149 >= 110
#22 34.46 ASSERT src/pages/contact.ml: len(description) = 159 <= 160
#22 34.46 ASSERT src/pages/contact.ml: len(description) = 159 >= 110
#22 34.46 ASSERT src/pages/careers.ml: len(description) = 152 <= 160
#22 34.46 ASSERT src/pages/careers.ml: len(description) = 152 >= 110
#22 34.46 ASSERT data/blog/content/2026-09-03.dunerelocatable.md: len(description) = 167 <= 160
#22 34.46 File "test/seo.ml", line 71, character 6:
#22 34.46 FAIL data/blog/content/2026-09-03.dunerelocatable.md: len(description) = 167 <= 160
#22 34.46
#22 34.46 Expected: `true'
#22 34.46 Received: `false'
#22 34.46
#22 34.46 Raised at Alcotest_engine__Test.check in file "src/alcotest-engine/test.ml", lines 216-226, characters 4-19
#22 34.46 Called from Dune__exe__Seo.test_description.(fun) in file "test/seo.ml", lines 71-73, characters 6-23
#22 34.46 Called from Stdlib__List.iter in file "list.ml", line 112, characters 12-15
#22 34.46 Called from Alcotest_engine__Core.Make.protect_test.(fun) in file "src/alcotest-engine/core.ml", line 186, characters 17-23
#22 34.46 Called from Alcotest_engine__Monad.Identity.catch in file "src/alcotest-engine/monad.ml", line 24, characters 31-35
#22 34.46
#22 34.46 Logs saved to `~/_build/default/test/_build/_tests/tarides.com/seo.002.output'.
#22 34.46 ──────────────────────────────────────────────────────────────────────────────
#22 34.46
#22 34.46 Full test results in `~/_build/default/test/_build/_tests/tarides.com'.
#22 34.46 1 failure! in 21.469s. 12 tests run.
#22 ERROR: process "/bin/sh -c dune test" did not complete successfully: exit code: 1
------
> [test 1/1] RUN dune test:
34.46 Called from Dune__exe__Seo.test_description.(fun) in file "test/seo.ml", lines 71-73, characters 6-23
34.46 Called from Stdlib__List.iter in file "list.ml", line 112, characters 12-15
34.46 Called from Alcotest_engine__Core.Make.protect_test.(fun) in file "src/alcotest-engine/core.ml", line 186, characters 17-23
34.46 Called from Alcotest_engine__Monad.Identity.catch in file "src/alcotest-engine/monad.ml", line 24, characters 31-35
34.46
34.46 Logs saved to `~/_build/default/test/_build/_tests/tarides.com/seo.002.output'.
34.46 ──────────────────────────────────────────────────────────────────────────────
34.46
34.46 Full test results in `~/_build/default/test/_build/_tests/tarides.com'.
34.46 1 failure! in 21.469s. 12 tests run.
------
Dockerfile:59
--------------------
57 | # "--target test" and costs the deployment build nothing.
58 | FROM build AS test
59 | >>> RUN dune test
60 |
61 | FROM alpine:3.22 AS run
--------------------
ERROR: failed to solve: process "/bin/sh -c dune test" did not complete successfully: exit code: 1
2026-10-07 14:27.27: Job failed: Docker build exited with status 1