-
Notifications
You must be signed in to change notification settings - Fork 329
Commit
Re-enable passing the codescanning config file to the CLI
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
name: Check Code-Scanning Config | ||
description: | | ||
Checks the code scanning configuration file generated by the | ||
action to ensure it contains the expected contents | ||
inputs: | ||
languages: | ||
required: false | ||
description: The languages field passed to the init action. | ||
|
||
packs: | ||
required: false | ||
description: The packs field passed to the init action. | ||
|
||
queries: | ||
required: false | ||
description: The queries field passed to the init action. | ||
|
||
config-file-test: | ||
required: false | ||
description: | | ||
The location of the config file to use. If empty, | ||
then no config file is used. | ||
expected-config-file-contents: | ||
required: true | ||
description: | | ||
A JSON string containing the exact contents of the config file. | ||
tools: | ||
required: true | ||
description: | | ||
The url of codeql to use. | ||
runs: | ||
using: composite | ||
steps: | ||
- uses: ./../action/init | ||
with: | ||
languages: ${{ inputs.languages }} | ||
config-file: ${{ inputs.config-file-test }} | ||
queries: ${{ inputs.queries }} | ||
packs: ${{ inputs.packs }} | ||
tools: ${{ inputs.tools }} | ||
db-location: ${{ runner.temp }}/codescanning-config-cli-test | ||
|
||
- name: Install dependencies | ||
shell: bash | ||
run: npm install --location=global ts-node js-yaml | ||
|
||
- name: Check config | ||
working-directory: ${{ github.action_path }} | ||
shell: bash | ||
run: ts-node ./index.ts "${{ runner.temp }}/user-config.yaml" '${{ inputs.expected-config-file-contents }}' | ||
|
||
- name: Clean up | ||
shell: bash | ||
if: always() | ||
run: | | ||
rm -rf ${{ runner.temp }}/codescanning-config-cli-test | ||
rm -rf ${{ runner.temp }}/user-config.yaml |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
|
||
import * as core from '@actions/core' | ||
import * as yaml from 'js-yaml' | ||
import * as fs from 'fs' | ||
import * as assert from 'assert' | ||
|
||
const actualConfig = loadActualConfig() | ||
|
||
const rawExpectedConfig = process.argv[3].trim() | ||
if (!rawExpectedConfig) { | ||
core.info('No expected configuration provided') | ||
} else { | ||
core.startGroup('Expected generated user config') | ||
core.info(yaml.dump(JSON.parse(rawExpectedConfig))) | ||
core.endGroup() | ||
} | ||
|
||
const expectedConfig = rawExpectedConfig ? JSON.parse(rawExpectedConfig) : undefined; | ||
|
||
assert.deepStrictEqual( | ||
actualConfig, | ||
expectedConfig, | ||
'Expected configuration does not match actual configuration' | ||
); | ||
|
||
|
||
function loadActualConfig() { | ||
if (!fs.existsSync(process.argv[2])) { | ||
core.info('No configuration file found') | ||
return undefined | ||
} else { | ||
const rawActualConfig = fs.readFileSync(process.argv[2], 'utf8') | ||
core.startGroup('Actual generated user config') | ||
core.info(rawActualConfig) | ||
core.endGroup() | ||
|
||
return yaml.load(rawActualConfig) | ||
} | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.