| --- |
| # vi: ts=2 sw=2 et: |
| # SPDX-License-Identifier: LGPL-2.1-or-later |
| # |
| name: Coverity |
| |
| on: |
| schedule: |
| # Run Coverity daily at midnight |
| - cron: '0 0 * * *' |
| |
| permissions: |
| contents: read |
| |
| jobs: |
| build: |
| runs-on: ubuntu-20.04 |
| if: github.repository == 'systemd/systemd' |
| env: |
| COVERITY_SCAN_BRANCH_PATTERN: "${{ github.ref}}" |
| COVERITY_SCAN_NOTIFICATION_EMAIL: "" |
| COVERITY_SCAN_PROJECT_NAME: "${{ github.repository }}" |
| # Set in repo settings -> secrets -> repository secrets |
| COVERITY_SCAN_TOKEN: "${{ secrets.COVERITY_SCAN_TOKEN }}" |
| CURRENT_REF: "${{ github.ref }}" |
| steps: |
| - name: Repository checkout |
| uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 |
| # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable |
| - name: Set the $COVERITY_SCAN_NOTIFICATION_EMAIL env variable |
| run: echo "COVERITY_SCAN_NOTIFICATION_EMAIL=$(git log -1 ${{ github.sha }} --pretty=\"%aE\")" >> "$GITHUB_ENV" |
| - name: Install Coverity tools |
| run: tools/get-coverity.sh |
| # Reuse the setup phase of the unit test script to avoid code duplication |
| - name: Install build dependencies |
| run: sudo -E .github/workflows/unit_tests.sh SETUP |
| # Preconfigure with meson to prevent Coverity from capturing meson metadata |
| - name: Preconfigure the build directory |
| run: meson cov-build -Dman=false |
| - name: Build |
| run: tools/coverity.sh build |
| - name: Upload the results |
| run: tools/coverity.sh upload |