diff --git a/.github/workflows/rit.yml b/.github/workflows/rit.yml index 1b97e186b5c..6255f21dd17 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,95 @@ 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: Checkout Repository + uses: actions/checkout@v4 + + - name: Fetch Pull Request Description + id: fetch-pr-description + uses: actions/checkout@v4 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + PR_DESCRIPTION=$(gh pr view ${{ github.event.pull_request.number }} --json body -q .body) + echo "pr_description=$pr_description" >> $GITHUB_ENV + - name: Set Branch Variables id: set-branch-variables + env: + PR_DESCRIPTION: ${{ env.pr_description }} run: | # Default values RSKJ_BRANCH="master" - RIT_BRANCH="${{ github.event.inputs.rit-branch || 'main' }}" - POWPEG_BRANCH="${{ github.event.inputs.powpeg-branch || 'master' }}" - - if [[ "${{ github.event_name }}" == "push" && "${{ github.ref }}" == "refs/heads/*-rc" ]]; then - RSKJ_BRANCH="${{ github.ref }}" - elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then + + # Set the RSKJ branch + if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then RSKJ_BRANCH="${{ github.ref_name }}" elif [[ "${{ github.event_name }}" == "pull_request" ]]; then - RSKJ_BRANCH="${{ github.head_ref }}" + if [[ "$PR_DESCRIPTION" =~ rskj:${{ env.REGEX_PARSE_BRANCH }} ]]; then + RSKJ_BRANCH="${BASH_REMATCH[1]}" + else + RSKJ_BRANCH="${{ github.head_ref }}" + fi 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: 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 }} + +# - name: Send Slack Notification on Success +# if: success() +# uses: slackapi/slack-github-action@v1.27.0 +# with: +# channel-id: 'C8X9Q4PBM' # integration-tests channel +# slack-message: "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() +# uses: slackapi/slack-github-action@v1.27.0 +# with: +# channel-id: 'C8X9Q4PBM' # integration-tests channel +# slack-message: "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 }}