mirror of
https://github.com/neovim/neovim.git
synced 2026-07-23 17:32:51 +00:00
Problem: If you have this repo forked, the workflow for Coverity Scan creates a lot of spammy emails about that workflow failing. Solution: Check for the presence of `COVERITY_SCAN_TOKEN` and `COVERITY_SCAN_EMAIL` at the very start of `.github/workflows/coverity.yml`, skip the rest of the workflow if they are absent. Unfortunately, Github Actions don't offer a straightforward way of doing that, so using [this workaround](https://github.com/orgs/community/discussions/25280)).
62 lines
1.8 KiB
YAML
62 lines
1.8 KiB
YAML
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 }}
|