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 }}