mirror of
https://github.com/github/codeql-action.git
synced 2025-12-27 01:30:10 +08:00
105 lines
3.2 KiB
YAML
105 lines
3.2 KiB
YAML
# Checks logs, SARIF, and database bundle debug artifacts exist
|
|
# when the analyze step fails.
|
|
name: PR Check - Debug artifacts after failure
|
|
env:
|
|
# Disable Kotlin analysis while it's incompatible with Kotlin 1.8, until we find a
|
|
# workaround for our PR checks.
|
|
CODEQL_EXTRACTOR_JAVA_AGENT_DISABLE_KOTLIN: true
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- releases/v2
|
|
pull_request:
|
|
types:
|
|
- opened
|
|
- synchronize
|
|
- reopened
|
|
- ready_for_review
|
|
workflow_dispatch: {}
|
|
jobs:
|
|
upload-artifacts:
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest]
|
|
name: Upload debug artifacts after failure in analyze
|
|
continue-on-error: true
|
|
env:
|
|
CODEQL_ACTION_TEST_MODE: true
|
|
timeout-minutes: 45
|
|
runs-on: ${{ matrix.os }}
|
|
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: latest
|
|
- uses: actions/setup-go@v4
|
|
with:
|
|
go-version: ^1.13.1
|
|
- name: Setup Python on MacOS
|
|
uses: actions/setup-python@v4
|
|
if: |
|
|
matrix.os == 'macos-latest' && (
|
|
matrix.version == 'stable-20220908' ||
|
|
matrix.version == 'stable-20221211' ||
|
|
matrix.version == 'stable-20230418' ||
|
|
matrix.version == 'stable-v2.13.5' ||
|
|
matrix.version == 'stable-v2.14.6')
|
|
with:
|
|
python-version: '3.11'
|
|
- 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
|
|
with:
|
|
expect-error: true
|
|
ram: 1
|
|
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@v3
|
|
- name: Check expected artifacts exist
|
|
shell: bash
|
|
run: |
|
|
OPERATING_SYSTEMS="ubuntu-latest macos-latest"
|
|
LANGUAGES="cpp csharp go java javascript python"
|
|
for os in $OPERATING_SYSTEMS; do
|
|
pushd "./my-debug-artifacts-$os"
|
|
echo "Artifacts from run on $os:"
|
|
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
|
|
popd
|
|
done
|
|
env:
|
|
GO111MODULE: auto
|