Skip to content

Scan Code

Scan Code #452

Workflow file for this run

name: 'Scan Code'
on:
workflow_run:
workflows: [Continuous Integration]
types: [completed]
jobs:
sonar:
name: Sonar Scan
runs-on: ubuntu-latest
if: github.event.workflow_run.conclusion == 'success'
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
ref: ${{ github.event.workflow_run.head_commit.id }}
- name: Set pending status
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
run: |
mvn -B liquibase-sdk:set-commit-status \
-Dliquibase.sdk.repo="${{ github.repository }}" \
-Dliquibase.sdk.status.context="Scan Code / Sonar Scan" \
-Dliquibase.sdk.status.description="Code analysis" \
-Dliquibase.sdk.status.url="${{ job.html_url }}" \
-Dliquibase.sdk.status.commit="${{ github.event.workflow_run.head_commit.id }}" \
-Dliquibase.sdk.status.state=pending
- name: Download and Extract Artifacts
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
run: |
mvn -B liquibase-sdk:download-snapshot-artifacts \
-Dliquibase.sdk.repo=${{ github.repository }} \
-Dliquibase.sdk.runId=${{ github.event.workflow_run.id }} \
-Dliquibase.sdk.downloadDirectory=artifacts \
-Dliquibase.sdk.artifactPattern=* \
-Dliquibase.sdk.unzipArtifacts=true
- name: Set up JDK
uses: actions/setup-java@v2
with:
java-version: 17
distribution: 'temurin'
cache: 'maven'
- name: Cache SonarCloud packages
uses: actions/cache@v3
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Build code
run: mvn -B compile
- name: Aggregate Jacoco Results
run: |
mvn -B -Djacoco.fileset.directory=artifacts \
-Djacoco.destFile=target\jacoco-merged.exec \
-Djacoco.dataFile=target\jacoco-merged.exec \
jacoco:merge \
jacoco:report
- name: Sonar Scan
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: |
mvn -B -Dsonar.login=$SONAR_TOKEN \
-Dsonar.projectId=${{ github.event.repository.name }} \
-Dsonar.pullrequest.key=${{ github.event.workflow_run.pull_request.number }} \
-Dsonar.pullrequest.branch=${{ github.event.workflow_run.pull_request.head.ref }} \
-Dsonar.pullrequest.base=${{ github.event.workflow_run.pull_request.base.ref }} \
-Dsonar.scm.revision=${{ github.event.workflow_run.head_commit.id }} \
sonar:sonar
- name: Set final status
if: ${{ always() }}
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
run: |
mvn -B liquibase-sdk:set-commit-status \
-Dliquibase.sdk.repo="${{ github.repository }}" \
-Dliquibase.sdk.status.context="Scan Code / Sonar Scan" \
-Dliquibase.sdk.status.description="Code analysis" \
-Dliquibase.sdk.status.url="${{ job.html_url }}" \
-Dliquibase.sdk.status.commit="${{ github.event.workflow_run.head_commit.id }}" \
-Dliquibase.sdk.status.state="${{ job.status }}"