summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorMichael Kubacki <michael.kubacki@microsoft.com>2023-11-28 18:37:29 -0500
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2023-11-30 19:24:17 +0000
commit26d484d0867b03ebd8a1ecdd9895f17e96732503 (patch)
treee2f7d0075f7d8dd2d9518f589cf9c14e4134e486 /.github
parentb4f8c75e316e74750d5806b8ebf2bd11a3d62626 (diff)
downloadedk2-26d484d0867b03ebd8a1ecdd9895f17e96732503.zip
edk2-26d484d0867b03ebd8a1ecdd9895f17e96732503.tar.gz
edk2-26d484d0867b03ebd8a1ecdd9895f17e96732503.tar.bz2
.github/workflows/codeql.yml: Add emacs output
Updates the workflow to also output files that can be loaded in emacs to show CodeQL issues (in addition to the existing SARIF output for standard SARIF viewers). The emacs files are in the SARIF zip file attached to each "CodeQL" run (https://github.com/tianocore/edk2/actions/workflows/codeql.yml). The file name ends with "-emacs.txt". An MdePkg example: "codeql-db-mdepkg-debug-0-emacs.txt". Cc: Joey Vagedes <joey.vagedes@gmail.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Sean Brogan <sean.brogan@microsoft.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Acked-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Joey Vagedes <joey.vagedes@gmail.com>
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/codeql.yml20
1 files changed, 16 insertions, 4 deletions
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 72ece9d..c91e9d4 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -92,7 +92,7 @@ jobs:
git config --system core.longpaths true
- name: Install/Upgrade pip Modules
- run: pip install -r pip-requirements.txt --upgrade requests
+ run: pip install -r pip-requirements.txt --upgrade requests sarif-tools
- name: Determine CI Settings File Supported Operations
id: get_ci_file_operations
@@ -304,16 +304,26 @@ jobs:
PACKAGE_NAME: ${{ matrix.Package }}
shell: python
run: |
+ import logging
import os
+ from edk2toollib.utility_functions import RunCmd
+ from io import StringIO
+ from pathlib import Path
package = os.environ['PACKAGE_NAME'].strip().lower()
directory_name = 'codeql-analysis-' + package + '-debug'
file_name = 'codeql-db-' + package + '-debug-0.sarif'
- sarif_path = os.path.join('Build', directory_name, file_name)
+ sarif_path = Path('Build', directory_name, file_name)
with open(os.environ['GITHUB_OUTPUT'], 'a') as fh:
- if os.path.isfile(sarif_path):
+ if sarif_path.is_file():
+ emacs_file_path = sarif_path.with_name(sarif_path.stem + "-emacs.txt")
+ out_stream_buffer = StringIO()
+ exit_code = RunCmd("sarif", f"emacs {sarif_path} --output {emacs_file_path} --no-autotrim",
+ outstream=out_stream_buffer,
+ logging_level=logging.NOTSET)
print(f'upload_sarif_file=true', file=fh)
+ print(f'emacs_file_path={emacs_file_path}', file=fh)
print(f'sarif_file_path={sarif_path}', file=fh)
else:
print(f'upload_sarif_file=false', file=fh)
@@ -323,7 +333,9 @@ jobs:
if: steps.env_data.outputs.upload_sarif_file == 'true'
with:
name: ${{ matrix.Package }}-CodeQL-SARIF
- path: ${{ steps.env_data.outputs.sarif_file_path }}
+ path: |
+ ${{ steps.env_data.outputs.emacs_file_path }}
+ ${{ steps.env_data.outputs.sarif_file_path }}
retention-days: 14
if-no-files-found: warn