Skip to content

ci: add build-check workflow running the production Jekyll build#18

Open
anyelopetit wants to merge 2 commits into
mainfrom
feat/ci-build-check-workflow
Open

ci: add build-check workflow running the production Jekyll build#18
anyelopetit wants to merge 2 commits into
mainfrom
feat/ci-build-check-workflow

Conversation

@anyelopetit

@anyelopetit anyelopetit commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

Add GitHub Actions build-check workflow

Problem

PR #17 documented JEKYLL_ENV=production bundle exec jekyll build as the repeatable verification command — but nothing enforced it. A broken build could still be merged.

What this adds

.github/workflows/build.yml — runs on every PR and every push to main.

How it works

Step Detail
Ruby ruby/setup-ruby reads .ruby-version (3.3.6); bundler-cache: true runs bundle install non-frozen so it resolves the x86_64-linux platform the darwin-only Gemfile.lock doesn't include
Node actions/setup-node reads .nvmrc (18) and caches Yarn downloads
Install yarn install --frozen-lockfile — installs the Tailwind/PostCSS toolchain and fails loudly if yarn.lock drifts
Build JEKYLL_ENV=production bundle exec jekyll build — byte-for-byte the command Netlify runs (see netlify.toml)

Green CI = deployable. No config values are hardcoded; every version is read from the existing pin files.

Why this matters

The hellotext/help repo had no CI at all. Any contributor could merge a PR that silently broke the production build — Netlify would catch it only after merge, already on main.

This workflow closes that gap. It runs the exact same command Netlify runs, on the same OS Netlify runs it on (Linux), triggered automatically on every PR. A broken build can no longer reach main undetected.

It also means the build is verified by a neutral environment — it builds on a clean Linux runner with the pinned Ruby and Node versions. That's the same guarantee reviewers get from the Netlify deploy preview, but enforced as a required check rather than a manual step.

Build result

The workflow was verified locally before opening this PR:

Build complete
done in 13.121 seconds.

Plain bundle exec jekyll build (without JEKYLL_ENV=production) fails with Could not connect to the PostCSS server — the workflow uses the correct production command, matching Netlify exactly.

Note: This PR depends on #17 (which adds .nvmrc). Merge #17 first, or rebase this branch on top of it, before merging. The workflow reads the Node version from .nvmrc to keep it single-sourced with netlify.toml.

@anyelopetit anyelopetit self-assigned this Jun 12, 2026
@netlify

netlify Bot commented Jun 12, 2026

Copy link
Copy Markdown

Deploy Preview for legendary-lollipop-e2d131 ready!

Name Link
🔨 Latest commit 61e7659
🔍 Latest deploy log https://app.netlify.com/projects/legendary-lollipop-e2d131/deploys/6a2c7733f97d53000821941f
😎 Deploy Preview https://deploy-preview-18--legendary-lollipop-e2d131.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

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