]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
.github: Refactor CP progress and add new PR test progress
authorGeorge Joseph <gjoseph@sangoma.com>
Tue, 2 May 2023 18:04:22 +0000 (12:04 -0600)
committerGeorge Joseph <gjoseph@sangoma.com>
Tue, 2 May 2023 18:04:26 +0000 (12:04 -0600)
.github/workflows/CherryPickTest.yml
.github/workflows/PROpenedOrUpdated.yml

index aed573e776614521b44a36cebaff1193c729c4be..c9ccf4d680a63674714bdcacbaa22b1fc8f03fc2 100644 (file)
@@ -33,7 +33,12 @@ jobs:
         run: | 
           gh pr edit --repo ${{github.repository}} \
             --remove-label ${{vars.CHERRY_PICK_TEST_LABEL}} \
-            --add-label ${{vars.TESTING_CHERRY_PICKS_LABEL}} ${{env.PR_NUMBER}} || :
+            --remove-label ${{vars.CHERRY_PICK_CHECKS_PASSED_LABEL}} \
+            --remove-label ${{vars.CHERRY_PICK_CHECKS_FAILED_LABEL}} \
+            --remove-label ${{vars.CHERRY_PICK_GATES_PASSED_LABEL}} \
+            --remove-label ${{vars.CHERRY_PICK_GATES_FAILED_LABEL}} \
+            --add-label ${{vars.CHERRY_PICK_TESTING_IN_PROGRESS}} \
+            ${{env.PR_NUMBER}} || :
 
       - name: Get cherry-pick branches
         uses: asterisk/asterisk-ci-actions/GetCherryPickBranchesFromPR@main
@@ -78,21 +83,24 @@ jobs:
           case $RESULT in
             success)
               gh pr edit --repo ${{github.repository}} \
-                --add-label ${{vars.CHERRY_PICK_CHECKS_PASSED_LABEL}} ${{env.PR_NUMBER}} || :
+                --add-label ${{vars.CHERRY_PICK_CHECKS_PASSED_LABEL}} \
+                ${{env.PR_NUMBER}} || :
               echo "::notice::All tests passed"
               exit 0
               ;;
             skipped)
               gh pr edit --repo ${{github.repository}} \
-                --remove-label ${{vars.TESTING_CHERRY_PICKS_LABEL}} \
-                --add-label ${{vars.CHERRY_PICK_CHECKS_FAILED_LABEL}} ${{env.PR_NUMBER}} || :
+                --remove-label ${{CHERRY_PICK_TESTING_IN_PROGRESS}} \
+                --add-label ${{vars.CHERRY_PICK_CHECKS_FAILED_LABEL}} \
+                ${{env.PR_NUMBER}} || :
               echo "::notice::Unit tests were skipped because of an earlier failure"
               exit 1
               ;;
-              *)
-                gh pr edit --repo ${{github.repository}} \
-                  --remove-label ${{vars.TESTING_CHERRY_PICKS_LABEL}} \
-                  --add-label ${{vars.CHERRY_PICK_CHECKS_FAILED_LABEL}} ${{env.PR_NUMBER}} || :
+            *)
+              gh pr edit --repo ${{github.repository}} \
+                --remove-label ${{CHERRY_PICK_TESTING_IN_PROGRESS}} \
+                --add-label ${{vars.CHERRY_PICK_CHECKS_FAILED_LABEL}} \
+                ${{env.PR_NUMBER}} || :
               echo "::error::One or more tests failed ($RESULT)"
               exit 1
           esac
@@ -132,24 +140,25 @@ jobs:
           RESULT:    ${{needs.AsteriskGateTestMatrix.result}}
           GH_TOKEN:  ${{ secrets.GITHUB_TOKEN }}
         run: |
+          gh pr edit --repo ${{github.repository}} \
+            --remove-label ${{vars.CHERRY_PICK_TESTING_IN_PROGRESS}} \
+            ${{env.PR_NUMBER}} || :
           case $RESULT in
             success)
               gh pr edit --repo ${{github.repository}} \
-                --remove-label ${{vars.TESTING_CHERRY_PICKS_LABEL}} \
-                --add-label ${{vars.CHERRY_PICK_GATES_PASSED_LABEL}} ${{env.PR_NUMBER}} || :
+                --add-label ${{vars.CHERRY_PICK_GATES_PASSED_LABEL}} \
+                ${{env.PR_NUMBER}} || :
               echo "::notice::All Testsuite tests passed"
               exit 0
               ;;
             skipped)
-              gh pr edit --repo ${{github.repository}} \
-                --remove-label ${{vars.TESTING_CHERRY_PICKS_LABEL}} ${{env.PR_NUMBER}} || :
               echo "::error::Testsuite tests were skipped because of an earlier failure"
               exit 1
               ;;
             *)
               gh pr edit --repo ${{github.repository}} \
-                --remove-label ${{vars.TESTING_CHERRY_PICKS_LABEL}} \
-                --add-label ${{vars.CHERRY_PICK_GATES_FAILED_LABEL}} ${{env.PR_NUMBER}} || :
+                --add-label ${{vars.CHERRY_PICK_GATES_FAILED_LABEL}} \
+                ${{env.PR_NUMBER}} || :
               echo "::error::One or more Testsuite tests failed ($RESULT)"
               exit 1
           esac
index c56b3ee8072f869c21b2d38e95139e2ab591a860..148fd025b9df49641fd1e0ea2c609aea96c03973 100644 (file)
@@ -18,8 +18,24 @@ env:
   MODULES_BLACKLIST: ${{vars.GATETEST_MODULES_BLACKLIST}} ${{vars.UNITTEST_MODULES_BLACKLIST}}
 
 jobs:
+  SetLabels:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Set Labels
+        env:
+          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        run: |
+          gh pr edit --repo ${{github.repository}} \
+            --remove-label ${{vars.TEST_CHECKS_PASSED_LABEL}} \
+            --remove-label ${{vars.TEST_CHECKS_FAILED_LABEL}} \
+            --remove-label ${{vars.TEST_GATES_PASSED_LABEL}} \
+            --remove-label ${{vars.TEST_GATES_FAILED_LABEL}} \
+            --add-label ${{vars.TESTING_IN_PROGRESS}} \
+            ${{env.PR_NUMBER}} || :
+
   AsteriskUnitTests:
     runs-on: ubuntu-latest
+    needs:   [ SetLabels ]
     steps:
       - name: Run Unit Tests
         uses: asterisk/asterisk-ci-actions/AsteriskUnitComposite@main
@@ -32,6 +48,7 @@ jobs:
           unittest_command:  ${{vars.UNITTEST_COMMAND}}
 
       - name: Get Token needed to add reviewers
+        if: ${{ success() }}
         id: get_workflow_token
         uses: peter-murray/workflow-application-token-action@v1
         with:
@@ -51,6 +68,9 @@ jobs:
           for r in $REVIEWERS ; do
             gh pr edit --repo ${ASTERISK_REPO} ${PR_NUMBER} --add-reviewer $r
           done
+          gh pr edit --repo ${{github.repository}} \
+            --add-label ${{vars.TEST_CHECKS_PASSED_LABEL}} \
+            ${{env.PR_NUMBER}} || :
 
   AsteriskGate:
     needs: AsteriskUnitTests
@@ -85,20 +105,34 @@ jobs:
       - name: Check test matrix status
         env:
           RESULT: ${{ needs.AsteriskGate.result }}
+          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         run: |
           echo "all results: ${{ toJSON(needs.*.result) }}"
           echo "composite result: ${{ needs.AsteriskGate.result }}"
 
+          gh pr edit --repo ${{github.repository}} \
+            --remove-label ${{vars.TESTING_IN_PROGRESS}} \
+            ${{env.PR_NUMBER}} || :
+
           case $RESULT in
             success)
+              gh pr edit --repo ${{github.repository}} \
+                --add-label ${{vars.TEST_GATES_PASSED_LABEL}} \
+                ${{env.PR_NUMBER}} || :
               echo "::notice::All Testsuite tests passed"
               exit 0
               ;;
             skipped)
+              gh pr edit --repo ${{github.repository}} \
+                --add-label ${{vars.TEST_CHECKS_FAILED_LABEL}} \
+                ${{env.PR_NUMBER}} || :
               echo "::error::Testsuite tests were skipped because of an earlier failure"
               exit 1
               ;;
-              *)
+            *)
+              gh pr edit --repo ${{github.repository}} \
+                --add-label ${{vars.TEST_GATES_FAILED_LABEL}} \
+                ${{env.PR_NUMBER}} || :
               echo "::error::One or more Testsuite tests failed ($RESULT)"
               exit 1
           esac