summaryrefslogtreecommitdiff
path: root/examples/redis-unstable/.github/workflows/coverity.yml
blob: 0237c8739fb6b92096dacd6ca79553a2a77a3c0f (plain)
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
# Creates and uploads a Coverity build on a schedule
name: Coverity Scan
on:
  schedule:
  # Run once daily, since below 500k LOC can have 21 builds per week, per https://scan.coverity.com/faq#frequency
  - cron: '0 0 * * *'
  # Support manual execution
  workflow_dispatch:
jobs:
  coverity:
    if: github.repository == 'redis/redis'
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@main
    - name: Download and extract the Coverity Build Tool
      run: |
          wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=${{ secrets.COVERITY_SCAN_TOKEN }}&project=redis-unstable" -O cov-analysis-linux64.tar.gz
          mkdir cov-analysis-linux64
          tar xzf cov-analysis-linux64.tar.gz --strip 1 -C cov-analysis-linux64
    - name: Install Redis dependencies
      run: sudo apt install -y gcc tcl8.6 tclx procps libssl-dev
    - name: Build with cov-build
      run: cov-analysis-linux64/bin/cov-build --dir cov-int make
    - name: Upload the result
      run: |
          tar czvf cov-int.tgz cov-int
          curl \
            --form project=redis-unstable \
            --form email=${{ secrets.COVERITY_SCAN_EMAIL }} \
            --form token=${{ secrets.COVERITY_SCAN_TOKEN }} \
            --form file=@cov-int.tgz \
            https://scan.coverity.com/builds