From ee2574f0989246a214ccf2d6c46bc8b20a2f2cef Mon Sep 17 00:00:00 2001 From: Gabriel Santos Date: Tue, 26 Nov 2024 16:34:08 -0300 Subject: [PATCH] Add to test --- .github/workflows/sonar_analysis.yml | 67 ++++++++++++++++++++++++++++ .github/workflows/trigger_sonar.yml | 42 ----------------- 2 files changed, 67 insertions(+), 42 deletions(-) create mode 100644 .github/workflows/sonar_analysis.yml delete mode 100644 .github/workflows/trigger_sonar.yml diff --git a/.github/workflows/sonar_analysis.yml b/.github/workflows/sonar_analysis.yml new file mode 100644 index 0000000..83bc03f --- /dev/null +++ b/.github/workflows/sonar_analysis.yml @@ -0,0 +1,67 @@ +name: CI + +on: + pull_request: + types: [opened, edited, reopened, synchronize] + workflow_dispatch: + +env: + GH_TOKEN: ${{ secrets.GIT_TOKEN_SECRET }} + OWNER: ${{ github.repository_owner }} + REPO: ${{ github.event.repository.name }} + PR_NUMBER: ${{ github.event.number }} + SONAR_HOST_URL: "https://sonarqube.trustly.one" + SONAR_PROJECT_KEY: "trustly-ios" + SONAR_PROJECT_NAME: "trustly-ios" + +jobs: + SonarQube: + runs-on: macOS-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + submodules: recursive + + - name: Install CocoaPods + run: | + gem install cocoapods + pod install --project-directory=Example + + - name: Generate Compilation Database + run: | + xcodebuild -workspace Example/TrustlySDK.xcworkspace \ + -scheme TrustlySDK-Example \ + -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.4' \ + clean build \ + | tee xcodebuild.log | xcpretty --report json-compilation-database \ + > compile_commands.json + + - name: Verify Compilation Database + run: | + cat compile_commands.json + + - name: Install sonar-scanner + run: | + brew update + brew install sonar-scanner + + - name: Run SonarQube Analysis + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN_SECRET }} + run: | + sonar-scanner \ + -Dsonar.host.url=${{ env.SONAR_HOST_URL }} \ + -Dsonar.login=${{ env.SONAR_TOKEN }} \ + -Dsonar.projectKey=${{ env.SONAR_PROJECT_KEY }} \ + -Dsonar.projectName=${{ env.SONAR_PROJECT_NAME }} \ + -Dsonar.pullrequest.base="${{ github.base_ref }}" \ + -Dsonar.pullrequest.branch="${{ github.head_ref }}" \ + -Dsonar.pullrequest.key="${{ github.event.pull_request.number }}" \ + -Dsonar.sources="." \ + -Dsonar.cfamily.compile-commands=compile_commands.json \ + -Dsonar.exclusions="**/Tests/**" \ + -Dsonar.verbose=true \ No newline at end of file diff --git a/.github/workflows/trigger_sonar.yml b/.github/workflows/trigger_sonar.yml deleted file mode 100644 index 919260b..0000000 --- a/.github/workflows/trigger_sonar.yml +++ /dev/null @@ -1,42 +0,0 @@ -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