summaryrefslogtreecommitdiffstats
path: root/.github/workflows/codeql-analysis.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/codeql-analysis.yml')
-rw-r--r--.github/workflows/codeql-analysis.yml185
1 files changed, 99 insertions, 86 deletions
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 2db775f..0f90de2 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -14,116 +14,129 @@ name: "CodeQL"
on:
workflow_dispatch:
branches: [ master, stable* ]
- pull_request_target:
- branches: [ master, stable* ]
-
-permissions:
- contents: read
+ push:
+ branches: [ "master", "stable*" ]
+ pull_request:
+ branches: [ "master", "stable*" ]
+ schedule:
+ - cron: '41 2 * * 2'
jobs:
analyze:
+ name: Analyze (${{ matrix.language }})
+ # Runner size impacts CodeQL analysis time. To learn more, please see:
+ # - https://gh.io/recommended-hardware-resources-for-running-codeql
+ # - https://gh.io/supported-runners-and-hardware-resources
+ # - https://gh.io/using-larger-runners (GitHub.com only)
+ # Consider using larger runners or machines with greater resources for possible analysis time improvements.
+ runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
+ timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
+ # required for all workflows
security-events: write
+
+ # only required for workflows in private repositories
actions: read
contents: read
- name: Analyze
- runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
- language: [ 'cpp' ]
- # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
- # Learn more:
- # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
-
+ include:
+ - language: c-cpp
+ build-mode: manual
+ # CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
+ # Use `c-cpp` to analyze code written in C, C++ or both
+ # Use 'java-kotlin' to analyze code written in Java, Kotlin or both
+ # Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
+ # To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
+ # see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
+ # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
+ # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- - uses: suzuki-shunsuke/get-pr-action@v0.1.0
- id: pr
- - uses: actions/checkout@v4
- with:
- ref: ${{steps.pr.outputs.merge_commit_sha}}
+ - name: Checkout repository
+ uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
+ build-mode: ${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
- # queries: ./path/to/local/query, your-org/your-repo/queries@main
- # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
- # If this step fails, then you should remove it and run the build manually (see below)
- # - name: Autobuild
- # uses: github/codeql-action/autobuild@v2
+ # For more details on CodeQL's query packs, refer to: 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.
# ℹī¸ Command-line programs to run using the OS shell.
- # 📚 https://git.io/JvXDl
-
- # ✏ī¸ If the Autobuild fails above, remove it and uncomment the following three lines
- # and modify them (or add more) to build your code if your project
- # uses a compiled language
-
- - run: |
- sudo apt update
- sudo apt install \
- libxrandr-dev \
- libxinerama-dev \
- libusb-1.0-0-dev \
- xserver-xorg-dev \
- libswscale-dev \
- libswresample-dev \
- libavutil-dev \
- libavcodec-dev \
- libcups2-dev \
- libpulse-dev \
- libasound2-dev \
- libpcsclite-dev \
- xsltproc \
- libxcb-cursor-dev \
- libxcursor-dev \
- libcairo2-dev \
- libfaac-dev \
- libfaad-dev \
- libjpeg-dev \
- libgsm1-dev \
- ninja-build \
- libxfixes-dev \
- libxkbcommon-dev \
- libwayland-dev \
- libpam0g-dev \
- libxdamage-dev \
- libxcb-damage0-dev \
- ccache \
- libxtst-dev \
- libfuse3-dev \
- libsystemd-dev \
- libcairo2-dev \
- libsoxr-dev \
- libsdl2-dev \
- docbook-xsl \
- libkrb5-dev \
- libcjson-dev \
- libpkcs11-helper1-dev \
- libsdl2-ttf-dev \
- libsdl2-image-dev \
- libwebkit2gtk-4.0-dev \
- clang \
- libopus-dev \
- libwebp-dev \
- libpng-dev \
- libjpeg-dev \
- liburiparser-dev
- mkdir ci-build
- cd ci-build
- export CC=/usr/bin/clang
- export CXX=/usr/bin/clang++
- export CFLAGS="-Weverything"
- export CXXFLAGS="-Weverything"
- cmake -GNinja ../ci/cmake-preloads/config-linux-all.txt ..
- cmake --build .
+ # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
+ - if: matrix.build-mode == 'manual'
+ run: |
+ sudo apt update
+ sudo apt install \
+ libxrandr-dev \
+ libxinerama-dev \
+ libusb-1.0-0-dev \
+ xserver-xorg-dev \
+ libswscale-dev \
+ libswresample-dev \
+ libavutil-dev \
+ libavcodec-dev \
+ libcups2-dev \
+ libpulse-dev \
+ libasound2-dev \
+ libpcsclite-dev \
+ xsltproc \
+ libxcb-cursor-dev \
+ libxcursor-dev \
+ libcairo2-dev \
+ libfaac-dev \
+ libfaad-dev \
+ libjpeg-dev \
+ libgsm1-dev \
+ ninja-build \
+ libxfixes-dev \
+ libxkbcommon-dev \
+ libwayland-dev \
+ libpam0g-dev \
+ libxdamage-dev \
+ libxcb-damage0-dev \
+ ccache \
+ libxtst-dev \
+ libfuse3-dev \
+ libsystemd-dev \
+ libcairo2-dev \
+ libsoxr-dev \
+ libsdl2-dev \
+ docbook-xsl \
+ libkrb5-dev \
+ libcjson-dev \
+ libpkcs11-helper1-dev \
+ libsdl2-ttf-dev \
+ libsdl2-image-dev \
+ libwebkit2gtk-4.0-dev \
+ clang \
+ libopus-dev \
+ libwebp-dev \
+ libpng-dev \
+ libjpeg-dev \
+ liburiparser-dev
+ mkdir ci-build
+ cd ci-build
+ export CC=/usr/bin/clang
+ export CXX=/usr/bin/clang++
+ export CFLAGS="-Weverything"
+ export CXXFLAGS="-Weverything"
+ cmake -GNinja ../ci/cmake-preloads/config-linux-all.txt ..
+ cmake --build .
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
+ with:
+ category: "/language:${{matrix.language}}"