diff options
Diffstat (limited to '.github/workflows/infer.yml')
-rw-r--r-- | .github/workflows/infer.yml | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/.github/workflows/infer.yml b/.github/workflows/infer.yml new file mode 100644 index 00000000..365e748b --- /dev/null +++ b/.github/workflows/infer.yml @@ -0,0 +1,49 @@ +name: Infer + +on: + - pull_request + - workflow_dispatch +jobs: + inferering: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + name: Checkout feature + with: + ref: ${{ github.event.pull_request.head.sha }} + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + java-version: 17 + distribution: temurin + cache: gradle + - name: Setup Infer + uses: srz-zumix/setup-infer@v1 + - name: Run Infer on feature + run: | + echo On commit $(git log --pretty=%s -1) + mkdir -p ciwork + infer capture -- ./gradlew clean test --no-daemon + infer analyze + cp infer-out/report.json ciwork/report-feature.json + - uses: actions/checkout@v2 + name: Checkout base + with: + ref: ${{ github.event.pull_request.base.sha }} + clean: false + - name: Run Infer on base + run: | + echo On commit $(git log --pretty=%s -1) + infer capture --reactive -- ./gradlew clean test --no-daemon + infer analyze --reactive + - name: Generate report + run: | + infer reportdiff --report-current ciwork/report-feature.json --report-previous infer-out/report.json + jq -r '.[] | select(.severity == "ERROR") | ("::error file="+.file +",line=" +(.line|tostring)+"::" + .qualifier)' <infer-out/differential/introduced.json + jq -r '.[] | select(.severity == "WARNING") | ("::warning file="+.file +",line=" +(.line|tostring)+"::" + .qualifier)' <infer-out/differential/introduced.json + fixcount=$(jq -r "length" <infer-out/differential/fixed.json) + unfixcount=$(jq -r "length" <infer-out/differential/introduced.json) + othercount=$(jq -r "length" <infer-out/differential/preexisting.json) + echo "This PR fixes $fixcount potential bug(s), introduces $unfixcount potential bug(s). (Total present in feature branch: $((unfixcount + othercount)))" >>$GITHUB_STEP_SUMMARY + [[ $unfixcount != 0 ]] && exit 1 || echo ok. |