There is a new QEMU based test which uses the qemu/kvm capability of github action runners. This is the basis for new bootc/image mode tests which we will be rolling out in the near future. ansible-lint requires that the collection path is set so that the requirements it installs are installed in the correct place. There has been some general github action deprecation of python versions and ubuntu versions that we have had to fix. Remove `CONTRIBUTOR` from the list of users who can trigger citest. For more information, see * https://github.com/linux-system-roles/.github/pull/98 * https://github.com/linux-system-roles/.github/pull/94 * https://github.com/linux-system-roles/.github/pull/93 * https://github.com/linux-system-roles/.github/pull/92 * https://github.com/linux-system-roles/.github/pull/91 Signed-off-by: Rich Megginson <rmeggins@redhat.com>
44 lines
2.0 KiB
YAML
44 lines
2.0 KiB
YAML
---
|
|
name: Re-run failed testing farm tests
|
|
on:
|
|
issue_comment:
|
|
types:
|
|
- created
|
|
permissions:
|
|
contents: read
|
|
jobs:
|
|
citest_bad_rerun:
|
|
if: |
|
|
github.event.issue.pull_request
|
|
&& contains(fromJson('["[citest_bad]", "[citest-bad]", "[citest bad]"]'), github.event.comment.body)
|
|
&& contains(fromJson('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
|
|
permissions:
|
|
actions: write # for re-running failed jobs: https://docs.github.com/en/rest/actions/workflow-runs?apiVersion=2022-11-28#re-run-a-job-from-a-workflow-run
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Wait 10s until tft.yml workflow is created and skipped because new comment don't match [citest]
|
|
run: sleep 10s
|
|
|
|
- name: Re-run failed jobs for this PR
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
REPO: ${{ github.repository }}
|
|
PR_TITLE: ${{ github.event.issue.title }}
|
|
run: |
|
|
PENDING_RUN=$(gh api "repos/$REPO/actions/workflows/tft.yml/runs?event=issue_comment" \
|
|
| jq -r "[.workflow_runs[] | select( .display_title == \"$PR_TITLE\") | \
|
|
select(.status == \"pending\" or .status == \"queued\" or .status == \"in_progress\") | .id][0]")
|
|
# if pending run don't exist, take the last run with failure state
|
|
if [ "$PENDING_RUN" != "null" ]; then
|
|
echo "The workflow $PENDING_RUN is still running, wait for it to finish to re-run"
|
|
exit 1
|
|
fi
|
|
RUN_ID=$(gh api "repos/$REPO/actions/workflows/tft.yml/runs?event=issue_comment" \
|
|
| jq -r "[.workflow_runs[] | select( .display_title == \"$PR_TITLE\" ) | select( .conclusion == \"failure\" ) | .id][0]")
|
|
if [ "$RUN_ID" = "null" ]; then
|
|
echo "Failed workflow not found, exiting"
|
|
exit 1
|
|
fi
|
|
echo "Re-running workflow $RUN_ID"
|
|
gh api --method POST repos/$REPO/actions/runs/$RUN_ID/rerun-failed-jobs
|