From 32c5a55cdf9016bbba24423dd05a9420a754c447 Mon Sep 17 00:00:00 2001 From: Samuel Burnham <45365069+samuelburnham@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:15:38 -0400 Subject: [PATCH 1/6] Add unified status check --- .github/workflows/test.yml | 51 +++++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3a3d706..66d986e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,15 +7,60 @@ on: jobs: test-ref: runs-on: ubuntu-latest + if: github.event_name == 'merge_group' steps: - uses: actions/checkout@v4 - name: Print branch names - if: github.event_name == 'merge_group' run: | echo "Head ref: ${{ github.event.merge_group.head_ref }}" echo "Base ref: ${{ github.event.merge_group.base_ref }}" - echo "Base ref 2: ${{ github.base_ref }}" - uses: actions/checkout@v4 - if: github.event_name == 'merge_group' with: ref: ${{ github.event.merge_group.base_ref }} + + test-ref-b: + runs-on: ubuntu-latest + if: github.event_name == 'pull_request' + steps: + - uses: actions/checkout@v4 + - name: Print branch name + run: | + echo "Base ref: ${{ github.base_ref }}" + + # Wait and verify job + wait-and-verify: + if: always() + needs: [test-ref, test-ref-b] + runs-on: ubuntu-latest + steps: + - name: Check job results + id: check-results + run: | + # Create an associative array of job statuses + declare -A job_results=( + ["test-ref"]="${{ needs.test-ref.result }}" + ["test-ref-b"]="${{ needs.test-ref-b.result }}" + ) + + # Iterate through jobs and get their results + failed_count=0 + for job in "${!job_results[@]}"; do + RESULT=${job_results[$job]} + if [[ "$RESULT" == "failure" ]]; then + ((failed_count++)) + fi + echo "$job result: $RESULT" + done + + if [ "$failed_count" -gt 0 ]; then + echo "Some jobs failed" + echo "result=failure" | tee -a $GITHUB_OUTPUT + else + echo "All jobs succeeded or were skipped" + echo "result=success" | tee -a $GITHUB_OUTPUT + fi + - name: Error on job failure + run: | + if [[ "${{ steps.check-results.outputs.result }}" == "failure" ]]; then + exit 1 + fi From db5e5455b9eab557e4cd6e49bc17cf5664bd4b06 Mon Sep 17 00:00:00 2001 From: Samuel Burnham <45365069+samuelburnham@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:37:21 -0400 Subject: [PATCH 2/6] Test failure --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 66d986e..0fe302e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,6 +26,7 @@ jobs: - name: Print branch name run: | echo "Base ref: ${{ github.base_ref }}" + exit 1 # Wait and verify job wait-and-verify: From 2ca8d9c8eb33ace909503a4f3ba6d98de3266736 Mon Sep 17 00:00:00 2001 From: Samuel Burnham <45365069+samuelburnham@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:46:28 -0400 Subject: [PATCH 3/6] f --- .github/workflows/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0fe302e..11c3028 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -48,7 +48,8 @@ jobs: for job in "${!job_results[@]}"; do RESULT=${job_results[$job]} if [[ "$RESULT" == "failure" ]]; then - ((failed_count++)) + echo "fail" + #((failed_count++)) fi echo "$job result: $RESULT" done From fbf6faee2d6c37bb9fc6d454ffbdb1b38fdf0ea0 Mon Sep 17 00:00:00 2001 From: Samuel Burnham <45365069+samuelburnham@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:49:44 -0400 Subject: [PATCH 4/6] f --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 11c3028..fc598d1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -49,7 +49,7 @@ jobs: RESULT=${job_results[$job]} if [[ "$RESULT" == "failure" ]]; then echo "fail" - #((failed_count++)) + failed_count=$((failed_count + 1)) fi echo "$job result: $RESULT" done From e9c6eff289e40d4a748ddd64494c967b69950df9 Mon Sep 17 00:00:00 2001 From: Samuel Burnham <45365069+samuelburnham@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:52:17 -0400 Subject: [PATCH 5/6] Prep for merge --- .github/workflows/test.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fc598d1..7a1ca7e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,6 +14,7 @@ jobs: run: | echo "Head ref: ${{ github.event.merge_group.head_ref }}" echo "Base ref: ${{ github.event.merge_group.base_ref }}" + exit 1 - uses: actions/checkout@v4 with: ref: ${{ github.event.merge_group.base_ref }} @@ -26,10 +27,8 @@ jobs: - name: Print branch name run: | echo "Base ref: ${{ github.base_ref }}" - exit 1 - # Wait and verify job - wait-and-verify: + check-job-results: if: always() needs: [test-ref, test-ref-b] runs-on: ubuntu-latest @@ -48,7 +47,6 @@ jobs: for job in "${!job_results[@]}"; do RESULT=${job_results[$job]} if [[ "$RESULT" == "failure" ]]; then - echo "fail" failed_count=$((failed_count + 1)) fi echo "$job result: $RESULT" From 16491bac2b978f98cb2ed58ed55f68d83d2ff326 Mon Sep 17 00:00:00 2001 From: Samuel Burnham <45365069+samuelburnham@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:55:23 -0400 Subject: [PATCH 6/6] Prep for successful merge --- .github/workflows/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7a1ca7e..28c7bdc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,6 @@ jobs: run: | echo "Head ref: ${{ github.event.merge_group.head_ref }}" echo "Base ref: ${{ github.event.merge_group.base_ref }}" - exit 1 - uses: actions/checkout@v4 with: ref: ${{ github.event.merge_group.base_ref }}