]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
GHA: add Microsoft C++ Code Analysis
authorDaniel Stenberg <daniel@haxx.se>
Tue, 21 Feb 2023 12:52:30 +0000 (13:52 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 21 Feb 2023 21:51:19 +0000 (22:51 +0100)
Closes #10583

.github/workflows/msvc.yml [new file with mode: 0644]

diff --git a/.github/workflows/msvc.yml b/.github/workflows/msvc.yml
new file mode 100644 (file)
index 0000000..4b361e4
--- /dev/null
@@ -0,0 +1,65 @@
+# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
+#
+# SPDX-License-Identifier: curl
+#
+# https://github.com/microsoft/msvc-code-analysis-action
+
+name: Microsoft C++ Code Analysis
+
+on:
+  push:
+    branches: [ "master" ]
+  pull_request:
+    branches: [ "master" ]
+
+env:
+  # Path to the CMake build directory.
+  build: '${{ github.workspace }}/build'
+
+permissions:
+  contents: read
+
+jobs:
+  analyze:
+    permissions:
+      contents: read # for actions/checkout to fetch code
+      security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
+      actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
+    name: Analyze
+    runs-on: windows-latest
+
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v3
+
+      - name: Configure CMake
+        run: cmake -B ${{ env.build }}
+
+      - name: Build CMake
+        run: cmake --build ${{ env.build }}
+
+      - name: Generate an empty lib1521.c
+        run: |
+          echo "int main(void) { return 0; }" > ${{ env.build }}/tests/libtest/lib1521.c
+
+      - name: Initialize MSVC Code Analysis
+        uses: microsoft/msvc-code-analysis-action@04825f6d9e00f87422d6bf04e1a38b1f3ed60d99
+        # Provide a unique ID to access the sarif output path
+        id: run-analysis
+        with:
+          cmakeBuildDirectory: ${{ env.build }}
+          # Ruleset file that will determine what checks will be run
+          ruleset: NativeRecommendedRules.ruleset
+
+      # Upload SARIF file to GitHub Code Scanning Alerts
+      - name: Upload SARIF to GitHub
+        uses: github/codeql-action/upload-sarif@v2
+        with:
+          sarif_file: ${{ steps.run-analysis.outputs.sarif }}
+
+      # Upload SARIF file as an Artifact to download and view
+      # - name: Upload SARIF as an Artifact
+      #   uses: actions/upload-artifact@v3
+      #   with:
+      #     name: sarif-file
+      #     path: ${{ steps.run-analysis.outputs.sarif }}