OnPRRecheck.yml 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. name: PRReCheck
  2. run-name: "PR ${{ github.event.number }} Recheck"
  3. on:
  4. pull_request_target:
  5. types: [ labeled ]
  6. concurrency:
  7. group: check-${{ github.event.number }}
  8. cancel-in-progress: true
  9. env:
  10. PR_NUMBER: ${{ github.event.number }}
  11. jobs:
  12. Setup:
  13. if: ${{ github.event.label.name == vars.RECHECKPR_LABEL }}
  14. runs-on: ubuntu-latest
  15. outputs:
  16. testsuite_test_pr: ${{ steps.testsuitepr.outputs.testsuite_test_pr }}
  17. steps:
  18. - name: Set Label
  19. id: setlabel
  20. env:
  21. GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  22. run: |
  23. gh pr edit --repo ${{ github.repository }} \
  24. --remove-label ${{ vars.RECHECKPR_LABEL }} \
  25. --remove-label ${{ vars.PR_SUBMIT_TESTS_PASSED }} \
  26. --remove-label ${{ vars.PR_SUBMIT_TESTS_FAILED }} \
  27. --add-label ${{ vars.PR_SUBMIT_TESTING_IN_PROGRESS }} \
  28. $PR_NUMBER || :
  29. - name: GetTestsuitePR
  30. id: testsuitepr
  31. uses: asterisk/asterisk-ci-actions/GetTestsuitePRFromAsteriskPR@main
  32. with:
  33. repo: ${{ github.repository }}
  34. pr_number: ${{ github.event.number }}
  35. testsuite_test_pr_regex: ${{ vars.TESTSUITE_TEST_PR_REGEX }}
  36. testsuite_test_auto_merge_regex: ${{ vars.TESTSUITE_TEST_AUTO_MERGE_REGEX }}
  37. github_token: ${{ secrets.GITHUB_TOKEN }}
  38. ReCheck:
  39. name: ReCheck
  40. needs: Setup
  41. uses: asterisk/asterisk-ci-actions/.github/workflows/AsteriskUnitGateTest.yml@main
  42. with:
  43. test_type: prrecheck
  44. asterisk_repo: ${{ github.repository }}
  45. pr_number: ${{ github.event.number }}
  46. base_branch: ${{ github.event.pull_request.base.ref }}
  47. is_cherry_pick: false
  48. build_options: ${{ vars.BUILD_OPTIONS }}
  49. unittest_command: ${{ vars.UNITTEST_COMMAND }}
  50. testsuite_repo: ${{ vars.TESTSUITE_REPO }}
  51. testsuite_test_pr: ${{ needs.Setup.outputs.testsuite_test_pr }}
  52. gatetest_list: ${{ vars.GATETEST_LIST }}
  53. gatetest_commands: ${{ vars.GATETEST_COMMANDS }}
  54. secrets:
  55. TOKEN: ${{ secrets.GITHUB_TOKEN }}
  56. Summary:
  57. if: ${{ success() || failure() }}
  58. runs-on: ubuntu-latest
  59. needs: [Setup,ReCheck]
  60. steps:
  61. - name: Check status
  62. env:
  63. GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  64. RESULT_UNIT: ${{ needs.ReCheck.result }}
  65. TESTS_PASSED: ${{ vars.PR_SUBMIT_TESTS_PASSED }}
  66. TESTS_FAILED: ${{ vars.PR_SUBMIT_TESTS_FAILED }}
  67. run: |
  68. declare -i rc=0
  69. case $RESULT_UNIT in
  70. success)
  71. ;;
  72. skipped)
  73. rc+=1
  74. ;;
  75. *)
  76. rc+=1
  77. esac
  78. [ $rc -gt 0 ] && label=$TESTS_FAILED || label=$TESTS_PASSED
  79. gh pr edit --repo ${{ github.repository }} \
  80. --remove-label ${{ vars.PR_SUBMIT_TESTING_IN_PROGRESS }} \
  81. --add-label $label \
  82. $PR_NUMBER || :
  83. exit $rc