Skip to contentSkip to conversation

ci(github): also skip logs of broken test cases

PATCH In review Philippe Blain via GitGitGadget 3 participants 3 messages Jan 21, 2024 – Jan 22, 2024

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ci(github): also skip logs of broken test cases

From: Philippe Blain <[email protected]>

When a test fails in the GitHub Actions CI pipeline, we mark it up using special GitHub syntax so it stands out when looking at the run log. We also mark up "fixed" test cases, and skip passing tests since we want to concentrate on the failures.

The finalize_test_case_output function in test-lib-github-workflow-markup.sh which performs this markup is however missing a fourth case: "broken" tests, i.e. tests using 'test_expect_failure' to document a known bug. This leads to these "broken" tests appearing along with any failed tests, potentially confusing the reader who might not be aware that "broken" is the status for 'test_expect_failure' tests that indeed failed, and wondering what their commits "broke".

Also skip these "broken" tests so that only failures and fixed tests stand out.

---
ci(github): also skip logs of broken test cases

* An example of a run with failed tests appearing along with several "broken" tests:
https://github.com/phil-blain/git/actions/runs/7589303055/job/20673657755
* An example of a run with the same failures, but with this patch on top (no "broken" tests listed):
* https://github.com/phil-blain/git/actions/runs/7598605434/job/20694762480

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1649%2Fphil-blain%2Fgithub-ci-skip-broken-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1649/phil-blain/github-ci-skip-broken-v1
Pull-Request: https://github.com/git/git/pull/1649

 t/test-lib-github-workflow-markup.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
t/test-lib-github-workflow-markup.sh +2 -2
index 970c6538cba..33405c90d74 100644
@@ -42,8 +42,8 @@ finalize_test_case_output () {
 	fixed)
 		echo >>$github_markup_output "::notice::fixed: $this_test.$test_count $1"
 		;;
-	ok)
-		# Exit without printing the "ok" tests
+	ok|broken)
+		# Exit without printing the "ok" or ""broken" tests
 		return
 		;;
 	esac

base-commit: e02ecfcc534e2021aae29077a958dd11c3897e4c

Signature · 1 line
gitgitgadget
#1 lore raw
Quoted 23 lines · Philippe Blain via GitGitGadget

From: Philippe Blain <[email protected]>

When a test fails in the GitHub Actions CI pipeline, we mark it up using special GitHub syntax so it stands out when looking at the run log. We also mark up "fixed" test cases, and skip passing tests since we want to concentrate on the failures.

The finalize_test_case_output function in test-lib-github-workflow-markup.sh which performs this markup is however missing a fourth case: "broken" tests, i.e. tests using 'test_expect_failure' to document a known bug. This leads to these "broken" tests appearing along with any failed tests, potentially confusing the reader who might not be aware that "broken" is the status for 'test_expect_failure' tests that indeed failed, and wondering what their commits "broke".

Also skip these "broken" tests so that only failures and fixed tests stand out.

---
ci(github): also skip logs of broken test cases

Quoted 6 lines

* An example of a run with failed tests appearing along with several "broken" tests:
https://github.com/phil-blain/git/actions/runs/7589303055/job/20673657755
* An example of a run with the same failures, but with this patch on top (no "broken" tests listed):
* https://github.com/phil-blain/git/actions/runs/7598605434/job/20694762480

Thanks for making this change, the more focused logs are much nicer to read (and ostensibly a bit more performant as well).

Quoted 13 lines

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1649%2Fphil-blain%2Fgithub-ci-skip-broken-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1649/phil-blain/github-ci-skip-broken-v1
Pull-Request: https://github.com/git/git/pull/1649

 t/test-lib-github-workflow-markup.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
t/test-lib-github-workflow-markup.sh +0 -0
index 970c6538cba..33405c90d74 100644

t/test-lib-github-workflow-markup.sh finalize_test_case_output () { · line 46

Quoted 7 lines
t/test-lib-github-workflow-markup.sh +2 -2
@@ -42,8 +42,8 @@ finalize_test_case_output () {
 	fixed)
 		echo >>$github_markup_output "::notice::fixed: $this_test.$test_count $1"
 		;;
-	ok)
-		# Exit without printing the "ok" tests
+	ok|broken)
+		# Exit without printing the "ok" or ""broken" tests

And the implementation itself is nice and simple. Looks good to me!

Quoted 5 lines
t/test-lib-github-workflow-markup.sh +0 -0
 		return
 		;;
 	esac

base-commit: e02ecfcc534e2021aae29077a958dd11c3897e4c

#2 lore raw
Quoted 4 lines · Victoria Dye

Thanks for making this change, the more focused logs are much nicer to read (and ostensibly a bit more performant as well).
...
And the implementation itself is nice and simple. Looks good to me!

Thanks, both.

Queued.