# Checks logs, SARIF, and database bundle debug artifacts exist. name: PR Check - Debug artifact upload 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 version: - stable-20220908 - stable-20221211 - stable-20230418 - stable-v2.13.5 - stable-v2.14.6 - default - latest - nightly-latest name: Upload debug artifacts env: CODEQL_ACTION_TEST_MODE: true timeout-minutes: 45 runs-on: ${{ matrix.os }} steps: - name: Check out repository uses: actions/checkout@v4 - name: Prepare test id: prepare-test uses: ./.github/actions/prepare-test with: version: ${{ matrix.version }} - 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 id: init with: tools: ${{ steps.prepare-test.outputs.tools-url }} debug: true debug-artifact-name: my-debug-artifacts debug-database-name: my-db - uses: ./../action/.github/actions/setup-swift with: codeql-path: ${{ steps.init.outputs.codeql-path }} - name: Build code shell: bash run: ./build.sh - uses: ./../action/analyze id: analysis download-and-check-artifacts: name: Download and check debug artifacts 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: | VERSIONS="stable-20220908 stable-20221211 stable-20230418 stable-v2.13.5 stable-v2.14.6 default latest nightly-latest" LANGUAGES="cpp csharp go java javascript python" for version in $VERSIONS; do for os in ubuntu-latest macos-latest; do pushd "./my-debug-artifacts-$os-${version//./}" echo "Artifacts from version $version on $os:" for language in $LANGUAGES; do echo "- Checking $language" if [[ ! -f "$language.sarif" ]] ; then echo "Missing a SARIF file for $language" exit 1 fi if [[ ! -f "my-db-$language.zip" ]] ; then echo "Missing a database bundle for $language" exit 1 fi if [[ ! -d "$language/log" ]] ; then echo "Missing logs for $language" exit 1 fi done popd done done env: GO111MODULE: auto