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 - 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.
  • Loading branch information
fmacleal committed Sep 13, 2024
1 parent a1e21dc commit a9ceca4
Showing 1 changed file with 70 additions and 10 deletions.
80 changes: 70 additions & 10 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,97 @@ on:
required: false
default: 'master'

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

jobs:
rootstock-integration-tests:
name: Rootstock Integration Tests
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Fetch Pull Request Description
id: fetch-pr-description
uses: actions/github-script@v7
with:
result-encoding: string
script: |
const pr = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number
});
function removeMarkdown(text) {
return text
.replace(/!\[.*?\]\(.*?\)/g, '') // Remove images
.replace(/\[.*?\]\(.*?\)/g, '') // Remove links
.replace(/`.*?`/g, '') // Remove inline code
.replace(/```[\s\S]*?```/g, '') // Remove code blocks
.replace(/#+\s/g, '') // Remove headers
.replace(/>\s/g, '') // Remove blockquotes
.replace(/[*_~]/g, '') // Remove emphasis
.replace(/-\s/g, '') // Remove list items
.replace(/\[ \]|\[x\]/gi, '') // Remove checkboxes
.replace(/<!--[\s\S]*?-->/g, '') // Remove comments
.replace(/\n{2,}/g, '\n'); // Remove extra newlines
}
const cleanedBody = removeMarkdown(pr.data.body);
return cleanedBody;
- name: Set Branch Variables
id: set-branch-variables
run: |
# Default values
RSKJ_BRANCH="master"
RIT_BRANCH="${{ github.event.inputs.rit-branch || 'main' }}"
POWPEG_BRANCH="${{ github.event.inputs.powpeg-branch || 'master' }}"
PR_DESCRIPTION="${{ steps.fetch-pr-description.outputs.result }}"
# Set the RSKJ branch
if [[ "${{ github.event_name }}" == "push" && "${{ github.ref }}" == "refs/heads/*-rc" ]]; then
RSKJ_BRANCH="${{ github.ref }}"
elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
RSKJ_BRANCH="${{ github.ref_name }}"
elif [[ "$PR_DESCRIPTION" =~ rskj:${{ env.REGEX_PARSE_BRANCH }} ]]; then
RSKJ_BRANCH="${BASH_REMATCH[1]}"
elif [[ "${{ github.event_name }}" == "pull_request" ]]; then
RSKJ_BRANCH="${{ github.head_ref }}"
fi
# Set the Powpeg branch
if [[ -n "${{ github.event.inputs.powpeg-branch }}" ]]; then
POWPEG_BRANCH="${{ github.event.inputs.powpeg-branch }}"
elif [[ "$PR_DESCRIPTION" =~ fed:${{ env.REGEX_PARSE_BRANCH }} ]]; then
POWPEG_BRANCH="${BASH_REMATCH[1]}"
else
POWPEG_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
echo "RSKJ_BRANCH=$RSKJ_BRANCH" >> $GITHUB_ENV
echo "RIT_BRANCH=$RIT_BRANCH" >> $GITHUB_ENV
echo "POWPEG_BRANCH=$POWPEG_BRANCH" >> $GITHUB_ENV
- name: Run Rootstock Integration Tests
uses: rsksmart/rootstock-integration-tests@497172fd38dcfaf48c77f9bb1eeb6617eef5eed6 #v1
# - 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 }}

- name: Send Slack Notification
uses: slackapi/slack-github-action@v1.27.0
with:
rskj-branch: ${{ env.RSKJ_BRANCH }}
powpeg-node-branch: ${{ env.POWPEG_BRANCH }}
rit-branch: ${{ env.RIT_BRANCH }}
channel-id: 'C8X9Q4PBM' # integration-tests channel
slack-message: "Testing slack integration with GitHub Actions"
env:
SLACK_BOT_TOKEN: ${{ secrets.GHA_SLACK_NOTIFICATION_TOKEN }}

0 comments on commit a9ceca4

Please sign in to comment.