name: "Diagnostic export without database" description: "Tests that temporary diagnostics are correctly included in the failed SARIF." versions: # Overridden by the FF in the `init` step below. - linked installNode: true env: # Allow the failed SARIF file to be generated. CODEQL_ACTION_SKIP_GENERATE_FAILED_SARIF: false # But don't actually upload it. CODEQL_ACTION_SKIP_SARIF_UPLOAD: true # Mark telemetry for this workflow so it can be treated separately. CODEQL_ACTION_TESTING_ENVIRONMENT: codeql-action-pr-checks steps: # We deliberately need to make this step fail before the database is initialised, but after # some diagnostic has been produced. The simplest way to do that right now is to: # # - Produce a diagnostic before the db is initialised by forcing the use of a nightly release # with the `CODEQL_ACTION_FORCE_NIGHTLY` feature flag. # - Cause `init` to abort because we are attempting to analyse Swift on a non-macOS runner. # - name: Initialise failing analysis id: init uses: ./../action/init continue-on-error: true env: CODEQL_ACTION_FORCE_NIGHTLY: true with: languages: swift tools: ${{ steps.prepare-test.outputs.tools-url }} - name: Analyze uses: ./analyze # In a real workflow, this step wouldn't run. Since we used `continue-on-error` # above, we manually disable it with an `if` condition. Having this step is required # for the init post-action because it checks the workflow definition for e.g. the # `category` input. Without this step, that part of the init post-action would fail. if: false with: category: "/test-codeql-version:${{ matrix.version }}" - name: Check diagnostics appear on disk env: DIAGNOSTICS_DIR: "${{ runner.temp }}/codeql-action-temp-diagnostics/" run: | cd ../action npx tsx ./pr-checks/diagnostics-without-db.ts validationJobs: diagnostics-without-db-validation: checkout: true installNode: true steps: - name: Download workflow artifact uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2 with: pattern: test-mode-sarif-* path: sarif - name: List artifact contents run: ls -laR ./sarif - name: Check diagnostics appear in SARIF env: SARIF_PATH: "./sarif/codeql-failed-run.sarif" DIAGNOSTIC_ID: "codeql-action/forced-nightly-cli" DIAGNOSTIC_NAME: "A nightly release of CodeQL was used" EXPECTED_LOCATIONS: "0" EXPECTED_MESSAGE: | GitHub configured this analysis to use a nightly release of CodeQL to allow you to preview changes from an upcoming release. run: npx tsx ./pr-checks/check-diagnostics.ts