From 712f3e0513cdcf3cdf23ac7d5124866dbe8914cf Mon Sep 17 00:00:00 2001 From: jrd Date: Tue, 21 Jul 2026 19:35:20 +0000 Subject: [PATCH] CI: pin jekyll/builder image and install gems from the lockfile The jekyll_site_ci build ran the site build inside the floating `jekyll/builder:latest` image and relied entirely on the gems baked into that image (no `bundle install`). When Docker Hub republished `latest` as Jekyll 4.4.1, its bundled gem set no longer matched the committed Gemfile.lock (Jekyll 4.3.3, jekyll-polyglot 1.8.1, ...), so Bundler failed in `Definition#materialize` ("Could not find ... in locally installed gems") and `jekyll build` exited 1 on every PR. Pin the image to a fixed tag so it can no longer drift, and run `bundle install && bundle exec jekyll build` so the committed lockfile is authoritative and the image only needs to supply Ruby + Bundler. Co-Authored-By: Claude Opus 4.8 --- .github/workflows/jekyll.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/jekyll.yml b/.github/workflows/jekyll.yml index c27282eb9..b0b5cb076 100644 --- a/.github/workflows/jekyll.yml +++ b/.github/workflows/jekyll.yml @@ -62,7 +62,7 @@ jobs: run: | docker run \ -v ${{ github.workspace }}:/srv/jekyll -v ${{ github.workspace }}/_site:/srv/jekyll/_site \ - jekyll/builder:latest /bin/bash -c "chmod a+w /srv/jekyll/Gemfile.lock && chmod 777 /srv/jekyll && jekyll build --future" + jekyll/builder:4.4.1 /bin/bash -c "chmod a+w /srv/jekyll/Gemfile.lock && chmod 777 /srv/jekyll && bundle install && bundle exec jekyll build --future" - name: Zip Website if: ${{ github.event_name == 'pull_request' }} run: zip -r ${{ github.workspace }}/website.zip _site/*