1- # The _chatops_retest workflow reruns failed GHA for a PR
2- #
3- # This workflow is triggered by leaving a "/retest" comment on
4- # a pull request. If the required preconditions are met, it will
5- # rerun failed GitHub actions checks on that PR
6- #
7- # Condition for the "/retest" command are:
8- # - either the issuer is a maintainer
9- # - or the issuer is the owner the PR
10-
111name : Rerun Failed Actions
2+
3+ permissions :
4+ contents : read
5+
126on :
137 repository_dispatch :
148 types : [retest-command]
159
1610jobs :
1711 retest :
1812 name : Rerun Failed Actions
19- runs-on : ubuntu-latest
20- steps :
21- - name : Show Environment Variables
22- run : env
23- - name : Show Github Object
24- run : |
25- cat <<'EOF'
26- ${{ toJson(github) }}
27- EOF
28- - name : Show Github Event Path Json
29- run : ' cat $GITHUB_EVENT_PATH || true'
30- - name : Rerun Failed Actions
31- run : |
32- echo '::group:: Get the PR commit sha'
33- # Get the sha of the HEAD commit in the PR
34- GITHUB_COMMIT_SHA=$(gh api $(echo ${GITHUB_PULL_URL#https://api.github.com/}) | \
35- jq -r .head.sha)
36- echo GITHUB_COMMIT_SHA=${GITHUB_COMMIT_SHA}
37- echo '::endgroup::'
38-
39- echo '::group:: Get the list of run IDs'
40- # Get a list of run IDs
41- RUN_IDS=$(gh api repos/${GITHUB_REPO}/commits/${GITHUB_COMMIT_SHA}/check-runs | \
42- jq -r '.check_runs[] | select(.name != "Rerun Failed Actions") | .html_url | capture("/runs/(?<number>[0-9]+)/job") | .number' | \
43- sort -u)
44- echo RUN_IDS=${RUN_IDS}
45- echo '::endgroup::'
46-
47- echo '::group:: Rerun failed runs'
48- # For each run, retrigger faild jobs
49- for runid in ${RUN_IDS}; do
50- echo Restarting run ${runid} for commit ${GITHUB_COMMIT_SHA}
51- gh run \
52- --repo ${GITHUB_REPO} \
53- rerun ${runid} \
54- --failed || true
55- done
56- echo '::endgroup::'
57- env :
58- GITHUB_TOKEN : ${{ secrets.CHATOPS_TOKEN }}
59- GITHUB_REPO : ${{ github.event.client_payload.github.payload.repository.full_name }}
60- GITHUB_PULL_URL : ${{ github.event.client_payload.github.payload.issue.pull_request.url }}
61-
62- - name : Create comment
63- if : ${{ failure() && steps.landStack.outcome == 'failure' }}
64- uses : peter-evans/create-or-update-comment@v4
65- with :
66- token : ${{ secrets.CHATOPS_TOKEN }}
67- repository : ${{ github.event.client_payload.github.payload.repository.full_name }}
68- issue-number : ${{ github.event.client_payload.github.payload.issue.number }}
69- body : |
70- Something went wrong with your `/${{ github.event.client_payload.slash_command.command }}` command: [please check the logs][1].
71-
72- [1]: ${{ steps.vars.outputs.run-url }}
73-
74- - name : Add reaction
75- if : ${{ success() }}
76- uses : peter-evans/create-or-update-comment@v4
77- with :
78- token : ${{ secrets.CHATOPS_TOKEN }}
79- repository : ${{ github.event.client_payload.github.payload.repository.full_name }}
80- comment-id : ${{ github.event.client_payload.github.payload.comment.id }}
81- reactions : hooray
13+ uses : tektoncd/plumbing/.github/workflows/_chatops_retest.yml@8441d6ffad5bf64f631ed0e67e46192fdedaca47
14+ secrets : inherit
0 commit comments