diff --git a/.github/workflows/cloudflare-pages.yml b/.github/workflows/cloudflare-pages.yml
new file mode 100644
index 0000000000..9d724f98a2
--- /dev/null
+++ b/.github/workflows/cloudflare-pages.yml
@@ -0,0 +1,106 @@
+# NOTE: This name appears in GitHub's Checks API and in workflow's status badge.
+name: cloudflare-pages
+
+# Trigger the workflow when:
+on:
+ # A push occurs to one of the matched branches.
+ push:
+ branches: [master]
+ # Or when a pull request event occurs for a pull request against one of the
+ # matched branches.
+ pull_request:
+ branches: [master]
+
+permissions: # Limit secrets.GITHUB_TOKEN permissions
+ contents: read
+ pull-requests: write
+
+jobs:
+ cloudflare-pages:
+ # This name appears in GitHub's Checks API.
+ name: cloudflare-pages
+ # Do not trigger job for dependency update bot.
+ if: github.actor != 'renovate[bot]'
+ runs-on: ubuntu-latest
+ steps:
+ # In progress comment will be updated with a deploy status.
+ - name: Add in progress comment to PR
+ # We want to add in progress comment on a pull request event only.
+ if: github.event_name == 'pull_request'
+ uses: mshick/add-pr-comment@v2
+ with:
+ message: |
+ ## Deploying with Cloudflare Pages
+
+
+ Latest commit: |
+ ${{ github.event.pull_request.head.sha }} |
+
+
+ Status: | ⏳ In progress |
+
+
+ - name: Checkout code
+ uses: actions/checkout@v3
+ # Checkout pull request HEAD commit instead of merge commit.
+ with:
+ ref: ${{ github.event.pull_request.head.sha }}
+ - name: Set up Node.js 20
+ uses: actions/setup-node@v3
+ with:
+ node-version: '20.x'
+ cache: yarn
+ - name: Install dependencies
+ run: yarn install --frozen-lockfile
+ - name: Build app
+ run: yarn build
+ - name: Publish to Cloudflare Pages
+ # Id is needed to access output in a next step.
+ id: cloudflare
+ uses: cloudflare/pages-action@v1
+ with:
+ apiToken: ${{ secrets.CLOUDFLARE_PAGES_API_TOKEN }}
+ accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
+ # Project name created via Cloudflare dashboard.
+ projectName: oasis-wallet
+ # Use output directory of build command.
+ directory: build
+ # On a subsequent run the original comment will be updated.
+ - name: Update PR comment
+ uses: mshick/add-pr-comment@v2
+ # We want to update a comment on a pull request event only.
+ if: github.event_name == 'pull_request' && always()
+ with:
+ message: |
+ ## Deployed to Cloudflare Pages
+
+ message-failure: |
+ ## Deployed to Cloudflare Pages
+
+
+ Latest commit: |
+ ${{ github.event.pull_request.head.sha }} |
+
+
+ Status: | 🚫 Deploy failed! |
+
+
+ message-cancelled: |
+ ## Deployed to Cloudflare Pages
+
+
+ Status: | ✖️ Deploy cancelled! |
+
+