# 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/setup-msbuild@v1.0.2 - 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}}"