Skip to content

Commit

Permalink
Enable sonar in junit5 ext repo (kroxylicious#335)
Browse files Browse the repository at this point in the history
* Enable sonar in junit5 ext repo

* Update .github/workflows/sonar.yaml

Co-authored-by: Sam Barker <sam@quadrocket.co.uk>
Signed-off-by: Keith Wall <kwall@redhat.com>

* addressing review comments;

---------

Signed-off-by: Keith Wall <kwall@redhat.com>
Co-authored-by: Sam Barker <sam@quadrocket.co.uk>
  • Loading branch information
k-wall and SamBarker authored Jun 19, 2024
1 parent c9167b4 commit 6eceaca
Show file tree
Hide file tree
Showing 2 changed files with 109 additions and 1 deletion.
32 changes: 31 additions & 1 deletion .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,44 @@ jobs:
with:
java-version: 17
distribution: 'zulu'
cache: 'maven'
cache: maven

- name: Cache SonarCloud packages
uses: actions/cache@v4
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar

- name: 'Build junit extension with maven tests'
if: github.ref_name != 'main'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: mvn -B clean verify -Pci

- name: 'Build junit extension maven project on main'
if: github.event_name == 'push' && github.ref_name == 'main'
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: mvn -B clean verify -Pci org.sonarsource.scanner.maven:sonar-maven-plugin:3.11.0.3922:sonar -Dsonar.projectKey=kroxylicious_kroxylicious-junit5-extension

- name: 'Run tests in containers'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: TEST_CLUSTER_EXECUTION_MODE=CONTAINER KAFKA_VERSION=latest mvn -B clean verify -Dsurefire.failIfNoSpecifiedTests=false -Dtest=KafkaClusterTest

- name: Save PR number to file
if: github.event_name == 'pull_request' && ${{ matrix.os }} == 'ubuntu-latest'
run: echo ${{ github.event.number }} > PR_NUMBER.txt

- name: Archive PR number
if: github.event_name == 'pull_request' && ${{ matrix.os }} == 'ubuntu-latest'
uses: actions/upload-artifact@v4
with:
name: PR_NUMBER
path: PR_NUMBER.txt

- name: Archive container logs
uses: actions/upload-artifact@v4
if: failure()
Expand Down
78 changes: 78 additions & 0 deletions .github/workflows/sonar.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: Sonar Scan

on:
workflow_run:
workflows: [Build]
types: [completed]

concurrency:
group: ${{ github.workflow }}-${{ github.event.workflow_run.head_branch }}
cancel-in-progress: true

jobs:
Sonar:
runs-on: ubuntu-latest
if: github.event.workflow_run && github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request'
steps:
- name: echo event
run: cat $GITHUB_EVENT_PATH

- name: Download PR number artifact
uses: dawidd6/action-download-artifact@v5
with:
workflow: Build
run_id: ${{ github.event.workflow_run.id }}
name: PR_NUMBER

- name: Read PR_NUMBER.txt
id: pr_number
uses: juliangruber/read-file-action@v1
with:
path: ./PR_NUMBER.txt

- name: Request GitHub API for PR data
uses: octokit/request-action@v2.x
id: get_pr_data
with:
route: GET /repos/{full_name}/pulls/{number}
number: ${{ steps.pr_number.outputs.content }}
full_name: ${{ github.event.repository.full_name }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- uses: actions/checkout@v4
with:
repository: ${{ github.event.workflow_run.head_repository.full_name }}
ref: ${{ github.event.workflow_run.head_branch }}
fetch-depth: 0

- name: Checkout base branch
run: |
git remote add upstream ${{ github.event.repository.clone_url }}
git fetch upstream
git checkout -B ${{ fromJson(steps.get_pr_data.outputs.data).base.ref }} upstream/${{ fromJson(steps.get_pr_data.outputs.data).base.ref }}
git checkout ${{ github.event.workflow_run.head_branch }}
git clean -ffdx && git reset --hard HEAD
- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'zulu'
cache: maven

- name: Cache SonarCloud packages
uses: actions/cache@v4
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar

- name: SonarCloud Scan on PR
run: mvn -B clean verify -Pci -DskipITs=true org.sonarsource.scanner.maven:sonar-maven-plugin:3.11.0.3922:sonar -Dsonar.projectKey=kroxylicious_kroxylicious-junit5-extension -Dsonar.scm.revision=${{ github.event.workflow_run.head_sha }} -Dsonar.pullrequest.key=${{ fromJson(steps.get_pr_data.outputs.data).number }} -Dsonar.pullrequest.branch=${{ fromJson(steps.get_pr_data.outputs.data).head.ref }} -Dsonar.pullrequest.base=${{ fromJson(steps.get_pr_data.outputs.data).base.ref }}
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 comments on commit 6eceaca

Please sign in to comment.