feat: add step to ensure Cloudflare Pages project exists before deployment

This commit is contained in:
xixu-me committed 2026-02-01 13:20:22 +08:00
1 parent 4f322650aa
commit 69b27ea12a
1 file changed
+27
+27
View File
@@ -28,6 +28,33 @@ jobs:
with:
ref: pages
- name: Ensure Cloudflare Pages project exists
env:
CF_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CF_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
CF_PAGES_PROJECT: xget
CF_PRODUCTION_BRANCH: main
shell: bash
run: |
set -euo pipefail
api_base="https://api.cloudflare.com/client/v4/accounts/${CF_ACCOUNT_ID}/pages/projects"
auth_header="Authorization: Bearer ${CF_API_TOKEN}"
echo "Checking Pages project: ${CF_PAGES_PROJECT}"
if curl -fsS -H "${auth_header}" "${api_base}/${CF_PAGES_PROJECT}" >/dev/null; then
echo "Pages project exists."
exit 0
fi
echo "Pages project not found. Creating..."
create_payload="$(printf '{"name":"%s","production_branch":"%s"}' "${CF_PAGES_PROJECT}" "${CF_PRODUCTION_BRANCH}")"
curl -fsS -X POST -H "${auth_header}" -H "Content-Type: application/json" \
--data "${create_payload}" \
"${api_base}" >/dev/null
echo "Pages project created."
- name: Deploy to Cloudflare Pages
uses: cloudflare/wrangler-action@v3
with: