diff --git a/.github/workflows/edge-preview-authenticated-proxy.yml b/.github/workflows/worker-deploy-edge-preview-authenticated-proxy.yml similarity index 62% rename from .github/workflows/edge-preview-authenticated-proxy.yml rename to .github/workflows/worker-deploy-edge-preview-authenticated-proxy.yml index 470fd3e2f6c1..e7794e00ea45 100644 --- a/.github/workflows/edge-preview-authenticated-proxy.yml +++ b/.github/workflows/worker-deploy-edge-preview-authenticated-proxy.yml @@ -1,16 +1,16 @@ -name: Edge Preview Authenticated Proxy Worker +name: Deploy Edge Preview Authenticated Proxy Worker (production) +# On a push to `deploy-worker/edge-preview-authenticated-proxy`, on Cloudflare, +# deploy to production. on: push: branches: - - main - paths: - - "packages/edge-preview-authenticated-proxy/**" + - deploy-worker/edge-preview-authenticated-proxy jobs: - publish_worker: + deploy_worker: if: ${{ github.repository_owner == 'cloudflare' }} - name: Publish Worker + name: Deploy Edge Preview Authenticated Proxy (production) runs-on: ubuntu-latest steps: @@ -18,33 +18,36 @@ jobs: uses: actions/checkout@v3 with: fetch-depth: 0 - - uses: pnpm/action-setup@v2 + + - name: Use pnpm 8.8.0 + uses: pnpm/action-setup@v2 with: version: 8.8.0 + - name: Use Node.js 16.18 uses: actions/setup-node@v3 with: node-version: 16.18 cache: "pnpm" - - name: Install workerd Dependencies + - name: Install workerd dependencies if: ${{ runner.os == 'Linux' }} run: | export DEBIAN_FRONTEND=noninteractive sudo apt-get update sudo apt-get install -y libc++1 - - name: Install NPM Dependencies + - name: Install NPM dependencies run: pnpm install --frozen-lockfile - - name: Build wrangler + - name: Build tools and libraries run: pnpm run build env: NODE_ENV: "production" CI_OS: ${{ runner.os }} - - name: Build & Publish Worker - run: pnpm run publish + - name: Build & deploy Worker + run: pnpm run deploy env: NODE_ENV: "production" CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} diff --git a/.github/workflows/format-errors.yml b/.github/workflows/worker-format-errors-deploy.yml similarity index 62% rename from .github/workflows/format-errors.yml rename to .github/workflows/worker-format-errors-deploy.yml index a91824994016..4f9fce7ce29c 100644 --- a/.github/workflows/format-errors.yml +++ b/.github/workflows/worker-format-errors-deploy.yml @@ -1,49 +1,53 @@ -name: Error Formatting Worker +name: Deploy Format Errors Worker (production) +# On a push to `deploy-worker/format-errors`, on Cloudflare, +# deploy to production. on: push: branches: - - main - paths: - - "packages/format-errors/**" + - deploy-worker/format-errors jobs: - publish_worker: + deploy_worker: if: ${{ github.repository_owner == 'cloudflare' }} - name: Publish Worker + name: Deploy Format Errors Worker (production) runs-on: ubuntu-latest steps: - - name: Checkout Repo + - name: Checkout repo uses: actions/checkout@v3 with: fetch-depth: 0 - - uses: pnpm/action-setup@v2 + + - name: Use pnpm 8.8.0 + uses: pnpm/action-setup@v2 with: version: 8.8.0 + - name: Use Node.js 16.18 uses: actions/setup-node@v3 with: node-version: 16.18 cache: "pnpm" - - name: Install workerd Dependencies + - name: Install workerd dependencies if: ${{ runner.os == 'Linux' }} run: | export DEBIAN_FRONTEND=noninteractive sudo apt-get update sudo apt-get install -y libc++1 - - name: Install NPM Dependencies + + - name: Install NPM dependencies run: pnpm install --frozen-lockfile - - name: Build wrangler + - name: Build tools and libraries run: pnpm run build env: NODE_ENV: "production" CI_OS: ${{ runner.os }} - - name: Build & Publish Worker - run: pnpm run publish + - name: Build & deploy Worker + run: pnpm run deploy env: NODE_ENV: "production" CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} diff --git a/.github/workflows/playground-preview-worker.yml b/.github/workflows/worker-playground-preview-deploy-production.yml similarity index 63% rename from .github/workflows/playground-preview-worker.yml rename to .github/workflows/worker-playground-preview-deploy-production.yml index 49d653edbe40..965c989c4c41 100644 --- a/.github/workflows/playground-preview-worker.yml +++ b/.github/workflows/worker-playground-preview-deploy-production.yml @@ -1,49 +1,52 @@ -name: Playground Preview Worker +name: Deploy Playground Preview Worker (production) +# On a push to `deploy-worker/playground-preview-worker`, on Cloudflare, +# deploy to production. on: push: branches: - - main - paths: - - "packages/playground-preview-worker/**" + - deploy-worker/playground-preview-worker jobs: - publish_worker: + deploy_worker: if: ${{ github.repository_owner == 'cloudflare' }} - name: Publish Worker + name: Deploy Playground Preview Worker (production) runs-on: ubuntu-latest steps: - - name: Checkout Repo + - name: Checkout repo uses: actions/checkout@v3 with: fetch-depth: 0 - - uses: pnpm/action-setup@v2 + + - name: Use pnpm 8.8.0 + uses: pnpm/action-setup@v2 with: version: 8.8.0 + - name: Use Node.js 16.18 uses: actions/setup-node@v3 with: node-version: 16.18 cache: "pnpm" - - name: Install workerd Dependencies + - name: Install workerd dependencies if: ${{ runner.os == 'Linux' }} run: | export DEBIAN_FRONTEND=noninteractive sudo apt-get update sudo apt-get install -y libc++1 - - name: Install NPM Dependencies + - name: Install NPM dependencies run: pnpm install --frozen-lockfile - - name: Build wrangler + - name: Build tools and libraries run: pnpm run build env: NODE_ENV: "production" CI_OS: ${{ runner.os }} - - name: Build & Publish Worker + - name: Build & deploy Worker run: pnpm run deploy env: NODE_ENV: "production" diff --git a/.github/workflows/playground-worker-tests.yml b/.github/workflows/worker-playground-preview-deploy-testing.yml similarity index 60% rename from .github/workflows/playground-worker-tests.yml rename to .github/workflows/worker-playground-preview-deploy-testing.yml index 2d8d8cca3106..203fc6de6253 100644 --- a/.github/workflows/playground-worker-tests.yml +++ b/.github/workflows/worker-playground-preview-deploy-testing.yml @@ -1,50 +1,58 @@ -name: Playground Worker tests +name: Deploy Playground Preview Worker (testing) +# On a push to `main`, on Cloudflare, where there are changes to the files in this worker's package, +# or an update to a PR, on Cloudflare, labelled as `playground-worker`, +# deploy to testing and then run the end-to-end tests against this deployment. on: push: branches: - main - - changeset-release/main + paths: + - "packages/playground-preview-worker/**" + pull_request: types: [synchronize, opened, reopened, labeled, unlabeled] - repository_dispatch: jobs: e2e-test: - if: github.repository_owner == 'cloudflare' && (github.event_name != 'pull_request' || (github.event_name == 'pull_request' && contains(github.event.*.labels.*.name, 'playground-worker' )) || (github.event_name == 'pull_request' && github.head_ref == 'changeset-release/main')) - name: "Playground Worker Test" + if: github.repository_owner == 'cloudflare' && (github.event_name != 'pull_request' || contains(github.event.*.labels.*.name, 'playground-worker')) + name: "Deploy Playground Preview Worker (testing)" runs-on: ubuntu-latest + steps: - - name: Checkout Repo + - name: Checkout repo uses: actions/checkout@v3 with: fetch-depth: 0 - - uses: pnpm/action-setup@v2 + + - name: Use pnpm 8.8.0 + uses: pnpm/action-setup@v2 with: version: 8.8.0 - - name: Use Node.js 18 + + - name: Use Node.js 16.18 uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 16.18 cache: "pnpm" - - name: Install workerd Dependencies + - name: Install workerd dependencies if: ${{ runner.os == 'Linux' }} run: | export DEBIAN_FRONTEND=noninteractive sudo apt-get update sudo apt-get install -y libc++1 - - name: Install NPM Dependencies + - name: Install NPM dependencies run: pnpm install --frozen-lockfile - - name: Run builds + - name: Build tools and libraries run: pnpm run build env: NODE_ENV: "production" CI_OS: ${{ runner.os }} - - name: Build & Publish Testing Playground Worker + - name: Build & deploy Worker run: pnpm run deploy:testing env: NODE_ENV: "production" @@ -52,7 +60,7 @@ jobs: working-directory: packages/playground-preview-worker - name: Run tests & collect coverage - run: pnpm run test:ci + run: pnpm run test:e2e env: TMP_CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} TMP_CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} diff --git a/packages/edge-preview-authenticated-proxy/package.json b/packages/edge-preview-authenticated-proxy/package.json index f0c1dd56ed3a..9137c63de23e 100644 --- a/packages/edge-preview-authenticated-proxy/package.json +++ b/packages/edge-preview-authenticated-proxy/package.json @@ -4,7 +4,7 @@ "private": true, "scripts": { "check:lint": "eslint .", - "publish": "wrangler deploy", + "deploy": "wrangler deploy", "start": "wrangler dev", "test": "vitest run", "type:tests": "tsc -p ./tests/tsconfig.json", diff --git a/packages/format-errors/package.json b/packages/format-errors/package.json index ec2d6da71247..6dd910dc39f9 100644 --- a/packages/format-errors/package.json +++ b/packages/format-errors/package.json @@ -4,7 +4,7 @@ "private": true, "scripts": { "check:lint": "eslint .", - "publish": "wrangler deploy", + "deploy": "wrangler deploy", "build": "wrangler build", "start": "wrangler dev" }, diff --git a/packages/playground-preview-worker/package.json b/packages/playground-preview-worker/package.json index 1d1c86e1c274..34ab5a459976 100644 --- a/packages/playground-preview-worker/package.json +++ b/packages/playground-preview-worker/package.json @@ -9,8 +9,7 @@ "deploy": "wrangler -j deploy", "deploy:testing": "wrangler -j deploy -e testing", "start": "wrangler -j dev", - "test": "vitest run", - "test:ci": "vitest run" + "test:e2e": "vitest run" }, "dependencies": { "hono": "^3.3.2", diff --git a/packages/playground-preview-worker/tests/index.test.ts b/packages/playground-preview-worker/tests/index.test.ts index 21de6d883cf6..2cc61344268a 100644 --- a/packages/playground-preview-worker/tests/index.test.ts +++ b/packages/playground-preview-worker/tests/index.test.ts @@ -1,12 +1,5 @@ import { fetch } from "undici"; -import { afterAll, beforeAll, beforeEach, describe, expect, it } from "vitest"; - -function removeUUID(str: string) { - return str.replace( - /\w{8}-\w{4}-\w{4}-\w{4}-\w{12}/g, - "00000000-0000-0000-0000-000000000000" - ); -} +import { beforeAll, describe, expect, it } from "vitest"; const REMOTE = "https://playground-testing.devprod.cloudflare.dev"; const PREVIEW_REMOTE =