name: Detekt on: - pull_request - push permissions: {} jobs: detektering: runs-on: ubuntu-latest if: "!contains(github.event.head_commit.message, '[no infer]')" steps: - uses: actions/checkout@v3 name: Checkout feature - name: Set up JDK 17 uses: actions/setup-java@v3 with: java-version: 17 distribution: temurin cache: gradle - name: Set up gradle cache uses: gradle/gradle-build-action@v2 - name: Run detekt run: | ./gradlew :detektMain --stacktrace - name: Generate report run: | jq -r '.runs[].results[]|select(.level != "error")|{"message":.message.text, "locations":.locations[].physicalLocation}|("::warning file="+(.locations.artifactLocation.uri|sub("^'"$(readlink -f .)"'"; ""))+",line="+(.locations.region.startLine|tostring)+",endLine="+(.locations.region.endLine|tostring)+",col="+(.locations.region.startColumn|tostring)+",endColumn="+(.locations.region.endColumn|tostring)+"::"+.message)' <build/reports/detekt/main.sarif jq -r '.runs[].results[]|select(.level == "error")|{"message":.message.text, "locations":.locations[].physicalLocation}|("::error file="+(.locations.artifactLocation.uri|sub("^'"$(readlink -f .)"'"; ""))+",line="+(.locations.region.startLine|tostring)+",endLine="+(.locations.region.endLine|tostring)+",col="+(.locations.region.startColumn|tostring)+",endColumn="+(.locations.region.endColumn|tostring)+"::"+.message)' <build/reports/detekt/main.sarif bugcount=$(jq -r '[.runs[].results[]] | length ' <build/reports/detekt/main.sarif) echo "> This PR introduces **$bugcount** potential bug(s)." >>$GITHUB_STEP_SUMMARY echo >>$GITHUB_STEP_SUMMARY cat <build/reports/detekt/main.md >>$GITHUB_STEP_SUMMARY [[ $bugcount != 0 ]] && exit 1 || echo ok.