Skip to content

Fix Jekyll CI: stop depending on jekyll/builder:latest - #27

Merged
ArtemisDicoTiar merged 2 commits into
masterfrom
fix/jekyll-ci-ruby-setup
Aug 21, 2026
Merged

ArtemisDicoTiar merged 2 commits into
masterfrom
fix/jekyll-ci-ruby-setup

Conversation

@ArtemisDicoTiar

Copy link
Copy Markdown
Member

Problem

The `Jekyll site CI` workflow started failing on every push (first failure: the "publications updated" commit), even though nothing in the site content changed. Root cause is unrelated to any recent content edit:

```
Could not find gem 'github-pages (~> 231)' in locally installed gems. (Bundler::GemNotFound)
```

The workflow ran `jekyll build` inside the `jekyll/builder:latest` Docker image without ever running `bundle install`. Jekyll's plugin loader calls `Bundler.setup`, which only activates gems already vendored inside the image — it can't fetch anything. Our `Gemfile` pins `github-pages ~> 231` (unchanged since 2024) and built successfully as recently as 2026-06-16. Since `:latest` is a moving tag, a newer rebuild of that image apparently dropped/changed its baked-in `github-pages` version, breaking the build with no code change on our side.

Fix

Replace the Docker step with the standard `ruby/setup-ruby` action (`bundler-cache: true`), which runs a real `bundle install` against rubygems.org on every run (cached for speed) instead of depending on whatever happens to be pre-installed in a third-party `:latest` image.

🤖 Generated with Claude Code

ArtemisDicoTiar and others added 2 commits August 21, 2026 14:43
The jekyll/builder Docker image's :latest tag drifted and no longer
vendors a github-pages gem satisfying our Gemfile's `~> 231` pin, so
Bundler.setup failed on every push (first failure: 2026-08-21, after
succeeding through 2026-06-16). Replace the Docker step with
ruby/setup-ruby + bundler-cache, which does a real `bundle install`
against rubygems.org each run instead of relying on a moving image tag.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
bundler-cache installs gems into vendor/bundle inside the repo, and
our custom `exclude:` list in _config.yml overrides Jekyll's own
default excludes (which normally skip vendor/bundle). Without it,
jekyll build tried to process the installed jekyll gem's own
_posts/*.erb template as site content and failed on its placeholder
date.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@ArtemisDicoTiar
ArtemisDicoTiar merged commit 9945b7c into master Aug 21, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant