Skip to content
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
47 changes: 47 additions & 0 deletions .changeset/issue-82-tolerate-dockerhub-login-failure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
bump: patch
---

ci(release): tolerate Docker Hub login failure so a single expired
DOCKERHUB_TOKEN no longer takes down the entire release workflow
(issue #82). Every "Log in to Docker Hub" step now uses
`continue-on-error: true` and is followed by a "Check Docker Hub
login" step that emits a clear `::warning` annotation pointing at
the rotation runbook in `README.md` and `docs/case-studies/issue-82`.
GHCR pushes proceed on their existing credentials when Docker Hub is
unavailable.

ci(release): free ~30 GB of disk space before `docker-build-test` so
the PR-CI smoke job stops failing with `no space left on device`
while building the JS -> essentials -> 11 language images -> full-box
chain on a single ubuntu-24.04 runner. Mirrors the existing
`jlumbroso/free-disk-space` step in `docker-build-push` (issue #41).

ci(release): parallelize the PR test matrix and isolate every Docker
image build on its own VM (issue #82). The single sequential
`docker-build-test` job is replaced by a chain of parallel matrix jobs:
`pr-test-js` (1 VM) -> `pr-test-essentials` (1 VM) ->
`pr-test-language` (matrix x 11 languages, parallel) ->
`pr-test-full` (1 VM, builds the full chain locally because the
`full-box` Dockerfile uses `COPY --from=*-stage`), with
`pr-test-dind` (matrix x 14 variants, parallel) running alongside
`pr-test-full` once `pr-test-essentials` finishes. A
`docker-build-test` aggregator job preserves the existing
branch-protection check name. Every build job (15 jobs:
`pr-test-*`, `build-{js,essentials,languages,dind}-{amd64,arm64}`,
`docker-build-push{,-arm64}`) now runs `jlumbroso/free-disk-space@main`
before its first build step. PR-test jobs use plain `docker build`
against the host Docker daemon (not buildx's `docker-container`
driver) so that subsequent `FROM box-js` / `FROM box-essentials`
references resolve against the locally-built images instead of
trying to pull from `docker.io`.

fix(kotlin): install Java 21 LTS alongside Kotlin in the standalone
`box-kotlin` image (issue #82). `kotlinc` is a shell wrapper around
`java`, so the language-only image previously failed
`docker run --rm box-kotlin kotlin -version` with
`line 102: java: command not found`. The full-box image was unaffected
because Java was supplied by the `box-java` stage. Now
`ubuntu/24.04/kotlin/install.sh` installs Java via SDKMAN before
Kotlin, making the standalone `box-kotlin` image self-sufficient and
unblocking the new per-language `pr-test / kotlin` matrix job.
Loading
Loading