From aef183e090202063cf82540e2fb2100ed858affd Mon Sep 17 00:00:00 2001 From: Yan Lin Date: Wed, 18 Feb 2026 08:45:50 +0100 Subject: [PATCH] deploy forgejo actions --- .forgejo/workflows/deploy.yml | 37 +++++++++++++++++++++++++++++++++++ README.md | 11 ++++++----- 2 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 .forgejo/workflows/deploy.yml diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml new file mode 100644 index 0000000..9732bc7 --- /dev/null +++ b/.forgejo/workflows/deploy.yml @@ -0,0 +1,37 @@ +name: Deploy + +on: + push: + branches: + - main + - preview + +jobs: + deploy: + runs-on: node-20 + steps: + - name: Checkout + uses: https://code.forgejo.org/actions/checkout@v4 + + - name: Install Zola + run: | + curl -sL https://github.com/getzola/zola/releases/download/v0.22.1/zola-v0.22.1-x86_64-unknown-linux-gnu.tar.gz | tar xz -C /usr/local/bin + + - name: Build site + run: | + if [ "${{ github.ref_name }}" = "main" ]; then + zola build + else + zola build --drafts --base-url "https://${{ github.ref_name }}.${{ secrets.CF_PAGES_SUBDOMAIN }}.pages.dev" + fi + + - name: Deploy to Cloudflare Pages + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + run: | + npx wrangler pages project create ${{ secrets.CF_PAGES_PROJECT_NAME }} --production-branch=main 2>/dev/null || true + npx wrangler pages deploy public/ \ + --project-name=${{ secrets.CF_PAGES_PROJECT_NAME }} \ + --branch=${{ github.ref_name }} \ + --commit-dirty=true diff --git a/README.md b/README.md index 30a81c4..279ed64 100644 --- a/README.md +++ b/README.md @@ -41,11 +41,12 @@ Inserts table of contents where placed: {{ toc() }} ``` -## Cloudflare Pages Deployment +## Deployment -To use a specific version of Zola, handle Cloudflare's distinction between preview and production builds, and include draft pages in preview builds: +Automated via Forgejo Actions (`.forgejo/workflows/deploy.yml`). On push: -```bash -curl -sL https://github.com/getzola/zola/releases/download/v0.22.1/zola-v0.22.1-x86_64-unknown-linux-gnu.tar.gz | tar xz && if [ "$CF_PAGES_BRANCH" = "main" ]; then ./zola build; else ./zola build --drafts --base-url $CF_PAGES_URL; fi -``` +- **`main`** → production deploy to Cloudflare Pages +- **`preview`** → preview deploy with draft posts included + +Required secrets in Forgejo repo settings: `CLOUDFLARE_API_TOKEN`, `CLOUDFLARE_ACCOUNT_ID`, `CF_PAGES_PROJECT_NAME`.