| name: "CodeQL" | |
| on: | |
| push: | |
| branches: [ "master" ] | |
| pull_request: | |
| # The branches below must be a subset of the branches above | |
| branches: [ "master" ] | |
| schedule: | |
| - cron: '18 15 * * 0' | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| jobs: | |
| analyze: | |
| name: Analyze | |
| runs-on: 'ubuntu-latest' | |
| timeout-minutes: 360 | |
| permissions: | |
| actions: read | |
| contents: read | |
| security-events: write | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| language: [ 'cpp', 'java', 'javascript', 'python' ] | |
| # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ] | |
| steps: | |
| - name: Harden Runner | |
| uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 | |
| with: | |
| egress-policy: audit | |
| - name: Checkout repository | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| with: | |
| persist-credentials: false | |
| # Initializes the CodeQL tools for scanning. | |
| - name: Initialize CodeQL | |
| uses: github/codeql-action/init@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4.37.0 | |
| with: | |
| languages: ${{ matrix.language }} | |
| # CodeQL is currently crashing on files with large lists: | |
| # https://github.com/github/codeql/issues/13656 | |
| config: | | |
| paths-ignore: | |
| - research | |
| - js/test_data.* | |
| - if: matrix.language == 'cpp' | |
| name: Build CPP | |
| uses: github/codeql-action/autobuild@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4.37.0 | |
| - if: matrix.language == 'cpp' || matrix.language == 'java' | |
| name: Build Java | |
| run: | | |
| cd ${GITHUB_WORKSPACE}/java | |
| bazelisk build --spawn_strategy=local --nouse_action_cache -c opt ...:all | |
| - if: matrix.language == 'javascript' | |
| name: Build JS | |
| uses: github/codeql-action/autobuild@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4.37.0 | |
| - if: matrix.language == 'cpp' || matrix.language == 'python' | |
| name: Build Python | |
| run: | | |
| python -VV | |
| pip install "setuptools>=70.0.0" | |
| python setup.py build_ext | |
| - name: Perform CodeQL Analysis | |
| uses: github/codeql-action/analyze@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4.37.0 | |
| with: | |
| category: "/language:${{matrix.language}}" | |
| ref: "${{ github.ref != 'master' && github.ref || '/refs/heads/master' }}" | |
| sha: "${{ github.sha }}" |