Skip to content

Commit 2794cfc

Browse files
committed
Add basic check that resulting SARIF contains quality-queries queries
1 parent 880af76 commit 2794cfc

File tree

2 files changed

+145
-0
lines changed

2 files changed

+145
-0
lines changed

.github/workflows/__quality-queries.yml

Lines changed: 100 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pr-checks/checks/quality-queries.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: "Quality queries input"
2+
description: "Tests that queries specified in the quality-queries input are used."
3+
versions: ["linked", "nightly-latest"]
4+
steps:
5+
- uses: ./../action/init
6+
with:
7+
languages: javascript
8+
quality-queries: code-quality
9+
tools: ${{ steps.prepare-test.outputs.tools-url }}
10+
- uses: ./../action/analyze
11+
with:
12+
output: "${{ runner.temp }}/results"
13+
upload-database: false
14+
- name: Upload SARIF
15+
uses: actions/upload-artifact@v4
16+
with:
17+
name: config-export-${{ matrix.os }}-${{ matrix.version }}.sarif.json
18+
path: "${{ runner.temp }}/results/javascript.sarif"
19+
retention-days: 7
20+
- name: Check config properties appear in SARIF
21+
uses: actions/github-script@v7
22+
env:
23+
SARIF_PATH: "${{ runner.temp }}/results/javascript.sarif"
24+
with:
25+
script: |
26+
const fs = require('fs');
27+
28+
const sarif = JSON.parse(fs.readFileSync(process.env['SARIF_PATH'], 'utf8'));
29+
const run = sarif.runs[0];
30+
const configSummary = run.properties.codeqlConfigSummary;
31+
32+
if (configSummary === undefined) {
33+
core.setFailed('`codeqlConfigSummary` property not found in the SARIF run property bag.');
34+
}
35+
if (configSummary.disableDefaultQueries !== false) {
36+
core.setFailed('`disableDefaultQueries` property incorrect: expected false, got ' +
37+
`${JSON.stringify(configSummary.disableDefaultQueries)}.`);
38+
}
39+
const expectedQueries = [{ type: 'builtinSuite', uses: 'code-quality' }];
40+
// Use JSON.stringify to deep-equal the arrays.
41+
if (JSON.stringify(configSummary.queries) !== JSON.stringify(expectedQueries)) {
42+
core.setFailed(`\`queries\` property incorrect: expected ${JSON.stringify(expectedQueries)}, got ` +
43+
`${JSON.stringify(configSummary.queries)}.`);
44+
}
45+
core.info('Finished config export tests.');

0 commit comments

Comments
 (0)