Skip to content

CodeQL

CodeQL #542

Workflow file for this run

# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
# push:
# branches: ["master", "feat/ci"]
# pull_request:
# The branches below must be a subset of the branches above
# branches: ["master"]
schedule:
- cron: "43 14 * * *"
workflow_dispatch:
jobs:
analyze:
name: Analyze
# 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
# Consider using larger runners for possible analysis time improvements.
runs-on: "ubuntu-latest"
timeout-minutes: 360
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: ["cpp"]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ]
# Use only 'java' to analyze code written in Java, Kotlin or both
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
env:
REPO_SELF: ${{ vars.REPO_SELF }}
OFW_PATH: "applications_user/subbrute"
RELATIVE_PATH: "applications/external/subbrute"
CURRENT_VERSION: ${{ vars.RELEASE_VERSION }}
RELEASE_VERSION: ${{ vars.RELEASE_VERSION }}
TOKEN: ${{ secrets.DEPENDABOT }}
REF_NAME: ${{ github.ref_name }}
steps:
- name: Checkout Firmware Files
uses: actions/checkout@v4
with:
repository: "${{ vars.REPO_UNLEASHED }}"
clean: "true"
submodules: "true"
ref: "dev"
fetch-depth: "0"
- name: Checkout Repo Files
uses: actions/checkout@v4
with:
repository: "${{ vars.REPO_SELF }}"
clean: "true"
submodules: "true"
path: "${{ env.OFW_PATH }}"
fetch-depth: "0"
- name: Remove other apps
shell: pwsh
if: ${{ success() }}
# rm to remove problem FAP which includes non-existent files
run: |
Remove-Item -Force -Recurse ./applications/debug -ErrorAction SilentlyContinue
Remove-Item -Force -Recurse ./applications/examples -ErrorAction SilentlyContinue
- name: Set refname
env:
REF_NAME: ${{ env.REF_NAME }}
shell: pwsh
run: |
$ReleaseVersion = ([string]::IsNullOrWhitespace($env:REF_NAME) ? 'dev' : $env:REF_NAME)
Write-Output ('REF_NAME={0}' -f $ReleaseVersion) >> $env:GITHUB_ENV
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
setup-python-dependencies: true
#debug: true
# 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.
# 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
# - name: Restore cached FW
# id: cache-fw-restore
# uses: actions/cache/restore@v3
# with:
# path: |
# ./build
# ./dist
# ./firmware
# key: ${{ runner.os }}-fw
- name: Build Firmware
shell: bash
if: ${{ success() }}
env:
FBT_NO_SYNC: 0
DIST_SUFFIX: "codeql"
WORKFLOW_BRANCH_OR_TAG: release-cfw
run: |
./fbt COMPACT=1 DEBUG=0 FBT_NO_SYNC=${{ env.FBT_NO_SYNC }}
- name: Build FAPs
shell: bash
if: ${{ success() }}
env:
FBT_NO_SYNC: 0
DIST_SUFFIX: "codeql"
WORKFLOW_BRANCH_OR_TAG: release-cfw
# rm to remove problem FAP which includes non-existent files
run: |
./fbt COMPACT=1 DEBUG=0 FBT_NO_SYNC=${{ env.FBT_NO_SYNC }} fap_dist
# - name: Save cached FW
# id: cache-primes-save
# uses: actions/cache/save@v3
# with:
# path: |
# ./build
# ./dist
# ./firmware
# key: ${{ steps.cache-fw-restore.outputs.cache-primary-key }}
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
# If this step fails, then you should remove it and run the build manually (see below)
#- name: Autobuild
# run: |
# echo "Run, Build Application using script"
# ls -lha
# ./fbt
# uses: github/codeql-action/autobuild@v2
- name: Resolve CodeQL Build Env
uses: github/codeql-action/resolve-environment@v3
with:
language: ${{ matrix.language }}
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
env:
REF_NAME: ${{ env.REF_NAME }}
CHECKOUT_PATH: ${{ env.OFW_PATH }}
with:
category: "/language:${{matrix.language}}"
token: ${{ secrets.DEPENDABOT }}
# Must be used only with sha
#ref: ${{ env.REF_NAME }}
#sha: ${{ github.sha }}
output: "a${{ env.CHECKOUT_PATH }}/.github/results.sarif"
check_name: "_"
upload-database: false
upload: "failure-only"
checkout_path: "${{ github.workspace }}/${{ env.CHECKOUT_PATH }}"
- name: Upload CodeQL SARIF
uses: github/codeql-action/upload-sarif@v3
env:
REF_NAME: ${{ env.REF_NAME }}
CHECKOUT_PATH: ${{ env.OFW_PATH }}
with:
category: "/language:${{matrix.language}}"
#token: ${{ secrets.DEPENDABOT }}
# Must be used only with sha
#ref: ${{ env.REF_NAME }}
#sha: ${{ github.sha }}
sarif_file: "a${{ env.CHECKOUT_PATH }}/.github/results.sarif"
checkout_path: "${{ github.workspace }}/${{ env.CHECKOUT_PATH }}"