mirror of
https://github.com/github/codeql-action.git
synced 2026-04-26 16:58:47 +00:00
a190d3876a
This allows us to set it automatically in the workflow generator, simplifying things and reducing the scope for error.
45 lines
1.6 KiB
YAML
45 lines
1.6 KiB
YAML
name: "Split workflow"
|
|
description: "Tests a split-up workflow in which we first build a database and later analyze it"
|
|
operatingSystems: ["ubuntu", "macos"]
|
|
versions: ["latest", "cached", "nightly-latest"] # This feature is not compatible with old CLIs
|
|
steps:
|
|
- uses: ./../action/init
|
|
with:
|
|
config-file: ".github/codeql/codeql-config-packaging3.yml"
|
|
packs: +dsp-testing/codeql-pack1@1.0.0
|
|
languages: javascript
|
|
tools: ${{ steps.prepare-test.outputs.tools-url }}
|
|
- name: Build code
|
|
shell: bash
|
|
run: ./build.sh
|
|
- uses: ./../action/analyze
|
|
with:
|
|
skip-queries: true
|
|
output: "${{ runner.temp }}/results"
|
|
|
|
- name: Assert No Results
|
|
shell: bash
|
|
run: |
|
|
if [ "$(ls -A $RUNNER_TEMP/results)" ]; then
|
|
echo "Expected results directory to be empty after skipping query execution!"
|
|
exit 1
|
|
fi
|
|
- uses: ./../action/analyze
|
|
with:
|
|
output: "${{ runner.temp }}/results"
|
|
upload-database: false
|
|
- name: Assert Results
|
|
shell: bash
|
|
run: |
|
|
cd "$RUNNER_TEMP/results"
|
|
# We should have 4 hits from these rules
|
|
EXPECTED_RULES="javascript/example/empty-or-one-block javascript/example/empty-or-one-block javascript/example/other-query-block javascript/example/two-block"
|
|
|
|
# use tr to replace newlines with spaces and xargs to trim leading and trailing whitespace
|
|
RULES="$(cat javascript.sarif | jq -r '.runs[0].results[].ruleId' | sort | tr "\n\r" " " | xargs)"
|
|
echo "Found matching rules '$RULES'"
|
|
if [ "$RULES" != "$EXPECTED_RULES" ]; then
|
|
echo "Did not match expected rules '$EXPECTED_RULES'."
|
|
exit 1
|
|
fi
|