From 46fd51756883ec0da74baa427c06643e8bb08842 Mon Sep 17 00:00:00 2001 From: Jacek Date: Thu, 12 Mar 2026 14:08:02 -0500 Subject: [PATCH 1/7] ci(repo): add e2e-staging workflow for clerk_go deploy validation --- .github/workflows/e2e-staging.yml | 205 ++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 .github/workflows/e2e-staging.yml diff --git a/.github/workflows/e2e-staging.yml b/.github/workflows/e2e-staging.yml new file mode 100644 index 00000000000..d443d33da32 --- /dev/null +++ b/.github/workflows/e2e-staging.yml @@ -0,0 +1,205 @@ +name: E2E Staging + +on: + repository_dispatch: + types: [staging-deploy] + workflow_dispatch: + inputs: + ref: + description: "Branch to test against" + required: false + default: "main" + type: string + clerk-go-commit-sha: + description: "clerk_go commit SHA for status reporting" + required: false + type: string + notify-slack: + description: "Send Slack notification on failure" + required: false + default: true + type: boolean + +permissions: + contents: read + actions: write + +concurrency: + group: ${{ github.workflow }}-${{ github.event.inputs.ref || github.event.client_payload.ref || 'main' }} + cancel-in-progress: true + +jobs: + integration-tests: + name: Integration Tests (${{ matrix.test-name }}, ${{ matrix.test-project }}) + runs-on: "blacksmith-8vcpu-ubuntu-2204" + defaults: + run: + shell: bash + timeout-minutes: ${{ vars.TIMEOUT_MINUTES_LONG && fromJSON(vars.TIMEOUT_MINUTES_LONG) || 15 }} + + strategy: + fail-fast: false + matrix: + test-name: + - "sessions:staging" + - "handshake:staging" + test-project: ["chrome"] + + steps: + - name: Normalize inputs + id: inputs + run: | + if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then + echo "ref=${{ github.event.inputs.ref || 'main' }}" >> $GITHUB_OUTPUT + echo "clerk-go-commit-sha=${{ github.event.inputs.clerk-go-commit-sha }}" >> $GITHUB_OUTPUT + echo "notify-slack=${{ github.event.inputs.notify-slack }}" >> $GITHUB_OUTPUT + else + echo "ref=${{ github.event.client_payload.ref || 'main' }}" >> $GITHUB_OUTPUT + echo "clerk-go-commit-sha=${{ github.event.client_payload.clerk-go-commit-sha || '' }}" >> $GITHUB_OUTPUT + NOTIFY_SLACK="${{ github.event.client_payload.notify-slack }}" + echo "notify-slack=${NOTIFY_SLACK:-true}" >> $GITHUB_OUTPUT + fi + + - name: Checkout Repo + uses: actions/checkout@v4 + with: + ref: ${{ steps.inputs.outputs.ref }} + fetch-depth: 1 + fetch-tags: false + filter: "blob:none" + show-progress: false + + - name: Setup + id: config + uses: ./.github/actions/init-blacksmith + with: + turbo-signature: ${{ secrets.TURBO_REMOTE_CACHE_SIGNATURE_KEY }} + turbo-team: ${{ vars.TURBO_TEAM }} + turbo-token: ${{ secrets.TURBO_TOKEN }} + playwright-enabled: true + + - name: Verify jq is installed + run: | + if ! command -v jq &> /dev/null; then + echo "jq not found, installing..." + sudo apt-get update && sudo apt-get install -y jq + fi + jq --version + + - name: Build packages + run: pnpm turbo build $TURBO_ARGS --only + + - name: Publish to local registry + run: pkglab pub --force + + - name: Edit .npmrc [link-workspace-packages=false] + run: sed -i -E 's/link-workspace-packages=(deep|true)/link-workspace-packages=false/' .npmrc + + - name: Install @clerk/clerk-js in os temp + working-directory: ${{ runner.temp }} + run: | + mkdir clerk-js && cd clerk-js + pnpm init + pkglab add @clerk/clerk-js + + - name: Install @clerk/ui in os temp + working-directory: ${{ runner.temp }} + run: | + mkdir clerk-ui && cd clerk-ui + pnpm init + pkglab add @clerk/ui + + - name: Write all ENV certificates to files in integration/certs + uses: actions/github-script@v7 + env: + INTEGRATION_CERTS: "${{ secrets.INTEGRATION_CERTS }}" + INTEGRATION_ROOT_CA: "${{ secrets.INTEGRATION_ROOT_CA }}" + with: + script: | + const fs = require('fs'); + const path = require('path'); + const rootCa = process.env.INTEGRATION_ROOT_CA; + console.log('rootCa', rootCa); + fs.writeFileSync(path.join(process.env.GITHUB_WORKSPACE, 'integration/certs', 'rootCA.pem'), rootCa); + const certs = JSON.parse(process.env.INTEGRATION_CERTS); + for (const [name, cert] of Object.entries(certs)) { + fs.writeFileSync(path.join(process.env.GITHUB_WORKSPACE, 'integration/certs', name), cert); + } + + - name: Run Integration Tests + id: integration-tests + timeout-minutes: 25 + run: pnpm turbo test:integration:${{ matrix.test-name }} $TURBO_ARGS + env: + E2E_DEBUG: "1" + E2E_APP_CLERK_JS_DIR: ${{ runner.temp }} + E2E_APP_CLERK_UI_DIR: ${{ runner.temp }} + E2E_CLERK_JS_VERSION: "latest" + E2E_CLERK_UI_VERSION: "latest" + E2E_PROJECT: ${{ matrix.test-project }} + INTEGRATION_INSTANCE_KEYS: ${{ secrets.INTEGRATION_INSTANCE_KEYS }} + NODE_EXTRA_CA_CERTS: ${{ github.workspace }}/integration/certs/rootCA.pem + + - name: Upload test-results + if: ${{ cancelled() || failure() }} + uses: actions/upload-artifact@v4 + with: + name: playwright-traces-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.test-name }} + path: integration/test-results + retention-days: 1 + + report: + name: Report Results + needs: [integration-tests] + if: always() + runs-on: "blacksmith-8vcpu-ubuntu-2204" + defaults: + run: + shell: bash + + steps: + - name: Normalize inputs + id: inputs + run: | + if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then + echo "ref=${{ github.event.inputs.ref || 'main' }}" >> $GITHUB_OUTPUT + echo "clerk-go-commit-sha=${{ github.event.inputs.clerk-go-commit-sha }}" >> $GITHUB_OUTPUT + echo "notify-slack=${{ github.event.inputs.notify-slack }}" >> $GITHUB_OUTPUT + else + echo "ref=${{ github.event.client_payload.ref || 'main' }}" >> $GITHUB_OUTPUT + echo "clerk-go-commit-sha=${{ github.event.client_payload.clerk-go-commit-sha || '' }}" >> $GITHUB_OUTPUT + NOTIFY_SLACK="${{ github.event.client_payload.notify-slack }}" + echo "notify-slack=${NOTIFY_SLACK:-true}" >> $GITHUB_OUTPUT + fi + + - name: Report to Slack + if: ${{ needs.integration-tests.result == 'failure' && steps.inputs.outputs.notify-slack == 'true' }} + uses: ravsamhq/notify-slack-action@v1 + with: + status: failure + notify_when: "failure" + notification_title: "Staging E2E Failure" + message_format: | + *Staging E2E tests failed* + *Ref:* ${{ steps.inputs.outputs.ref }} + *clerk_go commit:* ${{ steps.inputs.outputs.clerk-go-commit-sha || 'N/A' }} + *Run:* ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_SDK_E2E_ALERTS_WEBHOOK_URL }} + + # Uncomment when clerk_go side is ready + # - name: Post commit status to clerk_go + # if: ${{ steps.inputs.outputs.clerk-go-commit-sha != '' }} + # uses: actions/github-script@v7 + # with: + # github-token: ${{ secrets.CLERK_COOKIE_PAT }} + # script: | + # await github.rest.repos.createCommitStatus({ + # owner: 'clerk', + # repo: 'clerk_go', + # sha: '${{ steps.inputs.outputs.clerk-go-commit-sha }}', + # state: '${{ needs.integration-tests.result == 'success' && 'success' || 'failure' }}', + # target_url: `${process.env.GITHUB_SERVER_URL}/${process.env.GITHUB_REPOSITORY}/actions/runs/${process.env.GITHUB_RUN_ID}`, + # context: 'e2e-staging / clerk-javascript', + # description: 'JS SDK e2e tests against staging' + # }); From fa36213264d452b1f765176e307494073b36f2c4 Mon Sep 17 00:00:00 2001 From: Jacek Date: Thu, 12 Mar 2026 14:09:27 -0500 Subject: [PATCH 2/7] ci(repo): use slackapi/slack-github-action to match PR #8023 pattern --- .github/workflows/e2e-staging.yml | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/.github/workflows/e2e-staging.yml b/.github/workflows/e2e-staging.yml index d443d33da32..a900118a266 100644 --- a/.github/workflows/e2e-staging.yml +++ b/.github/workflows/e2e-staging.yml @@ -172,20 +172,25 @@ jobs: echo "notify-slack=${NOTIFY_SLACK:-true}" >> $GITHUB_OUTPUT fi - - name: Report to Slack + - name: Notify Slack on failure if: ${{ needs.integration-tests.result == 'failure' && steps.inputs.outputs.notify-slack == 'true' }} - uses: ravsamhq/notify-slack-action@v1 + uses: slackapi/slack-github-action@v1.24.0 with: - status: failure - notify_when: "failure" - notification_title: "Staging E2E Failure" - message_format: | - *Staging E2E tests failed* - *Ref:* ${{ steps.inputs.outputs.ref }} - *clerk_go commit:* ${{ steps.inputs.outputs.clerk-go-commit-sha || 'N/A' }} - *Run:* ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + payload: | + { + "blocks": [ + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "*:red_circle: Staging E2E tests failed*\n*Repo:* `${{ github.repository }}`\n*Ref:* `${{ steps.inputs.outputs.ref }}`\n*clerk_go commit:* `${{ steps.inputs.outputs.clerk-go-commit-sha || 'N/A' }}`\n*Run:* <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View logs>" + } + } + ] + } env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_SDK_E2E_ALERTS_WEBHOOK_URL }} + SLACK_WEBHOOK_URL: ${{ secrets.SDK_SLACKER_WEBHOOK_URL }} + SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK # Uncomment when clerk_go side is ready # - name: Post commit status to clerk_go From 21c4b1e20e547bce4588f69a0c82b1dbf00d0640 Mon Sep 17 00:00:00 2001 From: Jacek Date: Thu, 12 Mar 2026 14:16:00 -0500 Subject: [PATCH 3/7] ci(repo): add sdk-source toggle for latest vs ref builds --- .github/workflows/e2e-staging.yml | 41 ++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/.github/workflows/e2e-staging.yml b/.github/workflows/e2e-staging.yml index a900118a266..32e6ed21baf 100644 --- a/.github/workflows/e2e-staging.yml +++ b/.github/workflows/e2e-staging.yml @@ -14,6 +14,14 @@ on: description: "clerk_go commit SHA for status reporting" required: false type: string + sdk-source: + description: "SDK source: 'latest' uses published @latest from npm, 'ref' builds from the checked-out branch" + required: false + default: "latest" + type: choice + options: + - latest + - ref notify-slack: description: "Send Slack notification on failure" required: false @@ -53,11 +61,13 @@ jobs: echo "ref=${{ github.event.inputs.ref || 'main' }}" >> $GITHUB_OUTPUT echo "clerk-go-commit-sha=${{ github.event.inputs.clerk-go-commit-sha }}" >> $GITHUB_OUTPUT echo "notify-slack=${{ github.event.inputs.notify-slack }}" >> $GITHUB_OUTPUT + echo "sdk-source=${{ github.event.inputs.sdk-source || 'latest' }}" >> $GITHUB_OUTPUT else echo "ref=${{ github.event.client_payload.ref || 'main' }}" >> $GITHUB_OUTPUT echo "clerk-go-commit-sha=${{ github.event.client_payload.clerk-go-commit-sha || '' }}" >> $GITHUB_OUTPUT NOTIFY_SLACK="${{ github.event.client_payload.notify-slack }}" echo "notify-slack=${NOTIFY_SLACK:-true}" >> $GITHUB_OUTPUT + echo "sdk-source=${{ github.event.client_payload.sdk-source || 'latest' }}" >> $GITHUB_OUTPUT fi - name: Checkout Repo @@ -86,29 +96,52 @@ jobs: fi jq --version + # --- SDK from ref: build from source and publish to local registry --- - name: Build packages + if: ${{ steps.inputs.outputs.sdk-source == 'ref' }} run: pnpm turbo build $TURBO_ARGS --only - name: Publish to local registry + if: ${{ steps.inputs.outputs.sdk-source == 'ref' }} run: pkglab pub --force - name: Edit .npmrc [link-workspace-packages=false] + if: ${{ steps.inputs.outputs.sdk-source == 'ref' }} run: sed -i -E 's/link-workspace-packages=(deep|true)/link-workspace-packages=false/' .npmrc - - name: Install @clerk/clerk-js in os temp + - name: Install @clerk/clerk-js from local registry + if: ${{ steps.inputs.outputs.sdk-source == 'ref' }} working-directory: ${{ runner.temp }} run: | mkdir clerk-js && cd clerk-js pnpm init pkglab add @clerk/clerk-js - - name: Install @clerk/ui in os temp + - name: Install @clerk/ui from local registry + if: ${{ steps.inputs.outputs.sdk-source == 'ref' }} working-directory: ${{ runner.temp }} run: | mkdir clerk-ui && cd clerk-ui pnpm init pkglab add @clerk/ui + # --- SDK from npm: install @latest published versions --- + - name: Install @clerk/clerk-js@latest from npm + if: ${{ steps.inputs.outputs.sdk-source == 'latest' }} + working-directory: ${{ runner.temp }} + run: | + mkdir clerk-js && cd clerk-js + pnpm init + pnpm add @clerk/clerk-js@latest + + - name: Install @clerk/ui@latest from npm + if: ${{ steps.inputs.outputs.sdk-source == 'latest' }} + working-directory: ${{ runner.temp }} + run: | + mkdir clerk-ui && cd clerk-ui + pnpm init + pnpm add @clerk/ui@latest + - name: Write all ENV certificates to files in integration/certs uses: actions/github-script@v7 env: @@ -165,11 +198,13 @@ jobs: echo "ref=${{ github.event.inputs.ref || 'main' }}" >> $GITHUB_OUTPUT echo "clerk-go-commit-sha=${{ github.event.inputs.clerk-go-commit-sha }}" >> $GITHUB_OUTPUT echo "notify-slack=${{ github.event.inputs.notify-slack }}" >> $GITHUB_OUTPUT + echo "sdk-source=${{ github.event.inputs.sdk-source || 'latest' }}" >> $GITHUB_OUTPUT else echo "ref=${{ github.event.client_payload.ref || 'main' }}" >> $GITHUB_OUTPUT echo "clerk-go-commit-sha=${{ github.event.client_payload.clerk-go-commit-sha || '' }}" >> $GITHUB_OUTPUT NOTIFY_SLACK="${{ github.event.client_payload.notify-slack }}" echo "notify-slack=${NOTIFY_SLACK:-true}" >> $GITHUB_OUTPUT + echo "sdk-source=${{ github.event.client_payload.sdk-source || 'latest' }}" >> $GITHUB_OUTPUT fi - name: Notify Slack on failure @@ -183,7 +218,7 @@ jobs: "type": "section", "text": { "type": "mrkdwn", - "text": "*:red_circle: Staging E2E tests failed*\n*Repo:* `${{ github.repository }}`\n*Ref:* `${{ steps.inputs.outputs.ref }}`\n*clerk_go commit:* `${{ steps.inputs.outputs.clerk-go-commit-sha || 'N/A' }}`\n*Run:* <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View logs>" + "text": "*:red_circle: Staging E2E tests failed*\n*Repo:* `${{ github.repository }}`\n*Ref:* `${{ steps.inputs.outputs.ref }}`\n*SDK:* `${{ steps.inputs.outputs.sdk-source }}`\n*clerk_go commit:* `${{ steps.inputs.outputs.clerk-go-commit-sha || 'N/A' }}`\n*Run:* <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View logs>" } } ] From b7d2a7cb30a69ed817e00459c0ac6350b3a073e1 Mon Sep 17 00:00:00 2001 From: Jacek Date: Thu, 12 Mar 2026 14:34:49 -0500 Subject: [PATCH 4/7] chore: add empty changeset --- .changeset/floppy-rabbits-tease.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .changeset/floppy-rabbits-tease.md diff --git a/.changeset/floppy-rabbits-tease.md b/.changeset/floppy-rabbits-tease.md new file mode 100644 index 00000000000..a845151cc84 --- /dev/null +++ b/.changeset/floppy-rabbits-tease.md @@ -0,0 +1,2 @@ +--- +--- From 958edb667bbb77b32ddd1492eb9ba96e72ee127d Mon Sep 17 00:00:00 2001 From: Jacek Date: Thu, 12 Mar 2026 14:38:52 -0500 Subject: [PATCH 5/7] ci(repo): remove secret logging, add guard for missing root CA --- .github/workflows/e2e-staging.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/e2e-staging.yml b/.github/workflows/e2e-staging.yml index 32e6ed21baf..a3908febe4a 100644 --- a/.github/workflows/e2e-staging.yml +++ b/.github/workflows/e2e-staging.yml @@ -152,7 +152,10 @@ jobs: const fs = require('fs'); const path = require('path'); const rootCa = process.env.INTEGRATION_ROOT_CA; - console.log('rootCa', rootCa); + if (!rootCa) { + core.setFailed('INTEGRATION_ROOT_CA secret is not set'); + return; + } fs.writeFileSync(path.join(process.env.GITHUB_WORKSPACE, 'integration/certs', 'rootCA.pem'), rootCa); const certs = JSON.parse(process.env.INTEGRATION_CERTS); for (const [name, cert] of Object.entries(certs)) { From fa5c11def25e79f4a0962cabd5f22a0a056ba77b Mon Sep 17 00:00:00 2001 From: Jacek Date: Thu, 12 Mar 2026 14:40:32 -0500 Subject: [PATCH 6/7] ci(repo): fix shell injection via env intermediaries, add ref allowlist validation --- .github/workflows/e2e-staging.yml | 67 ++++++++++++++++++++++--------- 1 file changed, 47 insertions(+), 20 deletions(-) diff --git a/.github/workflows/e2e-staging.yml b/.github/workflows/e2e-staging.yml index a3908febe4a..b315f180c3d 100644 --- a/.github/workflows/e2e-staging.yml +++ b/.github/workflows/e2e-staging.yml @@ -56,18 +56,36 @@ jobs: steps: - name: Normalize inputs id: inputs + env: + EVENT_NAME: ${{ github.event_name }} + INPUT_REF: ${{ github.event.inputs.ref }} + INPUT_COMMIT_SHA: ${{ github.event.inputs.clerk-go-commit-sha }} + INPUT_NOTIFY_SLACK: ${{ github.event.inputs.notify-slack }} + INPUT_SDK_SOURCE: ${{ github.event.inputs.sdk-source }} + PAYLOAD_REF: ${{ github.event.client_payload.ref }} + PAYLOAD_COMMIT_SHA: ${{ github.event.client_payload.clerk-go-commit-sha }} + PAYLOAD_NOTIFY_SLACK: ${{ github.event.client_payload.notify-slack }} + PAYLOAD_SDK_SOURCE: ${{ github.event.client_payload.sdk-source }} run: | - if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then - echo "ref=${{ github.event.inputs.ref || 'main' }}" >> $GITHUB_OUTPUT - echo "clerk-go-commit-sha=${{ github.event.inputs.clerk-go-commit-sha }}" >> $GITHUB_OUTPUT - echo "notify-slack=${{ github.event.inputs.notify-slack }}" >> $GITHUB_OUTPUT - echo "sdk-source=${{ github.event.inputs.sdk-source || 'latest' }}" >> $GITHUB_OUTPUT + if [ "$EVENT_NAME" = "workflow_dispatch" ]; then + echo "ref=${INPUT_REF:-main}" >> $GITHUB_OUTPUT + echo "clerk-go-commit-sha=$INPUT_COMMIT_SHA" >> $GITHUB_OUTPUT + echo "notify-slack=$INPUT_NOTIFY_SLACK" >> $GITHUB_OUTPUT + echo "sdk-source=${INPUT_SDK_SOURCE:-latest}" >> $GITHUB_OUTPUT else - echo "ref=${{ github.event.client_payload.ref || 'main' }}" >> $GITHUB_OUTPUT - echo "clerk-go-commit-sha=${{ github.event.client_payload.clerk-go-commit-sha || '' }}" >> $GITHUB_OUTPUT - NOTIFY_SLACK="${{ github.event.client_payload.notify-slack }}" - echo "notify-slack=${NOTIFY_SLACK:-true}" >> $GITHUB_OUTPUT - echo "sdk-source=${{ github.event.client_payload.sdk-source || 'latest' }}" >> $GITHUB_OUTPUT + echo "ref=${PAYLOAD_REF:-main}" >> $GITHUB_OUTPUT + echo "clerk-go-commit-sha=${PAYLOAD_COMMIT_SHA:-}" >> $GITHUB_OUTPUT + echo "notify-slack=${PAYLOAD_NOTIFY_SLACK:-true}" >> $GITHUB_OUTPUT + echo "sdk-source=${PAYLOAD_SDK_SOURCE:-latest}" >> $GITHUB_OUTPUT + fi + + - name: Validate ref + env: + REF: ${{ steps.inputs.outputs.ref }} + run: | + if [[ ! "$REF" =~ ^(main|release/.*)$ ]]; then + echo "::error::Ref '$REF' is not allowed. Only 'main' and 'release/*' branches are permitted." + exit 1 fi - name: Checkout Repo @@ -196,18 +214,27 @@ jobs: steps: - name: Normalize inputs id: inputs + env: + EVENT_NAME: ${{ github.event_name }} + INPUT_REF: ${{ github.event.inputs.ref }} + INPUT_COMMIT_SHA: ${{ github.event.inputs.clerk-go-commit-sha }} + INPUT_NOTIFY_SLACK: ${{ github.event.inputs.notify-slack }} + INPUT_SDK_SOURCE: ${{ github.event.inputs.sdk-source }} + PAYLOAD_REF: ${{ github.event.client_payload.ref }} + PAYLOAD_COMMIT_SHA: ${{ github.event.client_payload.clerk-go-commit-sha }} + PAYLOAD_NOTIFY_SLACK: ${{ github.event.client_payload.notify-slack }} + PAYLOAD_SDK_SOURCE: ${{ github.event.client_payload.sdk-source }} run: | - if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then - echo "ref=${{ github.event.inputs.ref || 'main' }}" >> $GITHUB_OUTPUT - echo "clerk-go-commit-sha=${{ github.event.inputs.clerk-go-commit-sha }}" >> $GITHUB_OUTPUT - echo "notify-slack=${{ github.event.inputs.notify-slack }}" >> $GITHUB_OUTPUT - echo "sdk-source=${{ github.event.inputs.sdk-source || 'latest' }}" >> $GITHUB_OUTPUT + if [ "$EVENT_NAME" = "workflow_dispatch" ]; then + echo "ref=${INPUT_REF:-main}" >> $GITHUB_OUTPUT + echo "clerk-go-commit-sha=$INPUT_COMMIT_SHA" >> $GITHUB_OUTPUT + echo "notify-slack=$INPUT_NOTIFY_SLACK" >> $GITHUB_OUTPUT + echo "sdk-source=${INPUT_SDK_SOURCE:-latest}" >> $GITHUB_OUTPUT else - echo "ref=${{ github.event.client_payload.ref || 'main' }}" >> $GITHUB_OUTPUT - echo "clerk-go-commit-sha=${{ github.event.client_payload.clerk-go-commit-sha || '' }}" >> $GITHUB_OUTPUT - NOTIFY_SLACK="${{ github.event.client_payload.notify-slack }}" - echo "notify-slack=${NOTIFY_SLACK:-true}" >> $GITHUB_OUTPUT - echo "sdk-source=${{ github.event.client_payload.sdk-source || 'latest' }}" >> $GITHUB_OUTPUT + echo "ref=${PAYLOAD_REF:-main}" >> $GITHUB_OUTPUT + echo "clerk-go-commit-sha=${PAYLOAD_COMMIT_SHA:-}" >> $GITHUB_OUTPUT + echo "notify-slack=${PAYLOAD_NOTIFY_SLACK:-true}" >> $GITHUB_OUTPUT + echo "sdk-source=${PAYLOAD_SDK_SOURCE:-latest}" >> $GITHUB_OUTPUT fi - name: Notify Slack on failure From 7b40f5fa60584845f741529b2c9c24228a4da21b Mon Sep 17 00:00:00 2001 From: Jacek Date: Thu, 12 Mar 2026 14:52:24 -0500 Subject: [PATCH 7/7] ci(repo): sanitize colon in artifact name from matrix test-name --- .github/workflows/e2e-staging.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e-staging.yml b/.github/workflows/e2e-staging.yml index b315f180c3d..b578feee236 100644 --- a/.github/workflows/e2e-staging.yml +++ b/.github/workflows/e2e-staging.yml @@ -198,7 +198,7 @@ jobs: if: ${{ cancelled() || failure() }} uses: actions/upload-artifact@v4 with: - name: playwright-traces-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.test-name }} + name: playwright-traces-${{ github.run_id }}-${{ github.run_attempt }}-${{ replace(matrix.test-name, ':', '-') }} path: integration/test-results retention-days: 1