fix: complete Playwright removal in CI deploy workflow

Drop the leftover Playwright browser install and e2e smoke test from the deployment script, and update the deployment contract tests to cover the verify-deployed-release smoke check instead.
This commit is contained in:
openhands committed 2026-09-08 16:47:39 +02:00
1 parent bbb7d66067
commit 2a1aef1c1b
6 files changed
+14 -13

No files matched your search

-3
View File
@@ -34,8 +34,5 @@ public/cache
public/tmp
db_backup_*.sql
*.log
playwright-report
test-results
blob-report
.codex
.agents
+1 -4
View File
@@ -93,8 +93,6 @@ for managed_name in epicnext-cms epicnext-cms-app; do
done
cp "$deploy_dir/.env" .env
pnpm install --frozen-lockfile
# Prepare browser before cutover so installation failures cannot interrupt the site.
pnpm exec playwright install chromium
echo "Building $image"
DOCKER_BUILDKIT=1 docker build --network=host --progress=plain --cache-from epicnext-cms:latest \
@@ -161,8 +159,7 @@ candidate_attempted=1
)
healthy
node scripts/verify-deployed-release.mjs http://127.0.0.1:3002/api/health "$sha"
PLAYWRIGHT_BASE_URL=http://127.0.0.1:3002 pnpm test:e2e
# Publish the latest alias only after health and browser checks pass.
# Publish the latest alias only after health and release checks pass.
docker tag "$image" epicnext-cms:latest
cutover_started=0
if [ "$backup_created" -eq 1 ]; then docker rm "$backup_name" || true; fi
+1 -1
View File
@@ -77,7 +77,7 @@ describe("deployment transaction", () => {
expect(result.calls.indexOf("pnpm db:migrate")).toBeLessThan(
result.calls.indexOf("docker stop"),
);
expect(result.calls.indexOf("pnpm test:e2e")).toBeLessThan(
expect(result.calls.indexOf("verify-deployed-release.mjs")).toBeLessThan(
result.calls.indexOf(
`docker tag epicnext-cms:${sha} epicnext-cms:latest`,
),
+3 -2
View File
@@ -61,7 +61,8 @@ describe("CI workflow", () => {
it("smoke-tests the deployed app within the deployment transaction", () => {
expect(workflow).toContain("bash scripts/ci-deploy.sh");
const deploy = readFileSync("scripts/ci-deploy.sh", "utf8");
expect(deploy).toContain("pnpm test:e2e");
expect(deploy).toContain("PLAYWRIGHT_BASE_URL");
expect(deploy).toContain(
"node scripts/verify-deployed-release.mjs http://127.0.0.1:3002/api/health",
);
});
});
+1 -1
View File
@@ -8,7 +8,7 @@ it("uses two test workers and runs smoke checks in the deployment transaction",
expect(workflow).not.toContain("\n e2e:");
expect(workflow).toContain("bash scripts/ci-deploy.sh");
expect(deploy).toContain(
"PLAYWRIGHT_BASE_URL=http://127.0.0.1:3002 pnpm test:e2e",
"node scripts/verify-deployed-release.mjs http://127.0.0.1:3002/api/health",
);
});
it("locks CI and scheduled deployments using the same production lock", () => {
+8 -2
View File
@@ -13,7 +13,6 @@ flock() { echo "lock" >> "$TEST_DIR/calls"; [ "$SCENARIO" != lock-failure ]; }
pnpm() {
echo "pnpm $*" >> "$TEST_DIR/calls"
if [ "$1" = db:migrate ] && [ "$SCENARIO" = migration-failure ]; then return 1; fi
if [ "$1" = test:e2e ] && [ "$SCENARIO" = smoke-failure ]; then return 1; fi
return 0
}
curl() {
@@ -43,5 +42,12 @@ docker() {
}
export -f git flock pnpm curl sleep docker
node() { echo "node $*" >> "$TEST_DIR/calls"; [ "$SCENARIO" != release-failure ]; }
node() {
echo "node $*" >> "$TEST_DIR/calls"
case "$SCENARIO" in
release-failure) return 1 ;;
smoke-failure) case "$*" in *verify-deployed-release.mjs*) return 1 ;; esac ;;
esac
return 0
}
export -f node