11name : " Quality queries input"
22description : " Tests that queries specified in the quality-queries input are used."
33versions : ["linked", "nightly-latest"]
4+ env :
5+ CHECK_SCRIPT : |
6+ const fs = require('fs');
7+
8+ const sarif = JSON.parse(fs.readFileSync(process.env['SARIF_PATH'], 'utf8'));
9+ const expectPresent = JSON.parse(process.env['EXPECT_PRESENT']);
10+ const run = sarif.runs[0];
11+ const extensions = run.tool.extensions;
12+
13+ if (extensions === undefined) {
14+ core.setFailed('`extensions` property not found in the SARIF run property bag.');
15+ }
16+
17+ // ID of a query we want to check the presence for
18+ const targetId = 'js/regex/always-matches';
19+ const found = extensions.find(extension => extension.rules && extension.rules.find(rule => rule.id === targetId));
20+
21+ if (found && expectPresent) {
22+ console.log(`Found rule with id '${targetId}'.`);
23+ } else if (!found && !expectPresent) {
24+ console.log(`Rule with id '${targetId}' was not found.`);
25+ } else {
26+ core.setFailed(`${ found ? "Found" : "Didn't find" } rule ${targetId}`);
27+ }
428steps :
529 - uses : ./../action/init
630 with :
@@ -14,38 +38,26 @@ steps:
1438 - name : Upload security SARIF
1539 uses : actions/upload-artifact@v4
1640 with :
17- name : config-export -${{ matrix.os }}-${{ matrix.version }}.sarif.json
41+ name : quality-queries -${{ matrix.os }}-${{ matrix.version }}.sarif.json
1842 path : " ${{ runner.temp }}/results/javascript.sarif"
1943 retention-days : 7
2044 - name : Upload quality SARIF
2145 uses : actions/upload-artifact@v4
2246 with :
23- name : config-export -${{ matrix.os }}-${{ matrix.version }}.quality.sarif.json
47+ name : quality-queries -${{ matrix.os }}-${{ matrix.version }}.quality.sarif.json
2448 path : " ${{ runner.temp }}/results/javascript.quality.sarif"
2549 retention-days : 7
26- - name : Check config properties appear in SARIF
50+ - name : Check quality query does not appear in security SARIF
51+ uses : actions/github-script@v7
52+ env :
53+ SARIF_PATH : " ${{ runner.temp }}/results/javascript.sarif"
54+ EXPECT_PRESENT : " false"
55+ with :
56+ script : ${{ env.CHECK_SCRIPT }}
57+ - name : Check quality query appears in quality SARIF
2758 uses : actions/github-script@v7
2859 env :
2960 SARIF_PATH : " ${{ runner.temp }}/results/javascript.quality.sarif"
61+ EXPECT_PRESENT : " true"
3062 with :
31- script : |
32- const fs = require('fs');
33-
34- const sarif = JSON.parse(fs.readFileSync(process.env['SARIF_PATH'], 'utf8'));
35- const run = sarif.runs[0];
36- const configSummary = run.properties.codeqlConfigSummary;
37-
38- if (configSummary === undefined) {
39- core.setFailed('`codeqlConfigSummary` property not found in the SARIF run property bag.');
40- }
41- if (configSummary.disableDefaultQueries !== false) {
42- core.setFailed('`disableDefaultQueries` property incorrect: expected false, got ' +
43- `${JSON.stringify(configSummary.disableDefaultQueries)}.`);
44- }
45- const expectedQueries = [{ type: 'builtinSuite', uses: 'code-quality' }];
46- // Use JSON.stringify to deep-equal the arrays.
47- if (JSON.stringify(configSummary.queries) !== JSON.stringify(expectedQueries)) {
48- core.setFailed(`\`queries\` property incorrect: expected ${JSON.stringify(expectedQueries)}, got ` +
49- `${JSON.stringify(configSummary.queries)}.`);
50- }
51- core.info('Finished config export tests.');
63+ script : ${{ env.CHECK_SCRIPT }}
0 commit comments