| # Copyright 2026 The Apache Software Foundation | |
| # | |
| # Licensed to the Apache Software Foundation (ASF) under one | |
| # or more contributor license agreements. See the NOTICE file | |
| # distributed with this work for additional information | |
| # regarding copyright ownership. The ASF licenses this file | |
| # to you under the Apache License, Version 2.0 (the | |
| # "License"); you may not use this file except in compliance | |
| # with the License. You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| # This was adapted from the GitHub-generated template. | |
| # See https://docs.github.com/en/code-security/how-tos/find-and-fix-code-vulnerabilities/configure-code-scanning/configuring-default-setup-for-code-scanning | |
| name: "CodeQL Advanced" | |
| on: | |
| push: | |
| branches: [ "trunk", "branch-*" ] | |
| pull_request: | |
| branches: [ "trunk", "branch-*" ] | |
| paths: | |
| - '.github/**' | |
| schedule: | |
| - cron: '22 4 * * 4' | |
| jobs: | |
| analyze: | |
| name: Analyze (${{ matrix.language }}) | |
| # Runner size impacts CodeQL analysis time. See: | |
| # - https://gh.io/recommended-hardware-resources-for-running-codeql | |
| runs-on: ubuntu-24.04 | |
| permissions: | |
| # required for all workflows | |
| security-events: write | |
| # required to fetch internal or private CodeQL packs | |
| packages: read | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # Initially only enabling scans for github actions | |
| - language: actions | |
| build-mode: none | |
| # We should consider enabling these in the future: | |
| # - language: c-cpp | |
| # build-mode: autobuild | |
| # - language: java-kotlin | |
| # build-mode: none # This mode only analyzes Java. Set to 'autobuild' or 'manual' to include Kotlin. | |
| # - language: javascript-typescript | |
| # build-mode: none | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v7 | |
| # Add any setup steps before running the `github/codeql-action/init` action. | |
| # This includes steps like installing compilers or runtimes (`actions/setup-node` | |
| # or others). This is typically only required for manual builds. | |
| # - name: Setup runtime (example) | |
| # uses: actions/setup-example@v1 | |
| # Initializes the CodeQL tools for scanning. | |
| - name: Initialize CodeQL | |
| uses: github/codeql-action/init@v4 | |
| with: | |
| languages: ${{ matrix.language }} | |
| build-mode: ${{ matrix.build-mode }} | |
| # Query details can be added here or in a config file. | |
| # For more details on CodeQL's query packs, see: | |
| # https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs | |
| # queries: security-extended,security-and-quality | |
| # If the analyze step fails for one of the languages you are analyzing with | |
| # "We were unable to automatically build your code", modify the matrix above | |
| # to set the build mode to "manual" for that language. Then modify this step | |
| # to build your code. | |
| # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun | |
| - name: Run manual build steps | |
| if: matrix.build-mode == 'manual' | |
| shell: bash | |
| run: | | |
| echo 'If you are using a "manual" build mode for one or more of the' \ | |
| 'languages you are analyzing, replace this with the commands to build' \ | |
| 'your code, for example:' | |
| echo ' make bootstrap' | |
| echo ' make release' | |
| exit 1 | |
| - name: Perform CodeQL Analysis | |
| uses: github/codeql-action/analyze@v4 | |
| with: | |
| category: "/language:${{matrix.language}}" |