workflow: trigger test-kata-deploy with pull_request

event that changes VERSION (i.e. a release PR)

Signed-off-by: Snir Sheriber <ssheribe@redhat.com>
This commit is contained in:
Snir Sheriber 2022-06-09 09:17:04 +03:00
parent f10827357e
commit 7676cde0c5
2 changed files with 22 additions and 7 deletions

View File

@ -1,11 +1,19 @@
on: on:
workflow_dispatch: # this is used to trigger the workflow on non-main branches pull_request: # this will trigger the workflow on PRs that changes release version
types:
- opened
- edited
- reopened
- synchronize
paths:
- VERSION
workflow_dispatch: # this allows to trigger the workflow manually on non-main branches
inputs: inputs:
pr: pr:
description: 'PR number from the selected branch to test' description: 'PR number from the selected branch to test'
type: string type: string
required: true required: true
issue_comment: issue_comment: # this allows to trigger the workflow from main by commenting "/test_kata_deploy"
types: [created, edited] types: [created, edited]
name: test-kata-deploy name: test-kata-deploy
@ -19,13 +27,14 @@ jobs:
&& github.event.action == 'created' && github.event.action == 'created'
&& startsWith(github.event.comment.body, '/test_kata_deploy') && startsWith(github.event.comment.body, '/test_kata_deploy')
|| github.event_name == 'workflow_dispatch' || github.event_name == 'workflow_dispatch'
|| github.event_name == 'pull_request'
steps: steps:
- name: Check membership on comment or dispatch - name: Check membership on comment or dispatch
uses: kata-containers/is-organization-member@1.0.1 uses: kata-containers/is-organization-member@1.0.1
id: is_organization_member id: is_organization_member
with: with:
organization: kata-containers organization: kata-containers
username: ${{ github.event.comment.user.login || github.event.sender.login }} username: ${{ github.event.comment.user.login || github.event.sender.login }} # first one applies only on issue_comment
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
- name: Fail if not member - name: Fail if not member
run: | run: |
@ -61,8 +70,10 @@ jobs:
run: | run: |
if [ ${{ github.event_name }} == 'issue_comment' ]; then if [ ${{ github.event_name }} == 'issue_comment' ]; then
ref=$(cat $GITHUB_EVENT_PATH | jq -r '.issue.pull_request.url' | sed 's#^.*\/pulls#refs\/pull#' | sed 's#$#\/merge#') ref=$(cat $GITHUB_EVENT_PATH | jq -r '.issue.pull_request.url' | sed 's#^.*\/pulls#refs\/pull#' | sed 's#$#\/merge#')
else # workflow_dispatch elif [ ${{ github.event_name }} == 'workflow_dispatch' ]; then
ref="refs/pull/${{ github.event.inputs.pr }}/merge" ref="refs/pull/${{ github.event.inputs.pr }}/merge"
elif [ ${{ github.event_name }} == 'pull_request' ]; then
ref="refs/pull/${{ github.event.number }}/merge"
fi fi
echo "reference for PR: " ${ref} "event:" ${{ github.event_name }} echo "reference for PR: " ${ref} "event:" ${{ github.event_name }}
echo "##[set-output name=pr-ref;]${ref}" echo "##[set-output name=pr-ref;]${ref}"
@ -101,8 +112,10 @@ jobs:
run: | run: |
if [ ${{ github.event_name }} == 'issue_comment' ]; then if [ ${{ github.event_name }} == 'issue_comment' ]; then
ref=$(cat $GITHUB_EVENT_PATH | jq -r '.issue.pull_request.url' | sed 's#^.*\/pulls#refs\/pull#' | sed 's#$#\/merge#') ref=$(cat $GITHUB_EVENT_PATH | jq -r '.issue.pull_request.url' | sed 's#^.*\/pulls#refs\/pull#' | sed 's#$#\/merge#')
else # workflow_dispatch elif [ ${{ github.event_name }} == 'workflow_dispatch' ]; then
ref="refs/pull/${{ github.event.inputs.pr }}/merge" ref="refs/pull/${{ github.event.inputs.pr }}/merge"
elif [ ${{ github.event_name }} == 'pull_request' ]; then
ref="refs/pull/${{ github.event.number }}/merge"
fi fi
echo "reference for PR: " ${ref} "event:" ${{ github.event_name }} echo "reference for PR: " ${ref} "event:" ${{ github.event_name }}
echo "##[set-output name=pr-ref;]${ref}" echo "##[set-output name=pr-ref;]${ref}"
@ -132,8 +145,10 @@ jobs:
run: | run: |
if [ ${{ github.event_name }} == 'issue_comment' ]; then if [ ${{ github.event_name }} == 'issue_comment' ]; then
ref=$(cat $GITHUB_EVENT_PATH | jq -r '.issue.pull_request.url' | sed 's#^.*\/pulls#refs\/pull#' | sed 's#$#\/merge#') ref=$(cat $GITHUB_EVENT_PATH | jq -r '.issue.pull_request.url' | sed 's#^.*\/pulls#refs\/pull#' | sed 's#$#\/merge#')
else # workflow_dispatch elif [ ${{ github.event_name }} == 'workflow_dispatch' ]; then
ref="refs/pull/${{ github.event.inputs.pr }}/merge" ref="refs/pull/${{ github.event.inputs.pr }}/merge"
elif [ ${{ github.event_name }} == 'pull_request' ]; then
ref="refs/pull/${{ github.event.number }}/merge"
fi fi
echo "reference for PR: " ${ref} "event:" ${{ github.event_name }} echo "reference for PR: " ${ref} "event:" ${{ github.event_name }}
echo "##[set-output name=pr-ref;]${ref}" echo "##[set-output name=pr-ref;]${ref}"

View File

@ -48,7 +48,7 @@
### Merge all bump version Pull requests ### Merge all bump version Pull requests
- The above step will create a GitHub pull request in the Kata projects. Trigger the CI using `/test` command on each bump Pull request. - The above step will create a GitHub pull request in the Kata projects. Trigger the CI using `/test` command on each bump Pull request.
- Trigger the `test-kata-deploy` workflow which is under the `Actions` tab on the repository GitHub page (make sure to select the correct branch and validate it passes). - `test-kata-deploy` workflow should be triggered automatically, validate it passes under the `Actions` tab on the repository GitHub page (you're also able to run it manually from there).
- Check any failures and fix if needed. - Check any failures and fix if needed.
- Work with the Kata approvers to verify that the CI works and the pull requests are merged. - Work with the Kata approvers to verify that the CI works and the pull requests are merged.