From 38712aa29fa747a1bd274f1baa8a5610dcc4199c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Tue, 15 Sep 2026 18:26:52 +0200 Subject: [PATCH] :bug: Make integration test summary non-fatal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The summary step reads a filter from .github/scripts, which is absent on branches predating it, so a missing file turned otherwise green runs red. Tolerate both a missing filter and a jq error: a cosmetic summary should never fail a run. Use `!cancelled()` instead of `always()` on the merge job. With `always()` it also ran when the run itself was cancelled by cancel-in-progress, after the shards had been killed without uploading their blobs, leaving the download step with nothing to match. Lower the JSON report retention to 7 days, the repository maximum. Requesting 30 was silently clamped and logged a warning on every run. Signed-off-by: David Barragán Merino --- .github/workflows/tests-integration.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests-integration.yml b/.github/workflows/tests-integration.yml index 343e0dcef6..5c2a4bcc98 100644 --- a/.github/workflows/tests-integration.yml +++ b/.github/workflows/tests-integration.yml @@ -178,7 +178,7 @@ jobs: retention-days: 3 merge-reports: - if: ${{ always() && !github.event.pull_request.draft && needs.test-integration.result != 'skipped' }} + if: ${{ !cancelled() && !github.event.pull_request.draft && needs.test-integration.result != 'skipped' }} name: "Merge Integration Reports" runs-on: penpot-extended-runner timeout-minutes: 15 @@ -221,16 +221,18 @@ jobs: - name: Test summary if: always() + continue-on-error: true working-directory: ./frontend run: | if [ ! -f report.json ]; then echo "No report produced (all shards failed early)." >> "$GITHUB_STEP_SUMMARY" exit 0 fi - jq -r -f ../.github/scripts/playwright-summary.jq report.json >> "$GITHUB_STEP_SUMMARY" + jq -r -f ../.github/scripts/playwright-summary.jq report.json \ + >> "$GITHUB_STEP_SUMMARY" \ + || echo "Summary generation failed; see the HTML report artifact." \ + >> "$GITHUB_STEP_SUMMARY" - # Kept for 30 days so flakiness rates can be aggregated across runs - # without scraping job logs. - name: Upload JSON report uses: actions/upload-artifact@v7 if: always() @@ -239,7 +241,7 @@ jobs: path: frontend/report.json overwrite: true if-no-files-found: ignore - retention-days: 30 + retention-days: 7 - name: Upload HTML report uses: actions/upload-artifact@v7