[ci] Schedule Coverity Scan run via GitHub Actions

Trigger the daily Coverity Scan submission via a GitHub Actions
schedule (or via a manual workflow run), rather than relying on an
external process pushing to the "coverity_scan" branch.

Since the scheduled workflow will run even on forks of the repository,
add a check to cause the submission to be skipped if the relevant
secret is not configured.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2026-02-13 23:37:46 +00:00
parent 2161e976cd
commit 1d23d5a037
+27 -4
View File
@@ -1,17 +1,37 @@
name: Coverity Scan name: Coverity Scan
on: on:
push: workflow_dispatch:
branches: schedule:
- coverity_scan - cron: '42 0 * * *'
jobs: 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: submit:
name: Submit name: Submit
runs-on: ubuntu-24.04 runs-on: ubuntu-latest
needs: secrets
if: needs.secrets.outputs.present
steps: steps:
- name: Check out code - name: Check out code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Download Coverity Scan - name: Download Coverity Scan
run: | run: |
curl --form token=${{ secrets.COVERITY_SCAN_TOKEN }} \ curl --form token=${{ secrets.COVERITY_SCAN_TOKEN }} \
@@ -20,13 +40,16 @@ jobs:
https://scan.coverity.com/download/cxx/linux64 https://scan.coverity.com/download/cxx/linux64
mkdir -p /opt/coverity mkdir -p /opt/coverity
sudo tar xvzf coverity.tar.gz --strip 1 --directory /opt/coverity sudo tar xvzf coverity.tar.gz --strip 1 --directory /opt/coverity
- name: Build via Coverity Scan - name: Build via Coverity Scan
run: | run: |
make -C src bin/deps make -C src bin/deps
/opt/coverity/bin/cov-build --dir cov-int make -C src bin/blib.a /opt/coverity/bin/cov-build --dir cov-int make -C src bin/blib.a
- name: Create submission - name: Create submission
run : | run : |
tar cvzf cov-int.tar.gz cov-int tar cvzf cov-int.tar.gz cov-int
- name: Submit to Coverity Scan - name: Submit to Coverity Scan
run: | run: |
curl --form token=${{ secrets.COVERITY_SCAN_TOKEN }} \ curl --form token=${{ secrets.COVERITY_SCAN_TOKEN }} \