| name: Coverity Scan | |
| on: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: '42 0 * * *' | |
| jobs: | |
| secrets: | |
| name: Secrets check | |
| runs-on: ubuntu-latest | |
| env: | |
| COVERITY_SCAN_TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} | |
| outputs: | |
| present: ${{ steps.check.outputs.present }} | |
| steps: | |
| - name: Check secret presence | |
| id: check | |
| if: env.COVERITY_SCAN_TOKEN | |
| run: | | |
| echo "present=true" >> $GITHUB_OUTPUT | |
| submit: | |
| name: Submit | |
| runs-on: ubuntu-latest | |
| needs: secrets | |
| if: needs.secrets.outputs.present | |
| steps: | |
| - name: Check out code | |
| uses: actions/checkout@v4 | |
| - name: Download Coverity Scan | |
| run: | | |
| curl --form token=${{ secrets.COVERITY_SCAN_TOKEN }} \ | |
| --form project=${{ github.repository }} \ | |
| --output coverity.tar.gz \ | |
| https://scan.coverity.com/download/cxx/linux64 | |
| mkdir -p /opt/coverity | |
| sudo tar xvzf coverity.tar.gz --strip 1 --directory /opt/coverity | |
| - name: Build via Coverity Scan | |
| run: | | |
| make -C src bin/deps | |
| /opt/coverity/bin/cov-build --dir cov-int make -C src bin/blib.a | |
| - name: Create submission | |
| run : | | |
| tar cvzf cov-int.tar.gz cov-int | |
| - name: Submit to Coverity Scan | |
| run: | | |
| curl --form token=${{ secrets.COVERITY_SCAN_TOKEN }} \ | |
| --form email=${{ secrets.COVERITY_SCAN_EMAIL }} \ | |
| --form file=@cov-int.tar.gz \ | |
| --form version=${{ github.sha }} \ | |
| --form description=${{ github.ref }} \ | |
| https://scan.coverity.com/builds?project=${{ github.repository }} |