Add GitHub deployments for parity with pages-action #387
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: Wrangler Action Self Testing | |
on: | |
pull_request: | |
branches: | |
- main | |
jobs: | |
wrangler_action_self_testing: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v3 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
# Pinned due to compatibility issues on 23.2.0 | |
node-version: "22" | |
cache: "npm" | |
- name: Install modules and build | |
run: npm ci && npm run build | |
- name: Unit Tests | |
run: npm run test | |
- name: Check Formatting | |
run: npm run check | |
- name: Only build app | |
uses: ./ | |
with: | |
workingDirectory: "./src/test/fixtures/only-build" | |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
command: deploy --dry-run | |
- name: Only build app w/ quiet enabled | |
uses: ./ | |
with: | |
quiet: true | |
workingDirectory: "./src/test/fixtures/build-quiet" | |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
command: deploy --dry-run | |
- name: Environment support | |
uses: ./ | |
with: | |
workingDirectory: "./src/test/fixtures/environment" | |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
environment: dev | |
preCommands: npx wrangler deploy --env dev # https://github.com/cloudflare/wrangler-action/issues/162 | |
postCommands: npx wrangler delete --name wrangler-action-dev-environment-test --force | |
secrets: | | |
SECRET1 | |
SECRET2 | |
env: | |
SECRET1: ${{ secrets.SECRET1 }} | |
SECRET2: ${{ secrets.SECRET2 }} | |
# START Setup and teardown of Workers w/ Secrets Tests | |
- name: Deploy app secrets w/ hardcoded Wrangler v2 | |
uses: ./ | |
with: | |
wranglerVersion: "2.20.0" | |
workingDirectory: "./src/test/fixtures/secrets-v2" | |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
secrets: | | |
SECRET1 | |
SECRET2 | |
env: | |
SECRET1: ${{ secrets.SECRET1 }} | |
SECRET2: ${{ secrets.SECRET2 }} | |
- name: Health Check Deployed Worker | |
run: node .github/workflows/workerHealthCheck.cjs wrangler-action-test-secrets-v2 | |
shell: bash | |
- name: Deploy app secrets w/ default version | |
uses: ./ | |
with: | |
workingDirectory: "./src/test/fixtures/secrets-default" | |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
secrets: | | |
SECRET1 | |
SECRET2 | |
env: | |
SECRET1: ${{ secrets.SECRET1 }} | |
SECRET2: ${{ secrets.SECRET2 }} | |
- name: Health Check Deployed Worker | |
run: node .github/workflows/workerHealthCheck.cjs wrangler-action-test-secrets-default | |
shell: bash | |
- name: Clean Up Deployed Workers | |
uses: ./ | |
with: | |
workingDirectory: "./src/test/fixtures/secrets-default" | |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
command: delete --name wrangler-action-test-secrets-v2 --force | |
postCommands: npx wrangler delete --name wrangler-action-test-secrets-default --force | |
# END Setup and teardown of Workers w/ Secrets Tests | |
- name: Support packageManager variable | |
uses: ./ | |
with: | |
workingDirectory: "./src/test/fixtures/specify-package-manager" | |
packageManager: "npm" | |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
command: deploy --dry-run | |
- name: Support unspecified packageManager with no lockfile | |
uses: ./ | |
with: | |
workingDirectory: "./src/test/fixtures/unspecified-package-manager" | |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
command: deploy --dry-run | |
- name: Support npm package manager | |
uses: ./ | |
with: | |
workingDirectory: "./src/test/fixtures/npm" | |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
command: deploy --dry-run | |
- name: Install yarn | |
run: npm i -g yarn | |
- name: Support yarn package manager | |
uses: ./ | |
with: | |
workingDirectory: "./src/test/fixtures/yarn" | |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
command: deploy --dry-run | |
- name: Install pnpm | |
run: npm i -g pnpm | |
- name: Support pnpm package manager | |
uses: ./ | |
with: | |
workingDirectory: "./src/test/fixtures/pnpm" | |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
command: deploy --dry-run | |
- name: Change directory to pre-installed-wrangler and install dependencies | |
run: | | |
cd ./src/test/fixtures/pre-installed-wrangler | |
npm install | |
- name: Support pre-installed wrangler | |
uses: ./ | |
with: | |
workingDirectory: "./src/test/fixtures/pre-installed-wrangler" | |
command: action-test |