Skip to content

PR 76 CherryPickTest #6

PR 76 CherryPickTest

PR 76 CherryPickTest #6

name: PRCPCheck
run-name: "PR ${{ github.event.number }} CherryPickTest"
on:
pull_request_target:
types: [ labeled ]
concurrency:
group: ${{ github.workflow }}-${{ github.event.label.name }}-${{ github.event.number }}
cancel-in-progress: true
env:
PR_NUMBER: ${{ github.event.number }}
jobs:
Setup:
if: ${{ github.event.label.name == vars.CHERRY_PICK_TEST_LABEL }}
name: Setup
runs-on: ubuntu-latest
outputs:
branches: ${{ steps.getbranches.outputs.branches }}
branch_count: ${{ steps.getbranches.outputs.branch_count }}
steps:
- name: Remove Trigger Label, Add InProgress Label
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh pr edit --repo ${{ github.repository }} \
--remove-label ${{ vars.CHERRY_PICK_TEST_LABEL }} \
--remove-label ${{ vars.CHERRY_PICK_CHECKS_PASSED_LABEL }} \
--remove-label ${{ vars.CHERRY_PICK_CHECKS_FAILED_LABEL }} \
--remove-label ${{ vars.CHERRY_PICK_TESTING_IN_PROGRESS }} \
$PR_NUMBER || :
- name: Get cherry-pick branches
uses: asterisk/asterisk-ci-actions/GetCherryPickBranchesFromPR@main
id: getbranches
with:
repo: ${{ github.repository }}
pr_number: ${{ env.PR_NUMBER }}
cherry_pick_regex: ${{ vars.CHERRY_PICK_REGEX }}
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Check Branch Count
if: ${{ steps.getbranches.outputs.branch_count > 0 }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh pr edit --repo ${{ github.repository }} \
--add-label ${{ vars.CHERRY_PICK_TESTING_IN_PROGRESS }} \
$PR_NUMBER || :
- name: CherryPick
uses: asterisk/asterisk-ci-actions/CherryPick@main
with:
repo: ${{ github.repository }}
pr_number: ${{ github.event.number }}
branches: ${{ steps.getbranches.outputs.branches }}
push: false
github_token: ${{ secrets.GITHUB_TOKEN }}
debug: false
Check:
needs: [Setup]
if: ${{ needs.Setup.outputs.branch_count > 0 && ( success() ) }}
strategy:
fail-fast: false
matrix:
branch: ${{ fromJSON(needs.Setup.outputs.branches) }}
uses: asterisk/asterisk-ci-actions/.github/workflows/RunTestsuiteUnitTest.yml@main
with:
pr_number: ${{ github.event.number }}
base_branch: ${{ matrix.branch }}
unittest_command: ${{ vars.UNITTEST_COMMAND }}
secrets:
TOKEN: ${{ secrets.GITHUB_TOKEN }}
Summary:
if: ${{ success() || failure() }}
runs-on: ubuntu-latest
needs: [Setup,Check]
steps:
- name: Check status
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RESULT_UNIT: ${{ needs.Check.result }}
TESTS_PASSED: ${{ vars.CHERRY_PICK_CHECKS_PASSED_LABEL }}
TESTS_FAILED: ${{ vars.CHERRY_PICK_CHECKS_FAILED_LABEL }}
run: |
declare -i rc=0
case $RESULT_UNIT in
success)
;;
skipped)
rc+=1
;;
*)
rc+=1
esac
[ $rc -gt 0 ] && label=$TESTS_FAILED || label=$TESTS_PASSED
gh pr edit --repo ${{ github.repository }} \
--remove-label ${{ vars.CHERRY_PICK_TESTING_IN_PROGRESS }} \
--add-label $label \
$PR_NUMBER || :
exit $rc