name: "Split workflow" description: "Tests a split-up workflow in which we first build a database and later analyze it" versions: ["nightly-20210831"] # This CLI version is known to work with package used in this test os: ["ubuntu-latest", "macos-latest"] steps: - uses: ./../action/init with: config-file: ".github/codeql/codeql-config-packaging3.yml" packs: +dsp-testing/codeql-pack1@0.1.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" env: TEST_MODE: true - 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" env: TEST_MODE: true - name: Assert Results shell: bash run: | cd "$RUNNER_TEMP/results" # We should have 3 hits from these rules EXPECTED_RULES="javascript/example/empty-or-one-block javascript/example/empty-or-one-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" " " | xargs)" echo "Found matching rules '$RULES'" if [ "$RULES" != "$EXPECTED_RULES" ]; then echo "Did not match expected rules '$EXPECTED_RULES'." exit 1 fi