Skip to content

Commit

Permalink
Generate the "Submit SARIF after failure" workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
henrymercer committed Nov 25, 2022
1 parent d0517be commit 24fd4c0
Show file tree
Hide file tree
Showing 4 changed files with 104 additions and 35 deletions.
70 changes: 70 additions & 0 deletions .github/workflows/__submit-sarif-failure.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

34 changes: 0 additions & 34 deletions .github/workflows/submit-sarif-failure.yml

This file was deleted.

32 changes: 32 additions & 0 deletions pr-checks/checks/submit-sarif-failure.yml
@@ -0,0 +1,32 @@
name: Submit SARIF after failure
description: Check that a SARIF file is submitted for the workflow run if it fails
versions: ["latest", "cached", "nightly-latest"]
operatingSystems: ["ubuntu"]

env:
# Internal-only environment variable used to indicate that the post-init Action
# should expect to upload a SARIF file for the failed run.
CODEQL_ACTION_EXPECT_UPLOAD_FAILED_SARIF: true
# Make sure the uploading SARIF files feature is enabled.
CODEQL_ACTION_UPLOAD_FAILED_SARIF: true
# Upload the failed SARIF file as an integration test of the API endpoint.
CODEQL_ACTION_TEST_MODE: false

steps:
- uses: actions/checkout@v3
- uses: ./init
with:
languages: javascript
- name: Fail
# We want this job to pass if the Action correctly uploads the SARIF file for
# the failed run.
# Setting this step to continue on error means that it is marked as completing
# successfully, so will not fail the job.
continue-on-error: true
run: exit 1
- uses: ./analyze
# In a real workflow, this step wouldn't run. Since we used `continue-on-error`
# above, we manually disable it with an `if` condition.
if: false
with:
category: "/test-codeql-version:${{ matrix.version }}"
3 changes: 2 additions & 1 deletion pr-checks/sync.py
Expand Up @@ -115,7 +115,8 @@ def writeHeader(checkStream):
checkJob[key] = checkSpecification[key]

checkJob['env'] = checkJob.get('env', {})
checkJob['env']['CODEQL_ACTION_TEST_MODE'] = True
if 'CODEQL_ACTION_TEST_MODE' not in checkJob['env']:
checkJob['env']['CODEQL_ACTION_TEST_MODE'] = True
checkName = file[:len(file) - 4]

with open(f"../.github/workflows/__{checkName}.yml", 'w') as output_stream:
Expand Down

0 comments on commit 24fd4c0

Please sign in to comment.