Break out E2E deploy test workflow to its own (#56755)
As discussed with @feedthejim this breaks our E2E deploy tests workflow into it's own so it can be triggered on cron/manually easier. One thing we'll need to consider with the cron/manual workflow is if a canary isn't published yet and Next.js relies on swc changes it will fail since this doesn't pack/publish a fresh built swc binary currently.
This commit is contained in:
parent
6fdba20b6d
commit
0a6c60cec6
2 changed files with 80 additions and 82 deletions
82
.github/workflows/build_and_deploy.yml
vendored
82
.github/workflows/build_and_deploy.yml
vendored
|
@ -463,88 +463,6 @@ jobs:
|
|||
VERCEL_API_TOKEN: ${{ secrets.VERCEL_API_TOKEN }}
|
||||
DEPLOY_ENVIRONMENT: production
|
||||
|
||||
testDeployE2E:
|
||||
name: E2E (deploy)
|
||||
runs-on: ubuntu-latest
|
||||
needs: [publishRelease]
|
||||
env:
|
||||
NEXT_TELEMETRY_DISABLED: 1
|
||||
VERCEL_TEST_TOKEN: ${{ secrets.VERCEL_TEST_TOKEN }}
|
||||
VERCEL_TEST_TEAM: vtest314-next-e2e-tests
|
||||
DATADOG_API_KEY: ${{ secrets.DATA_DOG_API_KEY }}
|
||||
steps:
|
||||
- uses: actions/cache@v3
|
||||
timeout-minutes: 5
|
||||
id: restore-build
|
||||
with:
|
||||
path: ./*
|
||||
key: ${{ github.sha }}-${{ github.run_number }}
|
||||
|
||||
- run: npm i -g vercel@latest
|
||||
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: next-swc-binaries
|
||||
path: packages/next-swc/native
|
||||
|
||||
- run: RESET_VC_PROJECT=true node scripts/reset-vercel-project.mjs
|
||||
name: Reset test project
|
||||
|
||||
- run: docker run --rm -v $(pwd):/work mcr.microsoft.com/playwright:v1.35.1-jammy /bin/bash -c "cd /work && NODE_VERSION=${{ env.NODE_LTS_VERSION }} ./scripts/setup-node.sh && corepack enable > /dev/null && DATADOG_TRACE_NEXTJS_TEST=TRUE DATADOG_API_KEY=${DATADOG_API_KEY} DD_ENV=ci VERCEL_TEST_TOKEN=${{ secrets.VERCEL_TEST_TOKEN }} VERCEL_TEST_TEAM=vtest314-next-e2e-tests NEXT_TEST_JOB=1 NEXT_TEST_MODE=deploy TEST_TIMINGS_TOKEN=${{ secrets.TEST_TIMINGS_TOKEN }} NEXT_TEST_CONTINUE_ON_ERROR=1 xvfb-run node run-tests.js --type e2e >> /proc/1/fd/1"
|
||||
name: Run test/e2e (deploy)
|
||||
|
||||
- name: Upload test trace
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: test-trace
|
||||
if-no-files-found: ignore
|
||||
retention-days: 2
|
||||
path: |
|
||||
test/traces
|
||||
|
||||
- name: Upload test trace to datadog
|
||||
continue-on-error: true
|
||||
run: |
|
||||
ls -al ./test
|
||||
npm install -g junit-report-merger@6.0.2 @datadog/datadog-ci@2.14.0 @aws-sdk/property-provider@3
|
||||
jrm ./nextjs-test-result-junit.xml "test/test-junit-report/**/*.xml"
|
||||
DD_ENV=ci datadog-ci junit upload --tags test.type:nextjs_deploy_e2e --service nextjs ./nextjs-test-result-junit.xml
|
||||
|
||||
manualTestDeployE2E:
|
||||
name: E2E (manual deploy)
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'workflow_dispatch' }}
|
||||
needs:
|
||||
- build
|
||||
- build-wasm
|
||||
- build-native
|
||||
env:
|
||||
NEXT_TELEMETRY_DISABLED: 1
|
||||
VERCEL_TEST_TOKEN: ${{ secrets.VERCEL_TEST_TOKEN }}
|
||||
VERCEL_TEST_TEAM: vtest314-next-e2e-tests
|
||||
DATADOG_API_KEY: ${{ secrets.DATA_DOG_API_KEY }}
|
||||
steps:
|
||||
- uses: actions/cache@v3
|
||||
timeout-minutes: 5
|
||||
id: restore-build
|
||||
with:
|
||||
path: ./*
|
||||
key: ${{ github.sha }}-${{ github.run_number }}
|
||||
|
||||
- run: npm i -g vercel@latest
|
||||
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: next-swc-binaries
|
||||
path: packages/next-swc/native
|
||||
|
||||
- run: RESET_VC_PROJECT=true node scripts/reset-vercel-project.mjs
|
||||
name: Reset test project
|
||||
|
||||
- run: docker run --rm -v $(pwd):/work mcr.microsoft.com/playwright:v1.35.1-jammy /bin/bash -c "cd /work && NODE_VERSION=${{ env.NODE_LTS_VERSION }} ./scripts/setup-node.sh && corepack enable > /dev/null && DATADOG_TRACE_NEXTJS_TEST=TRUE DATADOG_API_KEY=${DATADOG_API_KEY} DD_ENV=ci VERCEL_TEST_TOKEN=${{ secrets.VERCEL_TEST_TOKEN }} VERCEL_TEST_TEAM=vtest314-next-e2e-tests NEXT_TEST_JOB=1 NEXT_TEST_MODE=deploy TEST_TIMINGS_TOKEN=${{ secrets.TEST_TIMINGS_TOKEN }} NEXT_TEST_CONTINUE_ON_ERROR=1 xvfb-run node run-tests.js --type e2e >> /proc/1/fd/1"
|
||||
name: Run test/e2e (deploy)
|
||||
|
||||
releaseStats:
|
||||
name: Release Stats
|
||||
runs-on:
|
||||
|
|
80
.github/workflows/test_e2e_deploy.yml
vendored
Normal file
80
.github/workflows/test_e2e_deploy.yml
vendored
Normal file
|
@ -0,0 +1,80 @@
|
|||
name: test-e2e-deploy
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# run every day at midnight
|
||||
- cron: '0 0 * * *'
|
||||
# allow triggering manually as well
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
VERCEL_TEST_TOKEN: ${{ secrets.VERCEL_TEST_TOKEN }}
|
||||
VERCEL_TEST_TEAM: vtest314-next-e2e-tests
|
||||
DATADOG_API_KEY: ${{ secrets.DATA_DOG_API_KEY }}
|
||||
NAPI_CLI_VERSION: 2.16.2
|
||||
TURBO_VERSION: 1.10.9
|
||||
NODE_MAINTENANCE_VERSION: 16
|
||||
NODE_LTS_VERSION: 18
|
||||
CARGO_PROFILE_RELEASE_LTO: 'true'
|
||||
TURBO_TEAM: 'vercel'
|
||||
TURBO_REMOTE_ONLY: 'true'
|
||||
TEST_TIMINGS_TOKEN: ${{ secrets.TEST_TIMINGS_TOKEN }}
|
||||
NEXT_TELEMETRY_DISABLED: 1
|
||||
# we build a dev binary for use in CI so skip downloading
|
||||
# canary next-swc binaries in the monorepo
|
||||
NEXT_SKIP_NATIVE_POSTINSTALL: 1
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
group: [1, 2]
|
||||
|
||||
steps:
|
||||
- name: Setup node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ env.NODE_LTS_VERSION }}
|
||||
check-latest: true
|
||||
- run: corepack enable
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 25
|
||||
|
||||
- run: pnpm install
|
||||
|
||||
- run: pnpm run build
|
||||
|
||||
- run: npm i -g vercel@latest
|
||||
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: next-swc-binaries
|
||||
path: packages/next-swc/native
|
||||
|
||||
- run: RESET_VC_PROJECT=true node scripts/reset-vercel-project.mjs
|
||||
name: Reset test project
|
||||
|
||||
- run: docker run --rm -v $(pwd):/work mcr.microsoft.com/playwright:v1.35.1-jammy /bin/bash -c "cd /work && NODE_VERSION=${{ env.NODE_LTS_VERSION }} ./scripts/setup-node.sh && corepack enable > /dev/null && DATADOG_TRACE_NEXTJS_TEST=TRUE DATADOG_API_KEY=${DATADOG_API_KEY} DD_ENV=ci VERCEL_TEST_TOKEN=${{ secrets.VERCEL_TEST_TOKEN }} VERCEL_TEST_TEAM=vtest314-next-e2e-tests NEXT_TEST_JOB=1 NEXT_TEST_MODE=deploy TEST_TIMINGS_TOKEN=${{ secrets.TEST_TIMINGS_TOKEN }} NEXT_TEST_CONTINUE_ON_ERROR=1 xvfb-run node run-tests.js --type e2e --timings -g ${{ matrix.group }}/2 -c 2 >> /proc/1/fd/1"
|
||||
name: Run test/e2e (deploy)
|
||||
|
||||
- name: Upload test trace
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: test-trace
|
||||
if-no-files-found: ignore
|
||||
retention-days: 2
|
||||
path: |
|
||||
test/traces
|
||||
|
||||
- name: Upload test trace to datadog
|
||||
continue-on-error: true
|
||||
run: |
|
||||
ls -al ./test
|
||||
npm install -g junit-report-merger@6.0.2 @datadog/datadog-ci@2.14.0 @aws-sdk/property-provider@3
|
||||
jrm ./nextjs-test-result-junit.xml "test/test-junit-report/**/*.xml"
|
||||
DD_ENV=ci datadog-ci junit upload --tags test.type:nextjs_deploy_e2e --service nextjs ./nextjs-test-result-junit.xml
|
Loading…
Reference in a new issue