48 lines
1.7 KiB
YAML
48 lines
1.7 KiB
YAML
name: "Export file baseline information"
|
|
description: "Tests that file baseline information is exported when the feature is enabled"
|
|
versions: ["nightly-latest"]
|
|
env:
|
|
CODEQL_ENABLE_EXPERIMENTAL_FEATURES_SWIFT: true # Remove when Swift is GA.
|
|
steps:
|
|
- uses: ./../action/init
|
|
id: init
|
|
with:
|
|
languages: javascript
|
|
tools: ${{ steps.prepare-test.outputs.tools-url }}
|
|
env:
|
|
CODEQL_FILE_BASELINE_INFORMATION: true
|
|
- uses: ./../action/.github/setup-swift
|
|
with:
|
|
codeql-path: ${{steps.init.outputs.codeql-path}}
|
|
- name: Build code
|
|
shell: bash
|
|
run: ./build.sh
|
|
- uses: ./../action/analyze
|
|
with:
|
|
output: "${{ runner.temp }}/results"
|
|
env:
|
|
CODEQL_FILE_BASELINE_INFORMATION: true
|
|
- name: Upload SARIF
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: with-baseline-information-${{ matrix.os }}-${{ matrix.version }}.sarif.json
|
|
path: "${{ runner.temp }}/results/javascript.sarif"
|
|
retention-days: 7
|
|
- name: Check results
|
|
shell: bash
|
|
run: |
|
|
cd "$RUNNER_TEMP/results"
|
|
expected_baseline_languages="cpp cs go java js py rb swift"
|
|
|
|
for lang in ${expected_baseline_languages}; do
|
|
rule_name="${lang}/baseline/expected-extracted-files"
|
|
found_notification=$(jq --arg rule_name "${rule_name}" '[.runs[0].tool.driver.notifications |
|
|
select(. != null) | flatten | .[].id] | any(. == $rule_name)' javascript.sarif)
|
|
if [[ "${found_notification}" != "true" ]]; then
|
|
echo "Expected SARIF output to contain notification '${rule_name}', but found no such notification."
|
|
exit 1
|
|
else
|
|
echo "Found notification '${rule_name}'."
|
|
fi
|
|
done
|