Skip to content

Commit

Permalink
ci: add deploy cleanup step for Vercel tests (#2699)
Browse files Browse the repository at this point in the history
* test: add deploy cleanup step for Vercel tests

* test: increase timeout for Vercel tests

* test: bump timeout

* ci: allow using test results from runs triggered by pull_request when deploying e2e report using branch results
  • Loading branch information
pieh authored Oct 29, 2024
1 parent 3e745e4 commit d3d2fb5
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/e2e-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
id: get-run-id
run: |
if [ "${{ inputs.use-branch }}" == "true" ]; then
E2E_RUN_ID=$(gh run list -w test-e2e.yml -e workflow_dispatch -s success -b $GITHUB_REF_NAME --json databaseId --jq ".[0].databaseId" --repo $GITHUB_REPOSITORY)
E2E_RUN_ID=$(gh run list -w test-e2e.yml -s success -b $GITHUB_REF_NAME --json databaseId --jq ".[0].databaseId" --repo $GITHUB_REPOSITORY)
else
E2E_RUN_ID=$(gh run list -w test-e2e.yml -e schedule -s success --json databaseId --jq ".[0].databaseId" --repo $GITHUB_REPOSITORY)
fi
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ env:
DATADOG_TRACE_NEXTJS_TEST: true
DATADOG_API_KEY: foo
TEST_CONCURRENCY: 2
NEXT_E2E_TEST_TIMEOUT: 300000
NEXT_E2E_TEST_TIMEOUT: 600000
NEXT_TELEMETRY_DISABLED: 1
NEXT_SKIP_NATIVE_POSTINSTALL: 1
TURBO_API: ${{ secrets.TURBO_API }}
Expand Down
31 changes: 31 additions & 0 deletions tests/netlify-deploy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ export class NextDeployInstance extends NextInstance {
private _cliOutput: string
private _buildId: string
private _deployId: string
private _shouldDeleteDeploy: boolean = false

public get buildId() {
// get deployment ID via fetch since we can't access
Expand All @@ -50,6 +51,9 @@ export class NextDeployInstance extends NextInstance {
this._buildId = process.env.BUILD_ID
return
}

const setupStartTime = Date.now()

// create the test site
await super.createTestDir({ parentSpan, skipInstall: true })

Expand Down Expand Up @@ -146,6 +150,7 @@ export class NextDeployInstance extends NextInstance {
this._url = url
this._parsedUrl = new URL(this._url)
this._deployId = deployID
this._shouldDeleteDeploy = !process.env.NEXT_TEST_SKIP_CLEANUP
this._cliOutput = deployRes.stdout + deployRes.stderr
require('console').log(`Deployment URL: ${this._url}`)

Expand All @@ -169,6 +174,32 @@ export class NextDeployInstance extends NextInstance {
).trim()

require('console').log(`Got buildId: ${this._buildId}`)
require('console').log(`Setup time: ${(Date.now() - setupStartTime) / 1000.0}s`)
}

public async destroy(): Promise<void> {
if (this._shouldDeleteDeploy) {
require('console').log(`Deleting project with deploy_id ${this._deployId}`)

const deleteResponse = await execa('npx', [
'ntl',
'api',
'deleteDeploy',
'--data',
`{ "deploy_id": "${this._deployId}" }`,
])

if (deleteResponse.exitCode !== 0) {
require('console').error(
`Failed to delete deploy ${deleteResponse.stdout} ${deleteResponse.stderr} (${deleteResponse.exitCode})`,
)
} else {
require('console').log(`Successfully deleted deploy with deploy_id ${this._deployId}`)
this._shouldDeleteDeploy = false
}
}

await super.destroy()
}

public get cliOutput() {
Expand Down

0 comments on commit d3d2fb5

Please sign in to comment.