name: CodeQL SAST on: push: branches: [main] pull_request: branches: [main] permissions: contents: read # One analysis per pull request and one per pushed branch. A newer push to main # cancels the analysis of an older main commit; only the newest commit's # results matter for main, and a merge-heavy day otherwise queues one 40-100 # minute analysis per merge ahead of every pull request run. concurrency: group: codeql-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: analyze: runs-on: ubuntu-latest # CodeQL needs security-events: write to upload results; scoped to this job so # the workflow's top-level token stays read-only (Scorecard TokenPermissions). permissions: security-events: write actions: read contents: read steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Install build dependencies run: sudo apt-get update && sudo apt-get install -y zlib1g-dev - name: Initialize CodeQL uses: github/codeql-action/init@1c5b675653bb5c22dbe9b12b556ec555138e09fd # v4.38.1 with: languages: c-cpp build-mode: manual - name: Build for CodeQL analysis run: scripts/build.sh - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@1c5b675653bb5c22dbe9b12b556ec555138e09fd # v4.38.1 with: category: "/language:c-cpp"