PR Check - Debug artifacts after failure #4716
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Checks logs, SARIF, and database bundle debug artifacts exist | |
# when the analyze step fails. | |
name: PR Check - Debug artifacts after failure | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
on: | |
push: | |
branches: | |
- main | |
- releases/v* | |
pull_request: | |
types: | |
- opened | |
- synchronize | |
- reopened | |
- ready_for_review | |
schedule: | |
- cron: '0 5 * * *' | |
workflow_dispatch: {} | |
jobs: | |
upload-artifacts: | |
name: Upload debug artifacts after failure in analyze | |
continue-on-error: true | |
env: | |
CODEQL_ACTION_TEST_MODE: true | |
timeout-minutes: 45 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Dump GitHub event | |
run: cat "${GITHUB_EVENT_PATH}" | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Prepare test | |
id: prepare-test | |
uses: ./.github/actions/prepare-test | |
with: | |
version: linked | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ^1.13.1 | |
- uses: ./../action/init | |
with: | |
tools: ${{ steps.prepare-test.outputs.tools-url }} | |
debug: true | |
debug-artifact-name: my-debug-artifacts | |
debug-database-name: my-db | |
- name: Build code | |
shell: bash | |
run: ./build.sh | |
- uses: ./../action/analyze | |
id: analysis | |
env: | |
# Forces a failure in this step. | |
CODEQL_ACTION_EXTRA_OPTIONS: '{ "database": { "finalize": ["--invalid-option"] } }' | |
with: | |
expect-error: true | |
download-and-check-artifacts: | |
name: Download and check debug artifacts after failure in analyze | |
needs: upload-artifacts | |
timeout-minutes: 45 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download all artifacts | |
uses: actions/download-artifact@v4 | |
- name: Check expected artifacts exist | |
shell: bash | |
run: | | |
LANGUAGES="cpp csharp go java javascript python" | |
cd "./my-debug-artifacts" | |
echo "Artifacts from run:" | |
for language in $LANGUAGES; do | |
echo "- Checking $language" | |
if [[ ! -f "my-db-$language-partial.zip" ]] ; then | |
echo "Missing a partial database bundle for $language" | |
exit 1 | |
fi | |
if [[ ! -d "log" ]] ; then | |
echo "Missing database initialization logs" | |
exit 1 | |
fi | |
if [[ ! "$language" == "go" ]] && [[ ! -d "$language/log" ]] ; then | |
echo "Missing logs for $language" | |
exit 1 | |
fi | |
done | |
env: | |
GO111MODULE: auto |