summaryrefslogtreecommitdiff
path: root/.github/workflows/codeql-analysis.yaml
blob: 99b46fafdec0c7a5a63a04b2909b5506ee7483cf (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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# More info:
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning

name: "CodeQL"

on:
  push:
    branches: ["*"]
  pull_request:
    # The branches below must be a subset of the branches above
    branches: ["*"]
    paths-ignore:
      - '**/*.adoc'
      - '**/*.bash'
      - '**/*.md'
  schedule:
    # Full scan once a week
    - cron: '0 14 * * 3'

permissions:
  contents: read

jobs:
  analyze:
    permissions:
      actions: read  # for github/codeql-action/init to get workflow details
      contents: read  # for actions/checkout to fetch code
      security-events: write  # for github/codeql-action/analyze to upload SARIF results
    name: Analyze
    runs-on: ubuntu-20.04

    steps:
    - name: Checkout repository
      uses: actions/checkout@v3
      with:
        # We must fetch at least the immediate parents so that if this is
        # a pull request then we can checkout the head.
        fetch-depth: 2

    - name: Install dependencies
      run: sudo apt-get update && sudo apt-get install ninja-build elfutils libzstd-dev pkg-config libhiredis-dev

    - name: Initialize CodeQL
      uses: github/codeql-action/init@v2
      with:
        languages: cpp
        queries: +security-and-quality

    - name: Build
      run: ci/build
      env:
        RUN_TESTS: none
        CMAKE_GENERATOR: Ninja
        EXTRA_CMAKE_BUILD_FLAGS: --target ccache

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v2