From aa4a05e85922c787cada4dc1111469a1bcfdcfd6 Mon Sep 17 00:00:00 2001 From: Tam Nhu Tran Date: Thu, 23 Apr 2026 19:52:12 -0400 Subject: [PATCH] ci: preserve fast test budget summary on failure --- .github/workflows/push-ci.yml | 9 ++++++++- tests/unit/scripts/github/push-ci-workflow.test.ts | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/push-ci.yml b/.github/workflows/push-ci.yml index 2fa9361c..8a2ab204 100644 --- a/.github/workflows/push-ci.yml +++ b/.github/workflows/push-ci.yml @@ -132,7 +132,12 @@ jobs: set -euo pipefail start_epoch=$(date +%s) - bun run test:fast + test_status=0 + if bun run test:fast; then + test_status=0 + else + test_status=$? + fi end_epoch=$(date +%s) elapsed_seconds=$((end_epoch - start_epoch)) @@ -150,6 +155,8 @@ jobs: echo "- Result: within budget." >> "$GITHUB_STEP_SUMMARY" fi + exit "$test_status" + - name: Test slow bucket run: bun run test:slow diff --git a/tests/unit/scripts/github/push-ci-workflow.test.ts b/tests/unit/scripts/github/push-ci-workflow.test.ts index e7d68ebc..c3313427 100644 --- a/tests/unit/scripts/github/push-ci-workflow.test.ts +++ b/tests/unit/scripts/github/push-ci-workflow.test.ts @@ -30,6 +30,8 @@ describe('push ci workflow', () => { expect(workflow).toContain("FAST_TEST_BUDGET_SECONDS: '90'"); expect(workflow).toContain('name: Test fast bucket with perf budget'); expect(workflow).toContain('bun run test:fast'); + expect(workflow).toContain('test_status=$?'); + expect(workflow).toContain('exit "$test_status"'); expect(workflow).toContain('::warning::test:fast took ${elapsed_seconds}s'); expect(workflow).toContain('scripts/run-test-bucket.js'); expect(workflow).toContain('run: bun run test:slow');