Просмотр исходного кода

Report a flaky failure only when the test step is what failed

The reporting step for issue #2533 was gated on failure(), which is true
when any step in the job failed. Two build failures on feature branches
were posted to the issue as flaky test recurrences, with the body falling
back to "Could not extract failed test name" because no test had run.

Gate it on the test step's own conclusion instead, and skip posting when
no [  FAILED  ] line turns up in the shard logs. The explicit failure()
stays because an if expression with no status check function gets an
implicit success().
yhirose 18 часов назад
Родитель
Сommit
2adfc45838
1 измененных файлов с 7 добавлено и 2 удалено
  1. 7 2
      .github/workflows/test.yaml

+ 7 - 2
.github/workflows/test.yaml

@@ -585,6 +585,7 @@ jobs:
     - name: Build ${{ matrix.config.name }}
     - name: Build ${{ matrix.config.name }}
       run: cmake --build build --config Release -- /v:m /clp:ShowCommandLine
       run: cmake --build build --config Release -- /v:m /clp:ShowCommandLine
     - name: Run tests ${{ matrix.config.name }}
     - name: Run tests ${{ matrix.config.name }}
+      id: run_tests
       if: ${{ matrix.config.run_tests }}
       if: ${{ matrix.config.run_tests }}
       shell: pwsh
       shell: pwsh
       working-directory: build/test
       working-directory: build/test
@@ -618,7 +619,10 @@ jobs:
         if ($failed) { exit 1 }
         if ($failed) { exit 1 }
         Write-Host "All shards passed."
         Write-Host "All shards passed."
     - name: Report flaky failure on issue #2533
     - name: Report flaky failure on issue #2533
-      if: failure() && matrix.config.name == 'without SSL' && github.event_name == 'push'
+      if: >
+        failure() && steps.run_tests.conclusion == 'failure'
+        && matrix.config.name == 'without SSL'
+        && github.event_name == 'push'
       continue-on-error: true
       continue-on-error: true
       shell: pwsh
       shell: pwsh
       working-directory: build/test
       working-directory: build/test
@@ -636,7 +640,8 @@ jobs:
           }
           }
         }
         }
         if (-not $summary) {
         if (-not $summary) {
-          $summary = "_Could not extract failed test name from shard logs; see the run for details._`n`n"
+          Write-Host "No [  FAILED  ] line in any shard log; not a test failure. Skipping the report."
+          exit 0
         }
         }
         $runUrl = "$($env:GITHUB_SERVER_URL)/$($env:GITHUB_REPOSITORY)/actions/runs/$($env:GITHUB_RUN_ID)"
         $runUrl = "$($env:GITHUB_SERVER_URL)/$($env:GITHUB_REPOSITORY)/actions/runs/$($env:GITHUB_RUN_ID)"
         $body = "Reoccurred on push: $runUrl`n`nCommit: $($env:GITHUB_SHA)`n`n$summary"
         $body = "Reoccurred on push: $runUrl`n`nCommit: $($env:GITHUB_SHA)`n`n$summary"