Skip to content

Enable commented out test #10519

Enable commented out test

Enable commented out test #10519

Workflow file for this run

# This workflow is used to override the set of languages analyzed,
# and to provide custom queries or build logic.
name: "CodeQL Advanced"
on:
push:
branches:
- 'main'
- 'releases/*'
- 'staging/*'
- 'experimental/*'
- 'features/*'
pull_request:
branches:
- 'main'
- 'releases/*'
- 'staging/*'
- 'experimental/*'
- 'features/*'
merge_group:
schedule:
- cron: '37 9 * * 2'
jobs:
analyze:
# Skip merge_group to avoid duplicate runs (code already scanned on pull_request)
# See https://github.com/github/codeql-action/issues/1537
if: ${{ github.event_name != 'merge_group' }}
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: 'ubuntu-latest'
permissions:
packages: read # required to fetch internal or private CodeQL packs
security-events: write
# read permissions below are only required for workflows in private repositories
actions: read
contents: read
strategy:
fail-fast: false
matrix:
include:
# 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.
# For 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
- language: python
build-mode: none # Consider setting this to manual and providing a build command to get more accurate scanning
# FIXME: enable code scanning for C++
# - language: c-cpp
# build-mode: manual # Consider setting this to manual and providing a build command to get more accurate scanning
steps:
- name: Checkout repository
uses: actions/checkout@v6
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
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.
# 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.
- 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:'
exit 1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
with:
category: "/language:${{matrix.language}}"
# CodeQL status is not reported in merge queues. See https://github.com/github/codeql-action/issues/1537.
# Workaround: verify CodeQL passed via API keyed by pull_request.number so the PR gets a required status.
check_codeql_status:
name: Check CodeQL Status
needs: analyze
permissions:
contents: read
checks: read
pull-requests: read
runs-on: ubuntu-latest
if: ${{ github.event_name == 'pull_request' }}
steps:
- name: Authenticate gh CLI
run: |
gh auth login --with-token <<< "${{ secrets.GITHUB_TOKEN }}"
- name: Check CodeQL Status
run: |
# Query by pull_request.number so the check is tied to the PR (required for merge-queue workaround).
# Find the "Analyze (language)" check run (the one that completes); filterBy "CodeQL" returns a different check that stays QUEUED.
pr_number="${{ github.event.pull_request.number }}"
owner="${{ github.event.repository.owner.login }}"
repo="${{ github.event.repository.name }}"
max_attempts=24
attempt=0
conclusion=""
while [ $attempt -lt $max_attempts ]; do
# Inline pr_number in the query so we only pass string variables (gh -f sends all as strings otherwise).
response=$(gh api graphql -f query="query(\$owner: String!, \$repo: String!) {
repository(owner: \$owner, name: \$repo) {
pullRequest(number: $pr_number) {
commits(last: 1) {
nodes {
commit {
checkSuites(first: 20) {
nodes {
checkRuns(first: 20) {
nodes {
name
status
conclusion
}
}
}
}
}
}
}
}
}
}" -f owner="$owner" -f repo="$repo")
# Find the check run whose name starts with "Analyze (" (the CodeQL matrix job)
conclusion=$(echo "$response" | jq -r '
.data.repository.pullRequest.commits.nodes[0].commit.checkSuites.nodes[]
| .checkRuns.nodes[] | select(.name | startswith("Analyze (")) | .conclusion
' | head -1)
status=$(echo "$response" | jq -r '
.data.repository.pullRequest.commits.nodes[0].commit.checkSuites.nodes[]
| .checkRuns.nodes[] | select(.name | startswith("Analyze (")) | .status
' | head -1)
if [ "$conclusion" != "null" ] && [ -n "$conclusion" ]; then
break
fi
attempt=$((attempt + 1))
echo "CodeQL check (PR #$pr_number) status=$status conclusion=$conclusion (attempt $attempt/$max_attempts), waiting 10s..."
sleep 10
done
if [ "$conclusion" != "SUCCESS" ]; then
echo "$response" | jq .
echo "CodeQL check failed (conclusion=$conclusion)"
exit 1
fi
echo "CodeQL check passed."