Deploy
One workflow file, push to main, done.
-
Add the workflow
.github/workflows/page.yml— this is the exact file both official templates ship, and what this site itself runs on:name: Build & Deploy on: push: branches: ["main"] permissions: contents: write # commit files the build regenerated pages: write id-token: write jobs: build-and-deploy: runs-on: ubuntu-latest environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - name: Checkout uses: actions/checkout@v7 - name: KiriBuild uses: php-kirigami/kiribuild@v2 with: { node-version: '24' } - name: Commit regenerated files shell: bash run: | if [ -n "$(git status --porcelain)" ]; then git config user.name "kirigami[bot]" git config user.email "kirigami-bot@users.noreply.github.com" git add -A git commit -m "chore: update generated files [skip ci]" git push else echo "Nothing to commit." fi - name: Upload artifact uses: actions/upload-pages-artifact@v5 with: { path: dist } - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v5kiribuild@v2does exactly three things: install Node 24, install thekiriCLI, runkiri export. Checkout, the commit-back, uploading the artifact, and the Pages deploy step are yours to wire — that's deliberate, so the action stays small and the workflow stays readable. It's a real published action — listed on the GitHub Marketplace, findable straight from a workflow file's Actions sidebar, not just a repo you happen to reference.The commit-back step matters the moment a project uses the image pipeline:
kiri exportcan write new resized derivatives intosrc/images/as a side effect, and those are meant to be committed — otherwise every future CI run regenerates them from scratch instead of finding them already there.[skip ci]in the commit message stops that commit from triggering an infinite rebuild loop. A project with noimage:block has nothing to regenerate, so the step just logs "Nothing to commit." and moves on — harmless either way, so it's simpler to always include it than to decide per-project whether it's needed. -
Turn on Pages, once
In the repo's settings: Settings → Pages → Source: GitHub Actions. No branch to pick, no folder — the workflow above handles the whole thing from here on.
-
Push
git add -A git commit -m "Studio Plié: first deploy" git pushEvery push to
mainre-runskiri exportand republishesdist/. Locally, the same export step is one command:npx kiri export
NOTE
That's the whole tutorial. Studio Plié has pages, real content, a theme with dark mode, a resized image pipeline, full SEO metadata, and now a live deploy on every push — the same seven pieces every Kirigami site is made of, including this one.