From 4ba07ff530a96685032535792ab8d49dd86aa7af Mon Sep 17 00:00:00 2001 From: Gabriel Santos Date: Tue, 3 Sep 2024 16:54:11 -0300 Subject: [PATCH] [DEV-238922] Add check title validation and trigger sonar --- .github/workflows/check_tittle.yml | 31 +++++++++++++++++++++ .github/workflows/trigger_sonar.yml | 42 +++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 .github/workflows/check_tittle.yml create mode 100644 .github/workflows/trigger_sonar.yml diff --git a/.github/workflows/check_tittle.yml b/.github/workflows/check_tittle.yml new file mode 100644 index 0000000..56e6a01 --- /dev/null +++ b/.github/workflows/check_tittle.yml @@ -0,0 +1,31 @@ +name: Check PR Title +on: + pull_request: + types: [opened, edited, reopened] +env: + GH_TOKEN: ${{ secrets.GIT_TOKEN_SECRET }} + OWNER: ${{ github.repository_owner }} + REPO: ${{ github.event.repository.name }} + PR_NUMBER: ${{ github.event.number }} +jobs: + check_pr_title: + runs-on: ubuntu-latest + steps: + - name: Checkout source code + run: git clone -q https://${GIT_TOKEN_SECRET}@github.com/${OWNER}/${REPO}.git --depth=2 + - name: Check Jira ID on PR title + run: | + cd ${REPO} || exit + pr_title=$(gh pr view "${PR_NUMBER}" --json title | jq '.title' | tr -d '"') + pr_author=$(gh pr view "${PR_NUMBER}" --json author | jq '.author.login' | tr -d '"') + + if [[ ${pr_title} =~ ^\[(DEV|DEVAUTOM|INF)-[0-9]+\] ]]; then + echo -e "(√) Title '${pr_title}' is ok!" + exit 0 + else + echo -e "(x) Title '${pr_title}' is not ok!" + gh issue comment ${PR_NUMBER} --body ":x: @${pr_author} this pull request title '${pr_title}' is incorrect! + Please insert your Jira ID issue on title according the follow convention: [DEVAUTOM-12345], [DEV-12345] or [INF-12345]" + exit 1 + fi + shell: bash \ No newline at end of file diff --git a/.github/workflows/trigger_sonar.yml b/.github/workflows/trigger_sonar.yml new file mode 100644 index 0000000..919260b --- /dev/null +++ b/.github/workflows/trigger_sonar.yml @@ -0,0 +1,42 @@ +name: Trigger Sonar +on: + pull_request: + types: [opened, synchronize, reopened] +env: + GH_TOKEN: ${{ secrets.GIT_TOKEN_SECRET }} + BAMBOO_TOKEN_SECRET: ${{ secrets.BAMBOO_TOKEN_SECRET }} + GITHUB_TOKEN_SECRET: ${{ secrets.GIT_TOKEN_SECRET }} + GITHUB_REPO_OWNER: ${{ github.repository_owner }} + GITHUB_REPO: ${{ github.event.repository.name }} + GITHUB_PR_ID: ${{ github.event.number }} +jobs: + trigger_sonar: + if: | + github.repository == 'TrustlyInc/trustly-ios' && + github.event.pull_request.mergeable_status != 'dirty' + runs-on: ubuntu-latest + steps: + - name: Checkout source code + run: git clone -q https://${GITHUB_TOKEN_SECRET}@github.com/${GITHUB_REPO_OWNER}/${GITHUB_REPO}.git --depth=2 + - name: Trigger Bamboo Pipeline - SonarQube Pull Request Analysis + run: | + cd "${GITHUB_REPO}" || exit + + echo -e "Github PR ID : ${GITHUB_PR_ID}" + echo -e "Github repository: ${GITHUB_REPO}" + + echo -e "Trigger Bamboo Pipeline" + response=$(curl --request POST \ + "https://bamboo.paywithmybank.com/rest/api/latest/queue/CAS-SATAPR?bamboo.GITHUB_PR_ID=${GITHUB_PR_ID}" \ + --data "stage&executeAllStages" \ + --header "Authorization: Bearer ${BAMBOO_TOKEN_SECRET}" \ + --write-out "%{http_code}" \ + --silent \ + --output /dev/null) + + if [ "${response}" -eq 200 ]; then + echo "Pipeline triggered successfully." + else + echo "Failed to trigger pipeline. HTTP status code: ${response}" + fi + shell: bash \ No newline at end of file