From 093139fafd124ab57428c1a19e22aa0569515bfe Mon Sep 17 00:00:00 2001 From: David Anderson Date: Sat, 18 Feb 2023 14:19:10 -0800 Subject: [PATCH] .github/workflows: fix non-collapsing CI status in PRs CI status doesn't collapse into "everything OK" if a job gets skipped. Instead, always run the job, but skip its only step in PRs. Signed-off-by: David Anderson --- .github/workflows/test.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a51424999..32a74470a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -353,8 +353,7 @@ jobs: GOARCH: ${{ matrix.goarch }} notify_slack: - # Only notify slack for merged commits, not PR failures. - if: failure() && github.event_name == 'push' + if: always() # Any of these jobs failing causes a slack notification. needs: - android @@ -373,6 +372,14 @@ jobs: runs-on: ubuntu-22.04 steps: - name: notify + # Only notify slack for merged commits, not PR failures. + # + # It may be tempting to move this condition into the job's 'if' block, but + # don't: Github only collapses the test list into "everything is OK" if + # all jobs succeeded. A skipped job results in the list staying expanded. + # By having the job always run, but skipping its only step as needed, we + # let the CI output collapse nicely in PRs. + if: failure() && github.event_name == 'push' uses: ruby/action-slack@v3.0.0 with: payload: |