aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/coverity.yml
blob: 87e2cb14538bcf85201d9c55f73654d3bbea3623 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
name: Coverity
on:
  schedule:
    - cron: '10 0 * * *'  # Run every day at 00:10
  workflow_dispatch:

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Install dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y autoconf automake build-essential cmake gettext libtool-bin locales ninja-build pkg-config unzip

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

      - name: Build dependencies
        run: make deps

      - name: Build/scan neovim
        run: |
          env PATH=$(pwd)/cov-scan/bin:$PATH cov-build --dir cov-int make

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