Deployment and troubleshooting
The pipeline
git push (or daily 00:30 UTC cron, or manual trigger)
↓
GitHub Actions: npm ci && npm run build
↓
Upload _site/ as a Pages artifact
↓
Deploy to GitHub Pages
↓
https://blog.adarshrust.com
Defined in .github/workflows/deploy.yml. Three triggers:
- push to
main— every commit deploys. - schedule (daily 00:30 UTC) — releases future-dated articles.
- workflow_dispatch — manual: Actions → Deploy → Run workflow.
One-time setup (do this if not done yet)
- Repo Settings → Pages → Build and deployment → Source: GitHub Actions.
- Same page: set Custom domain to
blog.adarshrust.comand keep Enforce HTTPS on once available. - At your DNS provider: point
blog.adarshrust.comwith a CNAME record towebrowse.github.io(replacing the old Railway record). - Decommission the Railway service once the new site answers.
Until step 1 is done, the workflow’s deploy job fails with a “Pages not enabled” style error — the build job still proves your content is fine.
When something goes wrong
The Actions run is red. Open the run and read the failing step.
- build failed → almost always broken frontmatter. YAML is picky: a stray tab, an unquoted colon in a title (
title: "Rust: notes"needs quotes), or mismatched---fences. The log names the file. - deploy failed → a Pages/permissions problem, not your article. Check the one-time setup above; re-run the job from the Re-run jobs button.
The run is green but the article is missing. Check, in order:
date:— is it in the future?published:— is itfalse?- Is the file under
content/with a.mdextension?
An image is broken. The path in the Markdown must match the file’s location relative to the article — usually images/name.png, and case-sensitive in production even if it works on your Mac.
The site looks stale. Deploys finish in ~1 minute but your browser may cache pages; hard-refresh (⌘⇧R) before debugging further.
Scheduled post didn’t appear. GitHub pauses cron schedules on repos with no activity for 60 days. Any push, or a manual Run workflow, resumes it and releases the post.