From 9bf674c1cef5a4e6ce9d21c1ae54b745216005a9 Mon Sep 17 00:00:00 2001 From: Konstantin Skaburskas Date: Mon, 14 Mar 2022 22:30:05 +0100 Subject: [PATCH 1/5] try parallel analysis jobs --- .github/workflows/main.yml | 97 ++++++++++++++++++++++++++++++++--- code/sonar-project.properties | 12 ++--- 2 files changed, 95 insertions(+), 14 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 582b2c5ac..1fee2fdad 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -9,7 +9,7 @@ on: jobs: - job-build: + analysis-kibit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -45,7 +45,65 @@ jobs: run: | export JAVA_OPTS="-Xms6g -Xmx6g" export ES_JAVA_OPTS="-Xms6g -Xmx6g" - sonar-scanner -Dsonar.login=${{ secrets.SONAR_TOKEN }} -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} -X + sonar-scanner -Dsonar.login=${{ secrets.SONAR_TOKEN }} -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} -X -Dsonar.clojure.kibit.enabled=true + + - name: SonarQube Quality Gate check + uses: sonarsource/sonarqube-quality-gate-action@v1.0.0 + # Force to fail step after specific time + timeout-minutes: 5 + with: + scanMetadataReportFile: code/.scannerwork/report-task.txt + env: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} + + analysis-coverage: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + # Disabling shallow clone is recommended for improving relevancy of reporting for sonar + fetch-depth: 0 + + - name: Cache local Maven repository + uses: actions/cache@v2 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Cache local Maven repository + + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + distribution: 'zulu' + java-version: '11' + + - name: Setup Sonar Scanner + uses: warchant/setup-sonar-scanner@v3 + with: + version: 4.6.2.2472 + + - name: Run Sonar Scanner + env: + # provide GITHUB_TOKEN to get access to secrets.SONAR_TOKEN + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + working-directory: code + run: | + export JAVA_OPTS="-Xms5g -Xmx5g" + export ES_JAVA_OPTS="-Xms5g -Xmx5g" + sonar-scanner -Dsonar.login=${{ secrets.SONAR_TOKEN }} -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} -X -Dsonar.clojure.cloverage.enabled=false -Dsonar.clojure.nvd.enabled=true -Dsonar.clojure.ancient.enabled=true + + - name: SonarQube Quality Gate check + uses: sonarsource/sonarqube-quality-gate-action@v1.0.0 + # Force to fail step after specific time + timeout-minutes: 5 + with: + scanMetadataReportFile: code/.scannerwork/report-task.txt + env: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} - name: Get list of tests if: always() @@ -86,6 +144,35 @@ jobs: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} + - name: Publish Unit Test Results + uses: EnricoMi/publish-unit-test-result-action@v1 + if: always() + with: + files: code/test-reports/TEST-*.xml + + build-deploy: + runs-on: ubuntu-latest + needs: + - analysis-coverage + - analysis-kibit + steps: + - uses: actions/checkout@v2 + + - name: Cache local Maven repository + uses: actions/cache@v2 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Cache local Maven repository + + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + distribution: 'zulu' + java-version: '11' + - uses: s4u/maven-settings-action@v2.2.0 with: githubServer: false @@ -113,12 +200,6 @@ jobs: SIXSQ_DOCKER_PASSWORD: ${{ secrets.SIXSQ_DOCKER_PASSWORD }} run: mvn deploy -DskipTests=true - - name: Publish Unit Test Results - uses: EnricoMi/publish-unit-test-result-action@v1 - if: always() - with: - files: code/test-reports/TEST-*.xml - job-notify: if: always() name: Post Workflow Status To Slack diff --git a/code/sonar-project.properties b/code/sonar-project.properties index f1ad64085..536a345ad 100644 --- a/code/sonar-project.properties +++ b/code/sonar-project.properties @@ -4,11 +4,11 @@ sonar.projectName=nuvla-api-server sonar.sources=src,project.clj sonar.tests=test sonar.clojure.sensors.timeout=3600 -sonar.clojure.eastwood.enabled=true -sonar.clojure.kibit.enabled=true -sonar.clojure.kondo.enabled=true -sonar.clojure.ancient.enabled=true -sonar.clojure.nvd.enabled=true +sonar.clojure.eastwood.enabled=false +sonar.clojure.kibit.enabled=false +sonar.clojure.kondo.enabled=false +sonar.clojure.ancient.enabled=false +sonar.clojure.nvd.enabled=false sonar.clojure.nvd.json-output-location=target/nvd/dependency-check-report.json -sonar.clojure.cloverage.enabled=true +sonar.clojure.cloverage.enabled=false sonar.clojure.cloverage.json-output-location=target/coverage/codecov.json From 4182ec1233bf0500679b24fb97694f7c81a7c0a4 Mon Sep 17 00:00:00 2001 From: Konstantin Skaburskas Date: Mon, 14 Mar 2022 22:31:33 +0100 Subject: [PATCH 2/5] fix dependencies between jobs --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1fee2fdad..db7ebbe3b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -204,7 +204,7 @@ jobs: if: always() name: Post Workflow Status To Slack needs: - - job-build + - build-deploy runs-on: ubuntu-latest steps: - uses: Gamesight/slack-workflow-status@master From d89ab89d012f28d595058ab7029f42c380f8ce12 Mon Sep 17 00:00:00 2001 From: Konstantin Skaburskas Date: Mon, 14 Mar 2022 22:37:25 +0100 Subject: [PATCH 3/5] cloverage.enabled=true --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index db7ebbe3b..b169869f1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -93,7 +93,7 @@ jobs: run: | export JAVA_OPTS="-Xms5g -Xmx5g" export ES_JAVA_OPTS="-Xms5g -Xmx5g" - sonar-scanner -Dsonar.login=${{ secrets.SONAR_TOKEN }} -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} -X -Dsonar.clojure.cloverage.enabled=false -Dsonar.clojure.nvd.enabled=true -Dsonar.clojure.ancient.enabled=true + sonar-scanner -Dsonar.login=${{ secrets.SONAR_TOKEN }} -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} -X -Dsonar.clojure.cloverage.enabled=true -Dsonar.clojure.nvd.enabled=true -Dsonar.clojure.ancient.enabled=true - name: SonarQube Quality Gate check uses: sonarsource/sonarqube-quality-gate-action@v1.0.0 From 2d568a9196bc13fcbcf1909b8122d5758edee32f Mon Sep 17 00:00:00 2001 From: Konstantin Skaburskas Date: Tue, 15 Mar 2022 08:29:14 +0100 Subject: [PATCH 4/5] use nuvla-api-server-ci-parallel project in SQ --- code/sonar-project.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/sonar-project.properties b/code/sonar-project.properties index 536a345ad..96978c8a0 100644 --- a/code/sonar-project.properties +++ b/code/sonar-project.properties @@ -1,6 +1,6 @@ sonar.organization=nuvla -sonar.projectKey=nuvla-api-server -sonar.projectName=nuvla-api-server +sonar.projectKey=nuvla-api-server-ci-parallel +sonar.projectName=nuvla-api-server-ci-parallel sonar.sources=src,project.clj sonar.tests=test sonar.clojure.sensors.timeout=3600 From a40efd74a3b56c453388dcd372db638b1912d832 Mon Sep 17 00:00:00 2001 From: Konstantin Skaburskas Date: Tue, 15 Mar 2022 09:26:28 +0100 Subject: [PATCH 5/5] no debug for sonar-scanner --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b169869f1..93d2d452e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -45,7 +45,7 @@ jobs: run: | export JAVA_OPTS="-Xms6g -Xmx6g" export ES_JAVA_OPTS="-Xms6g -Xmx6g" - sonar-scanner -Dsonar.login=${{ secrets.SONAR_TOKEN }} -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} -X -Dsonar.clojure.kibit.enabled=true + sonar-scanner -Dsonar.login=${{ secrets.SONAR_TOKEN }} -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} -Dsonar.clojure.kibit.enabled=true - name: SonarQube Quality Gate check uses: sonarsource/sonarqube-quality-gate-action@v1.0.0 @@ -93,7 +93,7 @@ jobs: run: | export JAVA_OPTS="-Xms5g -Xmx5g" export ES_JAVA_OPTS="-Xms5g -Xmx5g" - sonar-scanner -Dsonar.login=${{ secrets.SONAR_TOKEN }} -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} -X -Dsonar.clojure.cloverage.enabled=true -Dsonar.clojure.nvd.enabled=true -Dsonar.clojure.ancient.enabled=true + sonar-scanner -Dsonar.login=${{ secrets.SONAR_TOKEN }} -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} -Dsonar.clojure.cloverage.enabled=true -Dsonar.clojure.nvd.enabled=true -Dsonar.clojure.ancient.enabled=true - name: SonarQube Quality Gate check uses: sonarsource/sonarqube-quality-gate-action@v1.0.0