diff --git a/.github/workflows/msvc-scan.yml b/.github/workflows/msvc-scan.yml new file mode 100644 index 00000000..bda13909 --- /dev/null +++ b/.github/workflows/msvc-scan.yml @@ -0,0 +1,69 @@ +name: MSVC Scan + +# We only want to test official release code, not every pull request. +on: + push: + branches: [cmake_build] + +env: + libbinio_PRESET: default + libbinio_ROOT: '${{ github.workspace }}/libbinio/out/install/default/lib/cmake/libbinio/' + +jobs: + analyze: + runs-on: windows-latest + + steps: + - name: Find libbinio repository + shell: bash + run: echo LIBBINIO_REPOSITORY="${GITHUB_REPOSITORY%/adplug}/libbinio" >> $GITHUB_ENV + + - name: Get cmake and ninja + uses: lukka/get-cmake@latest + + - name: Find MSVC (on Windows) + uses: ilammy/msvc-dev-cmd@v1 + + - name: Checkout adplug repository + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Checkout libbinio repository + uses: actions/checkout@v3 + with: + repository: '${{ env.LIBBINIO_REPOSITORY }}' + ref: cmake_build + path: libbinio + fetch-depth: 0 + + - name: Build libbinio + uses: lukka/run-cmake@v10 + with: + cmakeListsTxtPath: libbinio/CMakeLists.txt + configurePreset: '${{ env.libbinio_PRESET }}' + buildPreset: '${{ env.libbinio_PRESET }}' + + - name: Install libbinio + working-directory: 'libbinio/out/build/${{ env.libbinio_PRESET }}/' + run: cmake --install . + + - name: Configure adplug + uses: lukka/run-cmake@v10 + with: + configurePreset: default + + - name: Initialize MSVC Code Analysis + uses: microsoft/msvc-code-analysis-action@v0.1.1 + # Provide a unique ID to access the sarif output path + id: run-analysis + with: + cmakeBuildDirectory: out/build/default + # 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 }}