diff --git a/.gitea/workflows/deploy-pages.yaml b/.gitea/workflows/deploy-pages.yaml new file mode 100644 index 0000000..fbb23f6 --- /dev/null +++ b/.gitea/workflows/deploy-pages.yaml @@ -0,0 +1,65 @@ +name: Deploy to Cloudflare Pages (cobalt) + +on: + push: + branches: ["main", "master"] + workflow_dispatch: {} + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: https://github.com/actions/checkout@v4 + # Giteaは絶対URLでの外部Action取得に対応。:contentReference[oaicite:6]{index=6} + + - name: Setup Node for Wrangler + uses: https://github.com/actions/setup-node@v4 + with: + node-version: "20" + + - name: Install cobalt (prebuilt) + shell: bash + run: | + if ! command -v curl >/dev/null 2>&1; then + (apt-get update && apt-get install -y curl) \ + || (apk add --no-cache curl) \ + || (dnf -y install curl) \ + || (pacman -Sy --noconfirm curl) + fi + curl -LSfs https://raw.githubusercontent.com/crate-ci/gh-install/master/v1/install.sh \ + | sh -s -- --git cobalt-org/cobalt.rs --crate cobalt + cobalt --version + # cobaltのインストール手順(prebuilt)。:contentReference[oaicite:7]{index=7} + + - name: Build site with cobalt + run: cobalt build + # 既定の出力は ./_site。:contentReference[oaicite:8]{index=8} + + - name: Install Wrangler + run: npm i -g wrangler@latest + + - name: Compute BRANCH_NAME + id: branch + shell: bash + run: | + bn="${GITHUB_REF_NAME:-${GITEA_REF_NAME:-}}" + if [ -z "$bn" ] && [ -n "${GITHUB_REF:-${GITEA_REF:-}}" ]; then + ref="${GITHUB_REF:-${GITEA_REF}}" + bn="${ref##*/}" + fi + echo "BRANCH_NAME=$bn" >> "$GITHUB_ENV" + + - name: Deploy to Cloudflare Pages + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + CF_PAGES_PROJECT: ${{ vars.CF_PAGES_PROJECT }} + run: | + test -n "$CF_PAGES_PROJECT" + npx wrangler pages deploy "_site" \ + --project-name "$CF_PAGES_PROJECT" \ + --account-id "$CLOUDFLARE_ACCOUNT_ID" \ + --branch "$BRANCH_NAME" + # CIでのwrangler deploy手順に準拠。:contentReference[oaicite:9]{index=9}