Skip to content

Commit

Permalink
Fixing some issues on RIT workflow
Browse files Browse the repository at this point in the history
Issues fixed:
1 - Remove the trigger on push for master and *-rc -> we don't need that anymore since we are running it for every commit on PRs against these branches.
2 - Send the status of the execution to slack
3 - Solve the issue that the status of an execution triggered via workflow doesn't update the PR status.
And if we need to use a different branch for RIT, Powpeg and RIT in the PR, it won't change the status to
green after the workflow_dispatch execution -> We will do that adding a parsing on the description, looking
for the branch that need to be used for that PR. If there is no branch configured on the description, we will
try to use the default one.

Branches to be used by RIT:
fed:vovchyk/jackson-ver-bump
rskj:vovchyk/jackson-ver-bump
  • Loading branch information
fmacleal committed Sep 16, 2024
1 parent 59d724d commit da891f5
Showing 1 changed file with 101 additions and 11 deletions.
112 changes: 101 additions & 11 deletions .github/workflows/rit.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
name: Rootstock Integration Tests

on:
push:
branches: ["master", "*-rc"]
pull_request:
types: [ opened, synchronize, reopened ]
branches: [ "master", "*-rc" ]
Expand All @@ -17,35 +15,127 @@ on:
required: false
default: 'master'

env:
REGEX_PARSE_BRANCH: '([a-zA-Z0-9/_-]+)'
VALID_BRANCH_REGEX: '^[a-zA-Z0-9._/-]+$'

jobs:
rootstock-integration-tests:
name: Rootstock Integration Tests
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Checkout Repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4

- name: Fetch Pull Request Description
id: fetch-pr-description
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
{
echo 'pr_description<<EOF'
gh pr view ${{ github.event.pull_request.number }} --json body -q .body
echo EOF
} >> "$GITHUB_ENV"
- name: Set Branch Variables
id: set-branch-variables
run: |
# Default values
POWPEG_BRANCH="master"
RIT_BRANCH="${{ github.event.inputs.rit-branch || 'main' }}"
RSKJ_BRANCH="${{ github.event.inputs.rskj-branch || 'master' }}"
if [[ "${{ github.event_name }}" == "push" && "${{ github.ref }}" == "refs/heads/*-rc" ]]; then
POWPEG_BRANCH="${{ github.ref }}"
elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
# Set the POWPEG_BRANCH branch
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
POWPEG_BRANCH="${{ github.ref_name }}"
elif [[ "${{ github.event_name }}" == "pull_request" ]]; then
POWPEG_BRANCH="${{ github.head_ref }}"
if [[ "$PR_DESCRIPTION" =~ fed:${{ env.REGEX_PARSE_BRANCH }} ]]; then
POWPEG_BRANCH="${BASH_REMATCH[1]}"
else
POWPEG_BRANCH="${{ github.head_ref }}"
fi
fi
# Set the RSKj branch
if [[ -n "${{ github.event.inputs.rskj-branch }}" ]]; then
RSKJ_BRANCH="${{ github.event.inputs.rskj-branch }}"
elif [[ "$PR_DESCRIPTION" =~ rskj:${{ env.REGEX_PARSE_BRANCH }} ]]; then
RSKJ_BRANCH="${BASH_REMATCH[1]}"
else
RSKJ_BRANCH="master"
fi
# Set the RIT branch
if [[ -n "${{ github.event.inputs.rit-branch }}" ]]; then
RIT_BRANCH="${{ github.event.inputs.rit-branch }}"
elif [[ "$PR_DESCRIPTION" =~ rit:${{ env.REGEX_PARSE_BRANCH }} ]]; then
RIT_BRANCH="${BASH_REMATCH[1]}"
else
RIT_BRANCH="main"
fi
if ! [[ "$RIT_BRANCH" =~ $VALID_BRANCH_REGEX ]]; then
echo "Error: Invalid RIT branch name: $RIT_BRANCH"
exit 1
fi
if ! [[ "$POWPEG_BRANCH" =~ $VALID_BRANCH_REGEX ]]; then
echo "Error: Invalid PowPeg branch name: $POWPEG_BRANCH"
exit 1
fi

if ! [[ "$RSKJ_BRANCH" =~ $VALID_BRANCH_REGEX ]]; then
echo "Error: Invalid RSKJ branch name: $RSKJ_BRANCH"
exit 1
fi

echo "POWPEG_BRANCH=$POWPEG_BRANCH" >> $GITHUB_ENV
echo "RSKJ_BRANCH=$RSKJ_BRANCH" >> $GITHUB_ENV
echo "RIT_BRANCH=$RIT_BRANCH" >> $GITHUB_ENV
echo "POWPEG_BRANCH=$POWPEG_BRANCH" >> $GITHUB_ENV

- name: Set Build URL
id: set-build-url
run: |
BUILD_URL="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
echo "BUILD_URL=$BUILD_URL" >> $GITHUB_ENV
- name: Run Rootstock Integration Tests
uses: rsksmart/rootstock-integration-tests@497172fd38dcfaf48c77f9bb1eeb6617eef5eed6 #v1
with:
rskj-branch: ${{ env.RSKJ_BRANCH }}
powpeg-node-branch: ${{ env.POWPEG_BRANCH }}
rit-branch: ${{ env. RIT_BRANCH }}
rit-branch: ${{ env. RIT_BRANCH }}

- name: Send Slack Notification on Success
if: success() && github.event.pull_request.head.repo.owner.login == 'rsksmart'
uses: slackapi/slack-github-action@37ebaef184d7626c5f204ab8d3baff4262dd30f0 # v1.27.0
with:
channel-id: 'C8X9Q4PBM' # integration-tests channel
payload: |
{
"attachments": [
{
"color": "good",
"text": "OK: :+1: Pull request: ${{ github.head_ref }} - [#${{ github.run_number }}] - (${{ env.BUILD_URL }}) - *Branches used* [rskj:`rsksmart#${{ env.RSKJ_BRANCH }}`] [fed:`${{ env.POWPEG_BRANCH }}`] [rootstock-integration-tests:`${{ env.RIT_BRANCH }}`]"
}
]
}
env:
SLACK_BOT_TOKEN: ${{ secrets.GHA_SLACK_NOTIFICATION_TOKEN }}

- name: Send Slack Notification on Failure
if: failure() && github.event.pull_request.head.repo.owner.login == 'rsksmart'
uses: slackapi/slack-github-action@37ebaef184d7626c5f204ab8d3baff4262dd30f0 # v1.27.0
with:
channel-id: 'C8X9Q4PBM' # integration-tests channel
payload: |
{
"attachments": [
{
"color": "danger",
"text": "FAILED: :robot_face: *Pull request*: ${{ github.head_ref }} - [#${{ github.run_number }}] - (${{ env.BUILD_URL }}) - *Branches used* [rskj:`rsksmart#${{ env.RSKJ_BRANCH }}`] [fed:`${{ env.POWPEG_BRANCH }}`] [rootstock-integration-tests:`${{ env.RIT_BRANCH }}`]"
}
]
}
env:
SLACK_BOT_TOKEN: ${{ secrets.GHA_SLACK_NOTIFICATION_TOKEN }}

0 comments on commit da891f5

Please sign in to comment.