Skip to content

Commit

Permalink
Revert "chore(test): run related E2E deploy tests on PRs" (#64682)
Browse files Browse the repository at this point in the history
Reverting for now as this is failing on all PRs 

Reverts #63763

Closes NEXT-3147

x-ref: [slack
thread](https://vercel.slack.com/archives/C04DUD7EB1B/p1713391373933249)
x-ref: [slack
thread](https://vercel.slack.com/archives/C04KC8A53T7/p1713385017892539)
  • Loading branch information
ijjk committed Apr 17, 2024
1 parent 048697b commit 3aa3f51
Show file tree
Hide file tree
Showing 10 changed files with 86 additions and 217 deletions.
72 changes: 72 additions & 0 deletions .github/workflows/test_e2e_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: test-e2e-deploy

on:
schedule:
# run every day at midnight
- cron: '0 0 * * *'
# allow triggering manually as well
workflow_dispatch:

jobs:
build:
if: github.repository_owner == 'vercel'
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.12.5
NODE_LTS_VERSION: 20
CARGO_PROFILE_RELEASE_LTO: 'true'
TURBO_TEAM: 'vercel'
TURBO_REMOTE_ONLY: 'true'
TEST_TIMINGS_TOKEN: ${{ secrets.TEST_TIMINGS_TOKEN }}
NEXT_TELEMETRY_DISABLED: 1

strategy:
fail-fast: false
matrix:
group: [1, 2]

steps:
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_LTS_VERSION }}
check-latest: true
- run: corepack enable

- uses: actions/checkout@v4
with:
fetch-depth: 25

- run: pnpm install

- run: pnpm run build

- run: npm i -g vercel@latest

- run: node scripts/run-e2e-test-project-reset.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 && NEXT_JUNIT_TEST_REPORT=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 }} xvfb-run node run-tests.js --type e2e --timings -g ${{ matrix.group }}/2 -c 1 >> /proc/1/fd/1"
name: Run test/e2e (deploy)

- name: Upload test report
if: always()
uses: actions/upload-artifact@v4
with:
name: test-reports
if-no-files-found: ignore
retention-days: 2
path: |
test/test-junit-report
- name: Upload test report to datadog
continue-on-error: true
run: |
ls -al ./test/*junit
DD_ENV=ci npx @datadog/datadog-ci@2.23.1 junit upload --tags test.type:nextjs_deploy_e2e --service nextjs ./test/test-junit-report
81 changes: 0 additions & 81 deletions .github/workflows/test_e2e_deploy_related.yml

This file was deleted.

87 changes: 0 additions & 87 deletions .github/workflows/test_e2e_deploy_scheduled.yml

This file was deleted.

8 changes: 2 additions & 6 deletions packages/next/src/server/base-server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ import { AppRouteRouteMatcherProvider } from './future/route-matcher-providers/a
import { PagesAPIRouteMatcherProvider } from './future/route-matcher-providers/pages-api-route-matcher-provider'
import { PagesRouteMatcherProvider } from './future/route-matcher-providers/pages-route-matcher-provider'
import { ServerManifestLoader } from './future/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader'
import { getTracer, isBubbledError, SpanKind } from './lib/trace/tracer'
import { getTracer, SpanKind } from './lib/trace/tracer'
import { BaseServerSpan } from './lib/trace/constants'
import { I18NProvider } from './future/helpers/i18n-provider'
import { sendResponse } from './send-response'
Expand Down Expand Up @@ -1396,11 +1396,7 @@ export default abstract class Server<
return this.renderError(null, req, res, '/_error', {})
}

if (
this.minimalMode ||
this.renderOpts.dev ||
(isBubbledError(err) && err.bubble)
) {
if (this.minimalMode || this.renderOpts.dev || (err as any).bubble) {
throw err
}
this.logError(getProperError(err))
Expand Down
19 changes: 3 additions & 16 deletions packages/next/src/server/lib/trace/tracer.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import type { FetchEventResult } from '../../web/types'
import type { SpanTypes } from './constants'
import { LogSpanAllowList, NextVanillaSpanAllowlist } from './constants'

Expand Down Expand Up @@ -37,22 +36,10 @@ const isPromise = <T>(p: any): p is Promise<T> => {
return p !== null && typeof p === 'object' && typeof p.then === 'function'
}

export class BubbledError extends Error {
constructor(
public readonly bubble?: boolean,
public readonly result?: FetchEventResult
) {
super()
}
}

export function isBubbledError(error: unknown): error is BubbledError {
if (typeof error !== 'object' || error === null) return false
return error instanceof BubbledError
}
type BubbledError = Error & { bubble?: boolean }

const closeSpanWithError = (span: Span, error?: Error) => {
if (isBubbledError(error) && error.bubble) {
if ((error as BubbledError | undefined)?.bubble === true) {
span.setAttribute('next.bubble', true)
} else {
if (error) {
Expand Down Expand Up @@ -320,7 +307,7 @@ class NextTracerImpl implements NextTracer {
}
try {
if (fn.length > 1) {
return fn(span, (err) => closeSpanWithError(span, err))
return fn(span, (err?: Error) => closeSpanWithError(span, err))
}

const result = fn(span)
Expand Down
7 changes: 5 additions & 2 deletions packages/next/src/server/next-server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ import {
INSTRUMENTATION_HOOK_FILENAME,
RSC_PREFETCH_SUFFIX,
} from '../lib/constants'
import { BubbledError, getTracer } from './lib/trace/tracer'
import { getTracer } from './lib/trace/tracer'
import { NextNodeServerSpan } from './lib/trace/constants'
import { nodeFs } from './lib/node-fs-methods'
import { getRouteRegex } from '../shared/lib/router/utils/route-regex'
Expand Down Expand Up @@ -1675,7 +1675,10 @@ export default class NextNodeServer extends BaseServer<
if ('response' in result) {
if (isMiddlewareInvoke) {
bubblingResult = true
throw new BubbledError(true, result)
const err = new Error()
;(err as any).result = result
;(err as any).bubble = true
throw err
}

for (const [key, value] of Object.entries(
Expand Down
13 changes: 0 additions & 13 deletions run-tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@ let argv = require('yargs/yargs')(process.argv.slice(2))
.string('g')
.alias('g', 'group')
.number('c')
.boolean('related')
.alias('r', 'related')
.alias('c', 'concurrency').argv

function escapeRegexp(str) {
Expand Down Expand Up @@ -199,7 +197,6 @@ async function main() {
group: argv.group ?? false,
testPattern: argv.testPattern ?? false,
type: argv.type ?? false,
related: argv.related ?? false,
retries: argv.retries ?? DEFAULT_NUM_RETRIES,
}
let numRetries = options.retries
Expand Down Expand Up @@ -235,22 +232,12 @@ async function main() {
let prevTimings

if (tests.length === 0) {
/** @type {RegExp | undefined} */
let testPatternRegex

if (options.testPattern) {
testPatternRegex = new RegExp(options.testPattern)
}

if (options.related) {
const { getRelatedTests } = await import('./scripts/run-related-test.mjs')
const tests = await getRelatedTests()
if (tests.length)
testPatternRegex = new RegExp(tests.map(escapeRegexp).join('|'))

console.log('Running related tests:', testPatternRegex.toString())
}

tests = (
await glob('**/*.test.{js,ts,tsx}', {
nodir: true,
Expand Down
4 changes: 1 addition & 3 deletions scripts/run-related-test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,7 @@ async function getChangedFilesFromPackages(baseBranch = 'canary') {
await exec('git config --global --add safe.directory /work')
await exec(`git remote set-branches --add origin ${baseBranch}`)
await exec(`git fetch origin ${baseBranch} --depth=20`)
const { stdout } = await exec(
`git diff 'origin/${baseBranch}...' --name-only`
)
const { stdout } = await exec(`git diff --name-only ${baseBranch}`)
return stdout
.trim()
.split('\n')
Expand Down

0 comments on commit 3aa3f51

Please sign in to comment.