diff --git a/.github/workflows/rit.yml b/.github/workflows/rit.yml index 1b97e186b5..defd97e672 100644 --- a/.github/workflows/rit.yml +++ b/.github/workflows/rit.yml @@ -1,8 +1,6 @@ name: Rootstock Integration Tests on: - push: - branches: ["master", "*-rc"] pull_request: types: [ opened, synchronize, reopened ] branches: ["master", "*-rc"] @@ -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(//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 }} \ No newline at end of file