Deploy Observable Dashboard to Cloudflare Pages #83
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 Observable Dashboard to Cloudflare Pages | |
on: | |
push: | |
branches: [ main ] | |
schedule: | |
- cron: "0 20 * * *" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
deployments: write | |
environment: default | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: npm | |
- name: Install dependencies | |
run: npm ci | |
- name: Build project | |
run: npm run build # Assumes your project has a build script in package.json | |
env: | |
API_TOKEN: ${{ secrets.API_TOKEN }} | |
- name: Deploy to Cloudflare Pages | |
uses: cloudflare/pages-action@v1 | |
with: | |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
projectName: spark-dashboard # Replace with your Cloudflare Pages project name | |
directory: ./dist # Replace with your output directory after build | |