diff --git a/.github/workflows/auto_cherry_pick.yml b/.github/workflows/auto_cherry_pick.yml index d51092401..af5cbb3c5 100644 --- a/.github/workflows/auto_cherry_pick.yml +++ b/.github/workflows/auto_cherry_pick.yml @@ -3,8 +3,7 @@ name: auto_cherry_pick_commits on: pull_request_target: - types: - - closed + types: [closed] # Github & Parent PR Env vars env: @@ -27,6 +26,7 @@ jobs: with: issue-number: ${{ env.number }} body-includes: "trigger: test-robottelo" + direction: last # Auto CherryPicking and Failure Recording auto-cherry-pick: @@ -84,7 +84,7 @@ jobs: ## Failure Logging to issues and GChat Group - name: Create Github issue on cherrypick failure id: create-issue - if: ${{ always() && steps.cherrypick.outcome == 'failure' }} + if: ${{ always() && steps.cherrypick.outcome != 'success' && startsWith(matrix.label, '6.') && matrix.label != github.base_ref }} uses: dacbd/create-issue-action@main with: token: ${{ secrets.CHERRYPICK_PAT }} diff --git a/.github/workflows/automerge.yaml b/.github/workflows/auto_cherry_pick_merge.yaml similarity index 55% rename from .github/workflows/automerge.yaml rename to .github/workflows/auto_cherry_pick_merge.yaml index 0e51739ee..e0cb8e481 100644 --- a/.github/workflows/automerge.yaml +++ b/.github/workflows/auto_cherry_pick_merge.yaml @@ -8,11 +8,6 @@ on: - ready_for_review branches-ignore: - master - pull_request_review: - types: - - submitted - branches-ignore: - - master check_suite: types: - completed @@ -45,7 +40,7 @@ jobs: - name: Wait for other status checks to Pass id: waitforstatuschecks - uses: lewagon/wait-on-check-action@v1.2.0 + uses: lewagon/wait-on-check-action@v1.3.3 with: ref: ${{ github.head_ref }} repo-token: ${{ secrets.CHERRYPICK_PAT }} @@ -53,65 +48,32 @@ jobs: running-workflow-name: 'Automerge auto-cherry-picked pr' allowed-conclusions: success,skipped - - name: is PRT check Passed ? - run: | - api_endpoint="https://api.github.com/repos/${{github.repository}}/statuses/${{ github.head_ref }}" - - function get_status() { - curl -s "$api_endpoint" | jq '[.[] | .state] | .[0]' - } - - function get_context() { - curl -s "$api_endpoint" | jq '[.[] | .context] | .[0]' - } - - statuses_length=$(curl -s $api_endpoint | jq 'length') - if [ $statuses_length -eq 0 ]; then - echo "PRT failed to start ! Stopping." - exit 1 - fi - - status=$(get_status) - context=$(get_context) - - if [ "$context" != "Robottelo-Runner" ]; then - echo "::error Failed to get Robottelo-Runner status" - exit 1 - fi - - counter=0 - echo "Waiting for PRT to complete....." - while [ "$status" != "success" ] && [ "$status" != "failure" ]; do - if [ $counter -gt 20 ]; then - echo "PRT Timeout" - exit 1 - fi - sleep 300 - status=$(get_status) - echo "Robottelo-Runner : $status" - counter=$((counter+1)) - done + - name: Fetch the PRT status + id: outcome + uses: omkarkhatavkar/wait-for-status-checks@main + with: + ref: ${{ github.head_ref }} + context: 'Robottelo-Runner' + wait-interval: 60 + count: 100 - if [ "$status" == "success" ]; then - echo "PRT Passed Successfully!" + - name: Check the PRT status + run: | + if [ ${{ steps.outcome.outputs.result }} == 'success' ]; then + echo "Status check passed!" else - echo "Robottelo-Runner : $status" - echo "::error PRT failed" - exit 1 + echo "Status check failed!" fi - - id: automerge name: Auto merge of cherry-picked PRs. - uses: "pascalgn/automerge-action@v0.15.5" - if: steps.waitforstatuschecks.outputs.status == 'success' + uses: "pascalgn/automerge-action@v0.16.2" env: GITHUB_TOKEN: "${{ secrets.CHERRYPICK_PAT }}" MERGE_LABELS: "AutoMerge_Cherry_Picked, Auto_Cherry_Picked" MERGE_METHOD: "squash" MERGE_RETRIES: 5 MERGE_RETRY_SLEEP: 900000 - BASE_BRANCHES: "master" # avoid automerge branch - name: Auto Merge Status run: |