Halley / Lightweight CI/CD for Static Sites

Created Sat, 17 May 2025 13:45:00 +0000 Modified Sun, 31 Aug 2025 22:17:24 +0000
316 Words

Continuous Integration and Deployment sounds like enterprise overhead.
For a solo static site, it doesn’t have to be.
You just need a repeatable, low-friction way to publish changes without breaking the stack.

CI Doesn’t Mean Kubernetes

Static sites like Hugo, Jekyll, or Eleventy don’t need container orchestration.
They need:

  • A clean build every time
  • Tests for broken links or missing assets
  • A predictable deployment step

You can get that with a few scripts and a cheap remote, not a DevOps cathedral.

Start Local

Automate what you can on your own machine first:

  • A make build that generates the site and checks for errors
  • A make deploy that rsyncs or WebDAVs the output to your host
  • A single script that does both if you’re feeling fancy

Local automation reduces human error long before you add cloud CI.

Add Remote CI When It’s Worth It

If you want builds to run on commit:

  • Use a free CI service (GitHub Actions, GitLab CI) with a minimal config
  • Cache dependencies to speed up builds
  • Run link checkers or linters to catch obvious issues before deploy

Keep it minimal. One YAML file, not a pile of brittle configs.

Secrets and Safety

If your pipeline needs keys for deploy:

  • Store them as encrypted secrets in the CI system
  • Limit their scope to just deployment
  • Rotate them occasionally

CI pipelines are prime leak points; treat them like production infra.

Rollback Plan

Even a static site can fail after deploy:

  • Keep the last known-good build archived
  • Make rollback a single command (copy old folder back)
  • Test rollback at least once so you know it works

A deployment pipeline is only useful if it recovers as well as it deploys.

Small Pipelines, Big Stability

You don’t need enterprise CI/CD.
You need repeatable, low-drama deploys and a quick way back when something breaks.

Static doesn’t mean fragile.
Build the tiniest pipeline that saves you from yourself.