summaryrefslogtreecommitdiff
path: root/.github/workflows/CodeQL-Analysis
diff options
context:
space:
mode:
authorLaura <[email protected]>2022-12-08 17:36:11 -0800
committerGitHub <[email protected]>2022-12-08 17:36:11 -0800
commit45b95c2ad0f3100525deb6c0c35dcbc37e7025b5 (patch)
treed3075c43005b983169deeac867f0c39e38252312 /.github/workflows/CodeQL-Analysis
parentf2b86750194e47fb9a1ea9e8caefca17d98e2a1a (diff)
Creates CodeQL-Analysis Workflow (#813)
Creates CodeQL-Analysis workflow to run the latest CodeQL CLI and cpp rules against driver solutions which have changed. This is a CI mechanism to alert if there are CodeQL violations in projects which have been changed since the last commit.
Diffstat (limited to '.github/workflows/CodeQL-Analysis')
-rw-r--r--.github/workflows/CodeQL-Analysis70
1 files changed, 70 insertions, 0 deletions
diff --git a/.github/workflows/CodeQL-Analysis b/.github/workflows/CodeQL-Analysis
new file mode 100644
index 00000000..a70cf750
--- /dev/null
+++ b/.github/workflows/CodeQL-Analysis
@@ -0,0 +1,70 @@
+# This workflow runs the latest CodeQL CLI and checks against CodeQL's Cpp library.
+# It will only analyze solutions which have been changed.
+
+name: "CodeQL Analysis"
+
+on:
+ push:
+ branches:
+ - main
+ - develop
+ pull_request:
+ # The branches below must be a subset of the branches above
+ branches:
+ - main
+ - develop
+
+ # Do not perform analysis if only config or text files are changed
+ paths-ignore:
+ - '**/*.md'
+ - '**/*.txt'
+ - './.github/**'
+
+ # Allow manual scheduling
+ workflow_dispatch:
+
+jobs:
+ analyze:
+ name: Analysis
+ runs-on: windows-latest
+ permissions:
+ actions: read
+ contents: read
+ security-events: write
+
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [ 'cpp' ]
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v2
+ with:
+ languages: ${{ matrix.language }}
+
+ - name: Add MSBuild to PATH
+ uses: microsoft/[email protected]
+
+ - name: Get changed files
+ id: get-changed-files
+ uses: tj-actions/changed-files@v27
+
+ - name: Retrieve and build solutions from changed files
+ id: build-changed-projects
+ run: |
+ $changedFiles = "${{ steps.get-changed-files.outputs.all_changed_files }}".Split(' ')
+ .\.github\scripts\Build-ChangedProjects.ps1 -ChangedFiles $changedFiles
+ env:
+ Configuration: ${{ matrix.configuration }}
+ Platform: ${{ matrix.platform }}
+
+ - name: Perform CodeQL analysis
+ uses: github/codeql-action/analyze@v2
+ with:
+ category: "/language:${{matrix.language}}"