Modernize Jekyll stack: 3.6 → 4.4 via GitHub Actions#18
Open
itamarwe wants to merge 1 commit into
Open
Conversation
Replaces the legacy github-pages gem (pinned to Jekyll 3.6.2 from 2017) with a direct jekyll ~> 4.3 dependency. Build moves from GitHub Pages' server-side legacy build to a GitHub Actions workflow that builds and deploys the static output to Pages. Changes: - Gemfile: drop github-pages, use jekyll ~> 4.3 directly. Zero plugins (feed.xml is hand-rolled, no other plugins were actually in use). - Gemfile.lock: regenerated with the new stack. - .ruby-version: pin to Ruby 3.3.6. - .github/workflows/jekyll.yml: standard Actions workflow that builds with Jekyll 4 and deploys to Pages on push to master. - .gitignore: add vendor/, .bundle/, .jekyll-cache. Manual one-time step required after merge: - Repo Settings > Pages > Build and deployment > Source: GitHub Actions Local build verified: jekyll 4.4.1 produces _site in ~0.6s. Known follow-ups (not in this PR): - SCSS uses deprecated Sass syntax (darken/lighten, slash-div, @import). Build still works; warnings only. A future PR can migrate to @use and modern color functions.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces the legacy
github-pagesgem (which pins Jekyll to 3.6.2 from 2017) with a directjekyll ~> 4.3dependency. The build moves from GitHub Pages' server-side build to a GitHub Actions workflow that compiles the site with Jekyll 4 and deploys the static output to Pages.What changed
Gemfile— droppedgithub-pagesmeta-gem; now justgem 'jekyll', '~> 4.3'. No plugins needed:feed.xmlis hand-rolled and nothing else was actually using a plugin.Gemfile.lock— regenerated. Shrinks from ~120 gems to 35..ruby-version— pins to 3.3.6..github/workflows/jekyll.yml— standard Actions workflow: setup-ruby with bundler cache,jekyll build,actions/deploy-pages@v4..gitignore— addsvendor/,.bundle/,.jekyll-cache.Manual step required after merge
GitHub Pages doesn't auto-detect Actions-based builds. After merging:
Settings → Pages → Build and deployment → Source → "GitHub Actions"
(Currently this is set to "Deploy from a branch." It's a one-time toggle. Until you flip it, the legacy build continues to serve the site and the new workflow does nothing harmful.)
Local verification
Local build with the new stack:
jekyll 4.4.1produces_sitein 0.6 seconds. No build errors.Known follow-ups (intentionally out of scope)
The SCSS uses deprecated Sass syntax (
darken()/lighten(),/for division,@import). The build still works — only warnings — but Dart Sass 2.0/3.0 will eventually break this. A future PR can migrate to@useandcolor.adjust()/math.div(). Keeping it out of this PR because the@import→@usechange is invasive (namespacing).Test plan
masterafter merge.itamarweiss.comstill renders correctly after the new build deploys.feed.xml, the home page, a post, and the about page all load.https://claude.ai/code/session_01LV4pN7tdRbgPsjDyvy9PUA
Generated by Claude Code