diff --git a/.github/workflows/cloudflare.yml b/.github/workflows/cloudflare.yml new file mode 100644 index 000000000..85ae6fc7e --- /dev/null +++ b/.github/workflows/cloudflare.yml @@ -0,0 +1,66 @@ +name: cloudflare-pages + +on: + push: + branches: + - main + tags: + - v* + pull_request: + branches: + - main + - is-sprint-* + +env: + REACT_APP_SENTRY_DSN": ${{ secrets.SENTRY_DSN }} + REACT_APP_AMPLITUDE_API_KEY: ${{ secrets.AMPLITUDE_API_KEY }} + NODE_OPTIONS: "--max_old_space_size=4096" + +jobs: + build: + runs-on: ubuntu-latest + + name: Publish to Cloudflare Pages + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Use Node.js 16.x + uses: actions/setup-node@v3 + with: + node-version: 16.x + + - name: Cache node modules + id: cache-npm + uses: actions/cache@v3 + env: + cache-name: cache-node-modules + with: + # npm cache files are stored in `~/.npm` on Linux/macOS + path: ~/.npm + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - name: List the state of node modules + if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }} + continue-on-error: true + run: npm list + + - name: Install dependencies + run: npm install + + - name: Build + run: npm run build + + - name: Publish to Cloudflare Pages + uses: cloudflare/pages-action@v1 + with: + apiToken: ${{ secrets.CLOUDFLARE_PAGES_TOKEN }} + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + projectName: ${{ github.event.repository.name }} + gitHubToken: ${{ secrets.GITHUB_TOKEN }} + wranglerVersion: '3' + directory: build