name: coverity on: schedule: - cron: '10 0 * * *' # Run every day at 00:10 workflow_dispatch: permissions: contents: read jobs: scan: runs-on: ubuntu-latest steps: - name: Check for the Coverity Scan token env: TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} EMAIL: ${{ secrets.COVERITY_SCAN_EMAIL }} run: | if [[ -n "$TOKEN" && -n "EMAIL" ]]; then echo "have_coverity_token=yes" >> $GITHUB_ENV fi - if: env.have_coverity_token uses: actions/checkout@v7 with: persist-credentials: false - if: env.have_coverity_token uses: ./.github/actions/setup - if: env.have_coverity_token name: Download Coverity run: | wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=neovim%2Fneovim" -O coverity_tool.tgz mkdir cov-scan tar ax -f coverity_tool.tgz --strip-components=1 -C cov-scan env: TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} - if: env.have_coverity_token name: Build dependencies run: make deps - if: env.have_coverity_token name: Build/scan neovim run: | env PATH=$(pwd)/cov-scan/bin:$PATH cov-build --dir cov-int make - if: env.have_coverity_token name: Submit results run: | tar zcf cov-scan.tgz cov-int curl --form token=$TOKEN \ --form email=$EMAIL \ --form file=@cov-scan.tgz \ --form version="$(git rev-parse HEAD)" \ --form description="Daily GHA scan" \ 'https://scan.coverity.com/builds?project=neovim%2Fneovim' env: TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} EMAIL: ${{ secrets.COVERITY_SCAN_EMAIL }}