From dfa2c11e9a212e49bf36b43d2f542d25b1863223 Mon Sep 17 00:00:00 2001 From: Chris Arderne Date: Mon, 6 Jul 2026 16:03:42 +0100 Subject: [PATCH] chore: back to github runners --- .github/actionlint.yaml | 9 - .github/workflows/changesets-pr.yml | 2 +- .github/workflows/check-review-md.yml | 2 +- .github/workflows/claude-md-audit.yml | 2 +- .github/workflows/claude.yml | 2 +- .github/workflows/code-quality.yml | 2 +- .../workflows/dependabot-critical-alerts.yml | 2 +- .../workflows/dependabot-weekly-summary.yml | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/e2e-webapp-auth-full.yml | 2 +- .github/workflows/e2e-webapp.yml | 2 +- .github/workflows/e2e.yml | 2 +- .github/workflows/helm-prerelease.yml | 4 +- .github/workflows/pr-testbox-windows.yml | 58 --- .github/workflows/pr-testbox.yml | 122 ------ .github/workflows/pr_checks.yml | 4 +- .github/workflows/preview-dispatch.yml | 2 +- .github/workflows/preview-packages.yml | 2 +- .github/workflows/publish-docs.yml | 2 +- .github/workflows/publish-webapp.yml | 2 +- .github/workflows/publish-worker-v4.yml | 4 +- .github/workflows/publish-worker.yml | 2 +- .github/workflows/publish.yml | 2 +- .github/workflows/release-helm.yml | 4 +- .github/workflows/release.yml | 10 +- .github/workflows/sdk-compat.yml | 8 +- .github/workflows/trivy-image-webapp.yml | 2 +- .github/workflows/typecheck.yml | 2 +- .github/workflows/unit-tests-internal.yml | 4 +- .github/workflows/unit-tests-packages.yml | 4 +- .github/workflows/unit-tests-webapp.yml | 4 +- .github/workflows/vouch-check-pr.yml | 4 +- .github/workflows/vouch-manage-by-issue.yml | 2 +- .github/workflows/workflow-checks.yml | 4 +- scripts/blacksmith.md | 69 ---- scripts/test-pr-check-windows.ps1 | 158 -------- scripts/test-pr-check.sh | 377 ------------------ 37 files changed, 47 insertions(+), 840 deletions(-) delete mode 100644 .github/actionlint.yaml delete mode 100644 .github/workflows/pr-testbox-windows.yml delete mode 100644 .github/workflows/pr-testbox.yml delete mode 100644 scripts/blacksmith.md delete mode 100644 scripts/test-pr-check-windows.ps1 delete mode 100755 scripts/test-pr-check.sh diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml deleted file mode 100644 index b014e60948..0000000000 --- a/.github/actionlint.yaml +++ /dev/null @@ -1,9 +0,0 @@ -# Configuration for actionlint. -# -# Blacksmith runners are self-hosted runners from GitHub Actions' perspective, so -# actionlint needs to be told that these custom runner labels are valid. -self-hosted-runner: - labels: - - blacksmith-*-ubuntu-* - - blacksmith-*-windows-* - - blacksmith-*-macos-* diff --git a/.github/workflows/changesets-pr.yml b/.github/workflows/changesets-pr.yml index cba916d7f3..e6012cb45e 100644 --- a/.github/workflows/changesets-pr.yml +++ b/.github/workflows/changesets-pr.yml @@ -18,7 +18,7 @@ concurrency: jobs: release-pr: name: Create Release PR - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest permissions: contents: write pull-requests: write diff --git a/.github/workflows/check-review-md.yml b/.github/workflows/check-review-md.yml index 5fe7d483c0..fa69c55b3f 100644 --- a/.github/workflows/check-review-md.yml +++ b/.github/workflows/check-review-md.yml @@ -20,7 +20,7 @@ jobs: vars.ENABLE_CLAUDE_CODE != 'false' && github.event.pull_request.draft == false && github.event.pull_request.head.repo.full_name == github.repository - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest permissions: contents: read pull-requests: write diff --git a/.github/workflows/claude-md-audit.yml b/.github/workflows/claude-md-audit.yml index 42cfb96997..fb5c581b61 100644 --- a/.github/workflows/claude-md-audit.yml +++ b/.github/workflows/claude-md-audit.yml @@ -21,7 +21,7 @@ jobs: vars.ENABLE_CLAUDE_CODE != 'false' && github.event.pull_request.draft == false && github.event.pull_request.head.repo.full_name == github.repository - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest permissions: contents: read pull-requests: write diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml index 0ff12b6111..6dbacf2120 100644 --- a/.github/workflows/claude.yml +++ b/.github/workflows/claude.yml @@ -22,7 +22,7 @@ jobs: (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) || (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude'))) ) - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest permissions: contents: write pull-requests: write diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index a288ca3242..e1491f01ed 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -8,7 +8,7 @@ permissions: jobs: code-quality: - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest steps: - name: โฌ‡๏ธ Checkout repo diff --git a/.github/workflows/dependabot-critical-alerts.yml b/.github/workflows/dependabot-critical-alerts.yml index 825cece2cc..9a61387324 100644 --- a/.github/workflows/dependabot-critical-alerts.yml +++ b/.github/workflows/dependabot-critical-alerts.yml @@ -29,7 +29,7 @@ jobs: # the Dependabot alert/summary notifiers โ€” e.g. forks/mirrors that lack the # DEPENDABOT_ALERTS_TOKEN / SLACK_BOT_TOKEN secrets. Defaults to enabled. if: ${{ vars.ENABLE_DEPENDABOT_ALERTS != 'false' }} - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest environment: dependabot-summary env: SEVERITY: ${{ inputs.severity || 'critical' }} diff --git a/.github/workflows/dependabot-weekly-summary.yml b/.github/workflows/dependabot-weekly-summary.yml index a1b9e1a5ee..d7b489d55d 100644 --- a/.github/workflows/dependabot-weekly-summary.yml +++ b/.github/workflows/dependabot-weekly-summary.yml @@ -23,7 +23,7 @@ jobs: # the Dependabot alert/summary notifiers โ€” e.g. forks/mirrors that lack the # DEPENDABOT_ALERTS_TOKEN / SLACK_BOT_TOKEN secrets. Defaults to enabled. if: ${{ vars.ENABLE_DEPENDABOT_ALERTS != 'false' }} - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest environment: dependabot-summary env: # Severities surface in the actions list when their remaining TTR drops diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 52d319d5cb..9e7309d5f9 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -20,7 +20,7 @@ permissions: jobs: check-broken-links: - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest defaults: run: working-directory: ./docs diff --git a/.github/workflows/e2e-webapp-auth-full.yml b/.github/workflows/e2e-webapp-auth-full.yml index 876f9418b2..01ffc47633 100644 --- a/.github/workflows/e2e-webapp-auth-full.yml +++ b/.github/workflows/e2e-webapp-auth-full.yml @@ -37,7 +37,7 @@ on: jobs: e2eAuthFull: name: "๐Ÿ›ก๏ธ E2E Auth Tests (full)" - runs-on: blacksmith-8vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 30 env: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/.github/workflows/e2e-webapp.yml b/.github/workflows/e2e-webapp.yml index 637a27a2a4..fd5fac3e15 100644 --- a/.github/workflows/e2e-webapp.yml +++ b/.github/workflows/e2e-webapp.yml @@ -14,7 +14,7 @@ on: jobs: e2eTests: name: "๐Ÿงช E2E Tests: Webapp" - runs-on: blacksmith-8vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 20 env: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 2ec5ac470b..8115860f76 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -20,7 +20,7 @@ jobs: strategy: fail-fast: false matrix: - os: [blacksmith-4vcpu-ubuntu-2404, blacksmith-4vcpu-windows-2025] + os: [ubuntu-latest, windows-latest] package-manager: ["npm", "pnpm"] steps: - name: โฌ‡๏ธ Checkout repo diff --git a/.github/workflows/helm-prerelease.yml b/.github/workflows/helm-prerelease.yml index ba42949906..adef03ff58 100644 --- a/.github/workflows/helm-prerelease.yml +++ b/.github/workflows/helm-prerelease.yml @@ -28,7 +28,7 @@ env: jobs: lint-and-test: - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest permissions: contents: read steps: @@ -77,7 +77,7 @@ jobs: ((github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) || github.event_name == 'push' || github.event_name == 'workflow_dispatch') - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest permissions: contents: read packages: write diff --git a/.github/workflows/pr-testbox-windows.yml b/.github/workflows/pr-testbox-windows.yml deleted file mode 100644 index 5418c2c11e..0000000000 --- a/.github/workflows/pr-testbox-windows.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: Blacksmith PR Testbox Windows - -on: - workflow_dispatch: - inputs: - testbox_id: - type: string - description: "Testbox session ID" - required: true - -permissions: - contents: read - -jobs: - pr-testbox-windows: - runs-on: blacksmith-4vcpu-windows-2025 - - steps: - - name: Begin Testbox - if: ${{ github.event_name == 'workflow_dispatch' }} - uses: useblacksmith/begin-testbox@233448af4bfdc6fca509a7f0974411ac6d8a8043 # v2 - with: - testbox_id: ${{ inputs.testbox_id }} - - - name: โฌ‡๏ธ Checkout repo - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - fetch-depth: 0 - persist-credentials: false - - - name: โŽ” Setup pnpm - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - with: - version: 10.33.2 - - - name: โŽ” Setup node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 - with: - node-version: 22.23.1 - - - name: ๐Ÿ“ฅ Download CLI deps - run: pnpm install --frozen-lockfile --filter trigger.dev... - - - name: ๐Ÿ“€ Generate Prisma Client - run: pnpm run generate - - - name: ๐Ÿ”ง Build v3 cli monorepo dependencies - run: pnpm run build --filter trigger.dev^... - - - name: ๐Ÿ”ง Build worker template files - run: pnpm --filter trigger.dev run --if-present build:workers - - - name: Enable corepack - run: corepack enable - - - name: Run Testbox - uses: useblacksmith/run-testbox@5ca05834db1d3813554d1dd109e5f2087a8d7cbc # v2 - if: ${{ always() && github.event_name == 'workflow_dispatch' }} diff --git a/.github/workflows/pr-testbox.yml b/.github/workflows/pr-testbox.yml deleted file mode 100644 index fbaae4898f..0000000000 --- a/.github/workflows/pr-testbox.yml +++ /dev/null @@ -1,122 +0,0 @@ -name: Blacksmith PR Testbox - -on: - workflow_dispatch: - inputs: - testbox_id: - type: string - description: "Testbox session ID" - required: true - -permissions: - contents: read - -jobs: - pr-testbox: - runs-on: blacksmith-8vcpu-ubuntu-2404 - env: - DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} - - steps: - - name: Begin Testbox - if: ${{ github.event_name == 'workflow_dispatch' }} - uses: useblacksmith/begin-testbox@233448af4bfdc6fca509a7f0974411ac6d8a8043 # v2 - with: - testbox_id: ${{ inputs.testbox_id }} - - - name: ๐Ÿ”ง Disable IPv6 - run: | - sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 - sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1 - sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1 - - - name: ๐Ÿ”ง Configure docker address pool - run: | - CONFIG='{ - "default-address-pools" : [ - { - "base" : "172.17.0.0/12", - "size" : 20 - }, - { - "base" : "192.168.0.0/16", - "size" : 24 - } - ] - }' - sudo mkdir -p /etc/docker - echo "$CONFIG" | sudo tee /etc/docker/daemon.json - - - name: ๐Ÿ”ง Restart docker daemon - run: sudo systemctl restart docker - - - name: โฌ‡๏ธ Checkout repo - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - fetch-depth: 0 - persist-credentials: false - - - name: โŽ” Setup pnpm - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - with: - version: 10.33.2 - - - name: โŽ” Setup node - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 - with: - node-version: 22.23.1 - cache: "pnpm" - - - name: ๐ŸฅŸ Setup Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 - with: - bun-version: latest - - - name: ๐Ÿฆ• Setup Deno - uses: denoland/setup-deno@667a34cdef165d8d2b2e98dde39547c9daac7282 # v2.0.4 - with: - deno-version: v2.x - - - name: ๐Ÿณ Login to DockerHub - if: ${{ env.DOCKERHUB_USERNAME }} - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: ๐Ÿณ Skipping DockerHub login (no secrets available) - if: ${{ !env.DOCKERHUB_USERNAME }} - run: echo "DockerHub login skipped because secrets are not available." - - - name: ๐Ÿณ Pre-pull testcontainer images - if: ${{ env.DOCKERHUB_USERNAME }} - run: | - pull() { - for attempt in 1 2 3; do - docker pull "$1" && return 0 - echo "::warning::docker pull $1 failed (attempt ${attempt}/3); retrying in 10s" - sleep 10 - done - echo "::error::docker pull $1 failed after 3 attempts" - return 1 - } - - echo "Pre-pulling Docker images with authenticated session..." - pull postgres:14 - pull clickhouse/clickhouse-server:26.2.19.43-alpine@sha256:c6ad6a7eb2fb5999df3adfb8b69a0c7222c68fa9b8f6b04a088564ebbc959251 - pull redis:7.2 - pull testcontainers/ryuk:0.11.0 - pull testcontainers/ryuk:0.14.0 - pull electricsql/electric:1.2.4 - pull minio/minio:latest - echo "Image pre-pull complete" - - - name: ๐Ÿ“ฅ Download deps - run: pnpm install --frozen-lockfile - - - name: ๐Ÿ“€ Generate Prisma Client - run: pnpm run generate - - - name: Run Testbox - uses: useblacksmith/run-testbox@5ca05834db1d3813554d1dd109e5f2087a8d7cbc # v2 - if: ${{ always() && github.event_name == 'workflow_dispatch' }} diff --git a/.github/workflows/pr_checks.yml b/.github/workflows/pr_checks.yml index be0f0773d2..4dce7311e9 100644 --- a/.github/workflows/pr_checks.yml +++ b/.github/workflows/pr_checks.yml @@ -15,7 +15,7 @@ permissions: jobs: changes: name: Detect changes - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest outputs: code: ${{ steps.code_filter.outputs.code }} typecheck_self: ${{ steps.filter.outputs.typecheck_self }} @@ -168,7 +168,7 @@ jobs: - e2e - sdk-compat if: always() - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest steps: - name: Verify all checks run: | diff --git a/.github/workflows/preview-dispatch.yml b/.github/workflows/preview-dispatch.yml index bfd501e1eb..3f26c66cf3 100644 --- a/.github/workflows/preview-dispatch.yml +++ b/.github/workflows/preview-dispatch.yml @@ -20,7 +20,7 @@ permissions: {} jobs: dispatch: name: Dispatch preview-deploy to cloud - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest # label added -> create # new commit while labeled -> update # label removed / PR closed -> destroy diff --git a/.github/workflows/preview-packages.yml b/.github/workflows/preview-packages.yml index e56a32c257..1003b2113b 100644 --- a/.github/workflows/preview-packages.yml +++ b/.github/workflows/preview-packages.yml @@ -42,7 +42,7 @@ permissions: jobs: publish: name: Build and publish previews - runs-on: blacksmith-8vcpu-ubuntu-2404 + runs-on: ubuntu-latest if: github.repository == 'triggerdotdev/trigger.dev' steps: - name: โฌ‡๏ธ Checkout repo diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 7d39e65def..8a457c77dc 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -15,7 +15,7 @@ concurrency: jobs: publish: - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest steps: - name: ๐Ÿ“ฅ Checkout tagged commit uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 diff --git a/.github/workflows/publish-webapp.yml b/.github/workflows/publish-webapp.yml index 421257a1e0..8d6dfe63a3 100644 --- a/.github/workflows/publish-webapp.yml +++ b/.github/workflows/publish-webapp.yml @@ -38,7 +38,7 @@ on: jobs: publish: - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest env: PRISMA_ENGINES_CHECKSUM_IGNORE_MISSING: 1 outputs: diff --git a/.github/workflows/publish-worker-v4.yml b/.github/workflows/publish-worker-v4.yml index 5906b34ff4..1686c3d454 100644 --- a/.github/workflows/publish-worker-v4.yml +++ b/.github/workflows/publish-worker-v4.yml @@ -25,7 +25,7 @@ permissions: jobs: # check-branch: - # runs-on: blacksmith-2vcpu-ubuntu-2404 + # runs-on: ubuntu-latest # steps: # - name: Fail if re2-prod-* is pushed from a non-main branch # if: startsWith(github.ref_name, 're2-prod-') && github.base_ref != 'main' @@ -37,7 +37,7 @@ jobs: strategy: matrix: package: [supervisor] - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest env: DOCKER_BUILDKIT: "1" steps: diff --git a/.github/workflows/publish-worker.yml b/.github/workflows/publish-worker.yml index 0cefd76892..89acac7ec1 100644 --- a/.github/workflows/publish-worker.yml +++ b/.github/workflows/publish-worker.yml @@ -33,7 +33,7 @@ jobs: strategy: matrix: package: [coordinator, docker-provider, kubernetes-provider] - runs-on: blacksmith-8vcpu-ubuntu-2404 + runs-on: ubuntu-latest env: DOCKER_BUILDKIT: "1" DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 75e11d617c..2f2744c770 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -128,7 +128,7 @@ jobs: name: ๐Ÿ“ฃ Dispatch main image needs: [publish-webapp] if: github.repository == (vars.MAIN_IMAGE_DISPATCH_REPO || 'triggerdotdev/trigger.dev') && github.event_name == 'push' && startsWith(github.ref_name, vars.MAIN_IMAGE_DISPATCH_REF_PREFIX || 'main') - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest permissions: {} steps: - name: Build dispatch payload diff --git a/.github/workflows/release-helm.yml b/.github/workflows/release-helm.yml index 9f6fe90664..bddd69cfc5 100644 --- a/.github/workflows/release-helm.yml +++ b/.github/workflows/release-helm.yml @@ -23,7 +23,7 @@ env: jobs: lint-and-test: - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest permissions: contents: read steps: @@ -68,7 +68,7 @@ jobs: # on the owner's charts namespace. Defaults to enabled; the lint-and-test # job above always runs regardless. if: ${{ vars.ENABLE_HELM_PRERELEASE != 'false' }} - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest permissions: contents: write # for gh-release packages: write diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1f4a670474..6553f9da26 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,7 +32,7 @@ concurrency: jobs: show-release-summary: name: ๐Ÿ“‹ Release Summary - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest permissions: {} if: | github.repository == 'triggerdotdev/trigger.dev' && @@ -48,7 +48,7 @@ jobs: release: name: ๐Ÿš€ Release npm packages - runs-on: blacksmith-8vcpu-ubuntu-2404 + runs-on: ubuntu-latest environment: npm-publish permissions: contents: write @@ -211,7 +211,7 @@ jobs: name: ๐Ÿ”— Update release Docker link needs: [release, publish-docker] if: needs.release.outputs.published == 'true' - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest permissions: contents: write packages: read @@ -253,7 +253,7 @@ jobs: name: ๐Ÿ“ Dispatch changelog PR needs: [release, update-release] if: needs.release.outputs.published == 'true' && needs.release.outputs.is_prerelease != 'true' - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest permissions: {} steps: - uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4.0.1 @@ -266,7 +266,7 @@ jobs: # The prerelease job needs to be on the same workflow file due to a limitation related to how npm verifies OIDC claims. prerelease: name: ๐Ÿงช Prerelease - runs-on: blacksmith-8vcpu-ubuntu-2404 + runs-on: ubuntu-latest environment: npm-publish permissions: contents: read diff --git a/.github/workflows/sdk-compat.yml b/.github/workflows/sdk-compat.yml index 16d24a5168..386c18be66 100644 --- a/.github/workflows/sdk-compat.yml +++ b/.github/workflows/sdk-compat.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - os: [blacksmith-4vcpu-ubuntu-2404] + os: [ubuntu-latest] node: ["20.20", "22.23", "24.18", "26.4"] steps: @@ -54,7 +54,7 @@ jobs: bun-compat: name: "Bun Runtime" - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ubuntu-latest steps: - name: โฌ‡๏ธ Checkout repo uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 @@ -96,7 +96,7 @@ jobs: deno-compat: name: "Deno Runtime" - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ubuntu-latest steps: - name: โฌ‡๏ธ Checkout repo uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 @@ -142,7 +142,7 @@ jobs: cloudflare-compat: name: "Cloudflare Workers" - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ubuntu-latest steps: - name: โฌ‡๏ธ Checkout repo uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 diff --git a/.github/workflows/trivy-image-webapp.yml b/.github/workflows/trivy-image-webapp.yml index 8198919af9..7dae65ef2b 100644 --- a/.github/workflows/trivy-image-webapp.yml +++ b/.github/workflows/trivy-image-webapp.yml @@ -33,7 +33,7 @@ concurrency: jobs: scan: name: Scan - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest permissions: contents: read packages: read # pull the image from GHCR diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml index 67d0bc69ac..bcadbfe408 100644 --- a/.github/workflows/typecheck.yml +++ b/.github/workflows/typecheck.yml @@ -8,7 +8,7 @@ permissions: jobs: typecheck: - runs-on: blacksmith-8vcpu-ubuntu-2404 + runs-on: ubuntu-latest steps: - name: โฌ‡๏ธ Checkout repo diff --git a/.github/workflows/unit-tests-internal.yml b/.github/workflows/unit-tests-internal.yml index f0b1233561..27dcaa738e 100644 --- a/.github/workflows/unit-tests-internal.yml +++ b/.github/workflows/unit-tests-internal.yml @@ -14,7 +14,7 @@ on: jobs: unitTests: name: "๐Ÿงช Unit Tests: Internal" - runs-on: blacksmith-8vcpu-ubuntu-2404 + runs-on: ubuntu-latest strategy: # one flaky shard shouldn't cancel its siblings - lets us re-run only the failed shard fail-fast: false @@ -131,7 +131,7 @@ jobs: name: "๐Ÿ“Š Merge Reports" if: ${{ !cancelled() }} needs: [unitTests] - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest steps: - name: โฌ‡๏ธ Checkout repo uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 diff --git a/.github/workflows/unit-tests-packages.yml b/.github/workflows/unit-tests-packages.yml index 948fedc498..4f58997eb5 100644 --- a/.github/workflows/unit-tests-packages.yml +++ b/.github/workflows/unit-tests-packages.yml @@ -14,7 +14,7 @@ on: jobs: unitTests: name: "๐Ÿงช Unit Tests: Packages" - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ubuntu-latest strategy: # one flaky shard shouldn't cancel its siblings - lets us re-run only the failed shard fail-fast: false @@ -130,7 +130,7 @@ jobs: name: "๐Ÿ“Š Merge Reports" if: ${{ !cancelled() }} needs: [unitTests] - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest steps: - name: โฌ‡๏ธ Checkout repo uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 diff --git a/.github/workflows/unit-tests-webapp.yml b/.github/workflows/unit-tests-webapp.yml index c4c731e8ac..b4f0644219 100644 --- a/.github/workflows/unit-tests-webapp.yml +++ b/.github/workflows/unit-tests-webapp.yml @@ -14,7 +14,7 @@ on: jobs: unitTests: name: "๐Ÿงช Unit Tests: Webapp" - runs-on: blacksmith-8vcpu-ubuntu-2404 + runs-on: ubuntu-latest strategy: # one flaky shard shouldn't cancel its siblings - lets us re-run only the failed shard fail-fast: false @@ -139,7 +139,7 @@ jobs: name: "๐Ÿ“Š Merge Reports" if: ${{ !cancelled() }} needs: [unitTests] - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest steps: - name: โฌ‡๏ธ Checkout repo uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 diff --git a/.github/workflows/vouch-check-pr.yml b/.github/workflows/vouch-check-pr.yml index de7ba43915..d854b1e0ce 100644 --- a/.github/workflows/vouch-check-pr.yml +++ b/.github/workflows/vouch-check-pr.yml @@ -8,7 +8,7 @@ permissions: {} jobs: check-vouch: - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest permissions: contents: read pull-requests: write # auto-close unvouched PRs @@ -34,7 +34,7 @@ jobs: github.event.pull_request.user.login != 'devin-ai-integration[bot]' && github.event.pull_request.user.login != 'dependabot[bot]' && github.event.pull_request.user.login != 'github-actions[bot]' - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest steps: - name: Close non-draft PR env: diff --git a/.github/workflows/vouch-manage-by-issue.yml b/.github/workflows/vouch-manage-by-issue.yml index c9d1218466..51bce367b3 100644 --- a/.github/workflows/vouch-manage-by-issue.yml +++ b/.github/workflows/vouch-manage-by-issue.yml @@ -10,7 +10,7 @@ permissions: jobs: manage: - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest if: >- contains(github.event.comment.body, 'vouch') || contains(github.event.comment.body, 'denounce') || diff --git a/.github/workflows/workflow-checks.yml b/.github/workflows/workflow-checks.yml index 300d438057..cce1381c67 100644 --- a/.github/workflows/workflow-checks.yml +++ b/.github/workflows/workflow-checks.yml @@ -24,7 +24,7 @@ concurrency: jobs: actionlint: name: Actionlint - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest permissions: contents: read steps: @@ -43,7 +43,7 @@ jobs: # variable to 'false' to skip this job where code scanning isn't available; # leave it unset (the default) to run the scan. if: ${{ vars.ENABLE_WORKFLOW_SECURITY_SCAN != 'false' }} - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-latest permissions: security-events: write # Upload SARIF to GitHub Security tab contents: read # Read workflow files for analysis diff --git a/scripts/blacksmith.md b/scripts/blacksmith.md deleted file mode 100644 index d32dbf8e23..0000000000 --- a/scripts/blacksmith.md +++ /dev/null @@ -1,69 +0,0 @@ -# Blacksmith Testboxes - -Use Testboxes to validate changes in CI-like runners instead of running tests locally. - -Always run `blacksmith testbox` commands from the repository root: - -```bash -cd "$(git rev-parse --show-toplevel)" -``` - -## PR checks Testbox - -The Linux PR Testbox covers the normal Linux PR checks: format, lint, typecheck, exports, unit test shards, webapp e2e, Linux CLI e2e, and SDK compatibility checks. - -Warm it up: - -```bash -blacksmith testbox warmup pr-testbox.yml --idle-timeout 60 -``` - -Run the PR checks against your current working tree: - -```bash -blacksmith testbox run --id "scripts/test-pr-check.sh" -``` - -The script prints a โœ…/โŒ line after each section and a final summary with durations. It fails fast by default. To keep going and collect all failures before exiting non-zero, run: - -```bash -blacksmith testbox run --id "TEST_PR_CHECK_CONTINUE_ON_ERROR=1 scripts/test-pr-check.sh" -``` - -## Windows PR checks Testbox - -The Windows PR Testbox covers the Windows CLI v3 e2e matrix row. - -Warm it up: - -```bash -blacksmith testbox warmup pr-testbox-windows.yml --idle-timeout 60 -``` - -Run the Windows checks against your current working tree: - -```bash -blacksmith testbox run --id "pwsh -NoProfile -ExecutionPolicy Bypass -File scripts/test-pr-check-windows.ps1" -``` - -## Running both - -```bash -linux_id= -windows_id= - -blacksmith testbox run --id "$linux_id" "scripts/test-pr-check.sh" -blacksmith testbox run --id "$windows_id" "pwsh -NoProfile -ExecutionPolicy Bypass -File scripts/test-pr-check-windows.ps1" -``` - -## Notes - -- The workflow files must be merged before GitHub can dispatch them via `workflow_dispatch`. -- `blacksmith testbox run` syncs your local tracked and unignored files before running the command. -- If you change dependency manifests, the scripts run `pnpm install` again inside the Testbox. -- The Linux Testbox intentionally does not cover the Windows CLI row; use the Windows Testbox for that. -- Stop Testboxes when you are finished: - -```bash -blacksmith testbox stop --id -``` diff --git a/scripts/test-pr-check-windows.ps1 b/scripts/test-pr-check-windows.ps1 deleted file mode 100644 index 3d3f40c655..0000000000 --- a/scripts/test-pr-check-windows.ps1 +++ /dev/null @@ -1,158 +0,0 @@ -$ErrorActionPreference = "Stop" - -# Used inside Blacksmith Testbox runners to run full CI test suite - -Set-Location (git rev-parse --show-toplevel) - -function Find-NodeBin { - param([Parameter(Mandatory = $true)][string]$VersionPrefix) - - $roots = @() - if ($env:RUNNER_TOOL_CACHE) { - $roots += $env:RUNNER_TOOL_CACHE - } - $roots += @( - "C:\hostedtoolcache\windows", - "C:\hostedtoolcache", - "C:\actions-runner\_work\_tool" - ) - - foreach ($root in $roots) { - $nodeRoot = Join-Path $root "node" - if (-not (Test-Path $nodeRoot)) { - continue - } - - $match = Get-ChildItem -Path $nodeRoot -Directory -ErrorAction SilentlyContinue | - Where-Object { $_.Name.StartsWith($VersionPrefix) } | - Sort-Object Name | - Select-Object -Last 1 - - if ($match) { - $bin = Join-Path $match.FullName "x64" - if (Test-Path (Join-Path $bin "node.exe")) { - return $bin - } - } - } - - return $null -} - -function Ensure-Pnpm { - $pnpmVersion = if ($env:PNPM_VERSION) { $env:PNPM_VERSION } else { "10.33.2" } - $npmPrefix = Join-Path $env:USERPROFILE ".npm-global" - $env:PATH = "$npmPrefix;$env:PATH" - - if (Get-Command pnpm -ErrorAction SilentlyContinue) { - return - } - - if (Get-Command corepack -ErrorAction SilentlyContinue) { - try { - Invoke-Native corepack prepare "pnpm@$pnpmVersion" --activate - } catch { - Write-Warning "corepack could not activate pnpm: $_" - } - } - - if (Get-Command pnpm -ErrorAction SilentlyContinue) { - return - } - - if (-not (Get-Command npm -ErrorAction SilentlyContinue)) { - throw "Unable to find pnpm or npm on PATH." - } - - New-Item -ItemType Directory -Force -Path $npmPrefix | Out-Null - Invoke-Native npm config set prefix $npmPrefix - Invoke-Native npm install -g "pnpm@$pnpmVersion" - $env:PATH = "$npmPrefix;$env:PATH" - - if (-not (Get-Command pnpm -ErrorAction SilentlyContinue)) { - throw "Unable to install pnpm." - } -} - -function Start-Section { - param([Parameter(Mandatory = $true)][string]$Title) - - Write-Host "" - Write-Host "::group::$Title" -} - -function Stop-Section { - Write-Host "::endgroup::" -} - -function Invoke-Native { - param( - [Parameter(Mandatory = $true)][string]$Command, - [Parameter(ValueFromRemainingArguments = $true)][string[]]$Arguments - ) - - & $Command @Arguments - if ($LASTEXITCODE -ne 0) { - throw "Command failed with exit code ${LASTEXITCODE}: $Command $($Arguments -join ' ')" - } -} - -function Invoke-Section { - param( - [Parameter(Mandatory = $true)][string]$Title, - [Parameter(Mandatory = $true)][scriptblock]$ScriptBlock - ) - - Start-Section $Title - try { - & $ScriptBlock - } finally { - Stop-Section - } -} - -if (-not $env:CI) { - $env:CI = "true" -} - -$node20Bin = Find-NodeBin "20.20" -if ($node20Bin) { - $env:PATH = "$node20Bin;$env:PATH" -} - -Ensure-Pnpm -Invoke-Native pnpm --version - -Invoke-Section "Install CLI dependencies" { - Invoke-Native pnpm install --frozen-lockfile --filter trigger.dev... -} - -Invoke-Section "Generate Prisma client" { - Invoke-Native pnpm run generate -} - -Invoke-Section "Build CLI monorepo dependencies" { - Invoke-Native pnpm run build --filter trigger.dev^... -} - -Invoke-Section "Build worker template files" { - Invoke-Native pnpm --filter trigger.dev run --if-present build:workers -} - -Invoke-Section "Enable corepack" { - Invoke-Native corepack enable -} - -Invoke-Section "CLI v3 E2E tests (npm)" { - $env:LOG = "debug" - $env:PM = "npm" - Invoke-Native pnpm --filter trigger.dev run test:e2e -} - -Invoke-Section "CLI v3 E2E tests (pnpm)" { - $env:LOG = "debug" - $env:PM = "pnpm" - Invoke-Native pnpm --filter trigger.dev run test:e2e -} - -Write-Host "Windows PR checks completed." diff --git a/scripts/test-pr-check.sh b/scripts/test-pr-check.sh deleted file mode 100755 index c45fbee00b..0000000000 --- a/scripts/test-pr-check.sh +++ /dev/null @@ -1,377 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -# Used inside Blacksmith Testbox runners to run full CI test suite - -cd "$(git rev-parse --show-toplevel)" - -declare -a SECTION_NAMES=() -declare -a SECTION_STATUSES=() -declare -a SECTION_DURATIONS=() -SUMMARY_PRINTED=0 - -format_duration() { - local seconds="$1" - printf "%dm%02ds" "$((seconds / 60))" "$((seconds % 60))" -} - -section() { - local title="$1" - echo "" - if [[ "${TEST_PR_CHECK_USE_GITHUB_GROUPS:-}" == "1" ]]; then - echo "::group::${title}" - else - echo "โ–ถ ${title}" - fi -} - -end_section() { - if [[ "${TEST_PR_CHECK_USE_GITHUB_GROUPS:-}" == "1" ]]; then - echo "::endgroup::" - fi -} - -record_section() { - local title="$1" - local status="$2" - local duration="$3" - - SECTION_NAMES+=("${title}") - SECTION_STATUSES+=("${status}") - SECTION_DURATIONS+=("${duration}") -} - -print_summary() { - if [[ "${SUMMARY_PRINTED}" == "1" || "${#SECTION_NAMES[@]}" -eq 0 ]]; then - return 0 - fi - - SUMMARY_PRINTED=1 - echo "" - echo "PR check summary" - echo "================" - - local failures=0 - local index - for ((index = 0; index < ${#SECTION_NAMES[@]}; index++)); do - local icon="โœ…" - if [[ "${SECTION_STATUSES[$index]}" != "0" ]]; then - icon="โŒ" - failures=$((failures + 1)) - fi - - printf "%s %-42s %8s\n" \ - "${icon}" \ - "${SECTION_NAMES[$index]}" \ - "$(format_duration "${SECTION_DURATIONS[$index]}")" - done - - if [[ "${failures}" -gt 0 ]]; then - echo "" - echo "${failures} section(s) failed." - fi -} - -has_failures() { - local index - for ((index = 0; index < ${#SECTION_STATUSES[@]}; index++)); do - if [[ "${SECTION_STATUSES[$index]}" != "0" ]]; then - return 0 - fi - done - - return 1 -} - -on_exit() { - local status="$?" - print_summary - exit "${status}" -} - -trap on_exit EXIT - -run_section() { - local title="$1" - shift - local start - start="$(date +%s)" - - section "$title" - - local status=0 - if bash -euo pipefail -c '"$@"' bash "$@"; then - status=0 - else - status=$? - fi - - local duration - duration="$(($(date +%s) - start))" - record_section "${title}" "${status}" "${duration}" - - end_section - - if [[ "${status}" == "0" ]]; then - echo "โœ… ${title} passed in $(format_duration "${duration}")" - return 0 - fi - - echo "โŒ ${title} failed in $(format_duration "${duration}")" - - if [[ "${TEST_PR_CHECK_CONTINUE_ON_ERROR:-}" == "1" ]]; then - return 0 - fi - - return "${status}" -} - -find_node_bin() { - local version_prefix="$1" - - if [[ ! -d /opt/hostedtoolcache/node ]]; then - return 0 - fi - - find /opt/hostedtoolcache/node -maxdepth 3 -type d -path "*/${version_prefix}*/x64/bin" 2>/dev/null | sort -V | tail -n 1 -} - -ensure_pnpm() { - local pnpm_version="${PNPM_VERSION:-10.33.2}" - local npm_prefix="${HOME}/.npm-global" - export PATH="${npm_prefix}/bin:${PATH}" - - if command -v pnpm >/dev/null 2>&1; then - return 0 - fi - - if command -v corepack >/dev/null 2>&1; then - corepack prepare "pnpm@${pnpm_version}" --activate || true - fi - - if command -v pnpm >/dev/null 2>&1; then - return 0 - fi - - if ! command -v npm >/dev/null 2>&1; then - echo "Unable to find pnpm or npm on PATH." >&2 - return 1 - fi - - mkdir -p "${npm_prefix}" - npm config set prefix "${npm_prefix}" - npm install -g "pnpm@${pnpm_version}" - export PATH="${npm_prefix}/bin:${PATH}" - - command -v pnpm >/dev/null 2>&1 -} - -find_tool_bin() { - local name="$1" - shift - - local candidate - for candidate in "$@"; do - if [[ -x "${candidate}/${name}" ]]; then - printf '%s\n' "${candidate}" - return 0 - fi - done - - if [[ -d /opt/hostedtoolcache ]]; then - local found - found="$(find /opt/hostedtoolcache -maxdepth 6 -type f -name "${name}" -perm -u+x 2>/dev/null | head -n 1)" - if [[ -n "${found}" ]]; then - dirname "${found}" - return 0 - fi - fi - - return 0 -} - -ensure_bun() { - export PATH="${HOME}/.bun/bin:${PATH}" - - if command -v bun >/dev/null 2>&1; then - return 0 - fi - - local bin_dir - if bin_dir="$(find_tool_bin bun "${HOME}/.bun/bin")" && [[ -n "${bin_dir}" ]]; then - export PATH="${bin_dir}:${PATH}" - return 0 - fi - - echo "Unable to find bun on PATH. The pr-testbox.yml warmup should install Bun; check the setup-bun step or the Testbox PATH." >&2 - return 1 -} - -ensure_deno() { - export PATH="${HOME}/.deno/bin:${PATH}" - - if command -v deno >/dev/null 2>&1; then - return 0 - fi - - local bin_dir - if bin_dir="$(find_tool_bin deno "${HOME}/.deno/bin")" && [[ -n "${bin_dir}" ]]; then - export PATH="${bin_dir}:${PATH}" - return 0 - fi - - echo "Unable to find deno on PATH. The pr-testbox.yml warmup should install Deno; check the setup-deno step or the Testbox PATH." >&2 - return 1 -} - -with_node() { - local node_bin="$1" - shift - - if [[ -n "${node_bin}" ]]; then - PATH="${node_bin}:${PATH}" "$@" - else - "$@" - fi -} - -run_webapp_unit_tests() { - for shard in {1..10}; do - echo "Running webapp unit test shard ${shard}/10" - SHARD_INDEX="${shard}" SHARD_TOTAL="10" pnpm run test:webapp --reporter=default --shard="${shard}/10" --passWithNoTests - done -} - -run_package_unit_tests() { - for shard in {1..3}; do - echo "Running package unit test shard ${shard}/3" - SHARD_INDEX="${shard}" SHARD_TOTAL="3" pnpm run test:packages --reporter=default --shard="${shard}/3" --passWithNoTests - done -} - -run_internal_unit_tests() { - for shard in {1..12}; do - echo "Running internal unit test shard ${shard}/12" - SHARD_INDEX="${shard}" SHARD_TOTAL="12" pnpm run test:internal --reporter=default --shard="${shard}/12" --passWithNoTests - done -} - -run_webapp_e2e_tests() { - pnpm run build --filter webapp - (cd apps/webapp && WEBAPP_TEST_VERBOSE="1" pnpm exec vitest run --config vitest.e2e.config.ts --reporter=default) -} - -run_cli_e2e_tests() { - pnpm run build --filter trigger.dev^... - pnpm --filter trigger.dev run --if-present build:workers - corepack enable - - LOG=debug PM=npm pnpm --filter trigger.dev run test:e2e - LOG=debug PM=pnpm pnpm --filter trigger.dev run test:e2e - - echo "Skipped the PR workflow's Windows CLI matrix row; this Testbox is Linux only." -} - -run_sdk_node_compat_tests() { - local node_bin="$1" - local label="$2" - - with_node "${node_bin}" node --version - with_node "${node_bin}" pnpm install --frozen-lockfile - with_node "${node_bin}" pnpm run generate - with_node "${node_bin}" pnpm run build --filter '@trigger.dev/sdk^...' - with_node "${node_bin}" pnpm run build --filter '@trigger.dev/sdk' - with_node "${node_bin}" pnpm --filter @internal/sdk-compat-tests test - - echo "Completed SDK Node compatibility checks for ${label}." -} - -run_sdk_runtime_compat_tests() { - local node20_bin="$1" - - with_node "${node20_bin}" pnpm run build --filter '@trigger.dev/sdk^...' - with_node "${node20_bin}" pnpm run build --filter '@trigger.dev/sdk' - - (cd internal-packages/sdk-compat-tests/src/fixtures/bun && bun run test.ts) - - ( - cd internal-packages/sdk-compat-tests/src/fixtures/deno - if [[ ! -e node_modules && ! -L node_modules ]]; then - ln -s ../../../../../node_modules node_modules - fi - deno run --allow-read --allow-env --allow-sys test.ts - ) - - ( - cd internal-packages/sdk-compat-tests/src/fixtures/cloudflare-worker - pnpm install - npx wrangler deploy --dry-run --outdir dist - ) -} - -export -f find_node_bin -export -f ensure_pnpm -export -f find_tool_bin -export -f ensure_bun -export -f ensure_deno -export -f with_node -export -f run_webapp_unit_tests -export -f run_package_unit_tests -export -f run_internal_unit_tests -export -f run_webapp_e2e_tests -export -f run_cli_e2e_tests -export -f run_sdk_node_compat_tests -export -f run_sdk_runtime_compat_tests - -export CI="${CI:-true}" -export DATABASE_URL="${DATABASE_URL:-postgresql://postgres:postgres@localhost:5432/postgres}" -export DIRECT_URL="${DIRECT_URL:-postgresql://postgres:postgres@localhost:5432/postgres}" -export SESSION_SECRET="${SESSION_SECRET:-secret}" -export MAGIC_LINK_SECRET="${MAGIC_LINK_SECRET:-secret}" -export ENCRYPTION_KEY="${ENCRYPTION_KEY:-dummy-encryption-keeeey-32-bytes}" -export DEPLOY_REGISTRY_HOST="${DEPLOY_REGISTRY_HOST:-docker.io}" -export CLICKHOUSE_URL="${CLICKHOUSE_URL:-http://default:password@localhost:8123}" -export NODE_OPTIONS="${NODE_OPTIONS:---max-old-space-size=8192}" - -NODE20_BIN="${NODE20_BIN:-$(find_node_bin 20.20)}" -NODE22_BIN="${NODE22_BIN:-$(find_node_bin 22.12)}" - -if [[ -n "${NODE20_BIN}" ]]; then - export PATH="${NODE20_BIN}:${PATH}" -fi - -ensure_pnpm -ensure_bun -ensure_deno -pnpm --version -bun --version -deno --version - -run_section "Install dependencies" pnpm install --frozen-lockfile - -run_section "Format check" pnpm exec oxfmt --check . -run_section "Lint" pnpm exec oxlint . - -run_section "Generate Prisma client" pnpm run generate -run_section "Typecheck" pnpm run typecheck -run_section "Check exports" pnpm run check-exports - -run_section "Webapp unit tests" run_webapp_unit_tests -run_section "Package unit tests" run_package_unit_tests -run_section "Internal unit tests" run_internal_unit_tests -run_section "Webapp E2E tests" run_webapp_e2e_tests -run_section "CLI v3 E2E tests" run_cli_e2e_tests - -run_section "SDK Node 20 compatibility tests" run_sdk_node_compat_tests "${NODE20_BIN}" "Node 20.20" -if [[ -n "${NODE22_BIN}" ]]; then - run_section "SDK Node 22 compatibility tests" run_sdk_node_compat_tests "${NODE22_BIN}" "Node 22.12" -else - echo "::warning::Node 22.12 was not found in /opt/hostedtoolcache; skipping SDK Node 22 compatibility tests." -fi -run_section "SDK Bun/Deno/Cloudflare compatibility tests" run_sdk_runtime_compat_tests "${NODE20_BIN}" - -if has_failures; then - exit 1 -fi - -echo "All Linux PR checks completed."