Skip to content

Modernize Jekyll stack: 3.6 → 4.4 via GitHub Actions#18

Open
itamarwe wants to merge 1 commit into
masterfrom
claude/modernize-jekyll-stack
Open

Modernize Jekyll stack: 3.6 → 4.4 via GitHub Actions#18
itamarwe wants to merge 1 commit into
masterfrom
claude/modernize-jekyll-stack

Conversation

@itamarwe

Copy link
Copy Markdown
Owner

Summary

Replaces the legacy github-pages gem (which pins Jekyll to 3.6.2 from 2017) with a direct jekyll ~> 4.3 dependency. 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 — dropped github-pages meta-gem; now just gem 'jekyll', '~> 4.3'. No plugins needed: feed.xml is 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 — adds vendor/, .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.1 produces _site in 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 @use and color.adjust() / math.div(). Keeping it out of this PR because the @import@use change is invasive (namespacing).

Test plan

  • Confirm the GitHub Actions workflow runs successfully on push to master after merge.
  • Flip the Pages source to "GitHub Actions" in repo settings.
  • Verify the site at itamarweiss.com still renders correctly after the new build deploys.
  • Spot-check that feed.xml, the home page, a post, and the about page all load.

https://claude.ai/code/session_01LV4pN7tdRbgPsjDyvy9PUA


Generated by Claude Code

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.
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.

2 participants