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"]
|
|
installGo: "true"
|
|
env:
|
|
CODEQL_ACTION_SUBLANGUAGE_FILE_COVERAGE: true
|
|
steps:
|
|
- uses: ./../action/init
|
|
id: init
|
|
with:
|
|
languages: javascript
|
|
tools: ${{ steps.prepare-test.outputs.tools-url }}
|
|
- uses: ./../action/.github/actions/setup-swift
|
|
if: runner.os == 'macOS'
|
|
with:
|
|
codeql-path: ${{ steps.init.outputs.codeql-path }}
|
|
- name: Build code
|
|
shell: bash
|
|
run: ./build.sh
|
|
- uses: ./../action/analyze
|
|
with:
|
|
output: "${{ runner.temp }}/results"
|
|
- name: Upload SARIF
|
|
uses: actions/upload-artifact@v4
|
|
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="c csharp go java kotlin javascript python ruby"
|
|
if [[ $RUNNER_OS == "macOS" ]]; then
|
|
expected_baseline_languages+=" swift"
|
|
fi
|
|
|
|
for lang in ${expected_baseline_languages}; do
|
|
rule_name="cli/expected-extracted-files/${lang}"
|
|
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
|