Deploy to Cloudflare Pages #409
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy to Cloudflare Pages | |
on: | |
workflow_dispatch: | |
workflow_run: | |
workflows: ["Build"] | |
types: | |
- completed | |
permissions: | |
contents: read | |
jobs: | |
deploy-to-cloudflare: | |
name: Automatic Cloudflare Deploy | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20.10.0 | |
- name: Run setup script | |
run: | | |
yarn install | |
yarn setup-kv | |
env: | |
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
- name: Update wrangler.toml Name Field | |
run: | | |
branch_name=$(echo '${{ github.event.ref }}' | sed 's#refs/heads/##' | sed 's#[^a-zA-Z0-9]#-#g') | |
# Extract base name from wrangler.toml | |
base_name=$(grep '^name = ' wrangler.toml | sed 's/^name = "\(.*\)"$/\1/') | |
# Concatenate branch name with base name | |
new_name="${base_name}-${branch_name}" | |
# Truncate the new name to 63 characters for RFC 1035 | |
new_name=$(echo "$new_name" | cut -c 1-63) | |
# Update the wrangler.toml file | |
sed -i "s/^name = .*/name = \"$new_name\"/" wrangler.toml | |
echo "Updated wrangler.toml name to: $new_name" | |
- name: Deploy to Cloudflare | |
if: ${{ github.event.workflow_run.conclusion == 'success' }} | |
uses: ubiquity/cloudflare-deploy-action@main | |
with: | |
repository: ${{ github.repository }} | |
production_branch: ${{ github.event.repository.default_branch }} | |
build_artifact_name: "static" | |
output_directory: "static" | |
current_branch: ${{ github.event.workflow_run.head_branch }} | |
cloudflare_account_id: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
cloudflare_api_token: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
commit_sha: ${{ github.event.workflow_run.head_sha }} | |
workflow_run_id: ${{ github.event.workflow_run.id }} | |
app_id: ${{ secrets.APP_ID }} | |
app_private_key: ${{ secrets.APP_PRIVATE_KEY }} |