# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.

name: "CodeQL"

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]
    paths-ignore:
      - '*.md'
      - LICENSE
  schedule:
    - cron: '15 2 * * 4'

permissions:
  contents: read

jobs:
  analyze:
    name: Analyze (C/C++)
    runs-on: windows-latest
    timeout-minutes: 360
    permissions:
      actions: read  # for github/codeql-action/init to get workflow details
      contents: read  # for actions/checkout to fetch code
      security-events: write  # for github/codeql-action/autobuild to send a status report
      packages: read

    steps:
    - name: Checkout repository
      uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

    - name: 'Install Ninja'
      run: choco install ninja

    - uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0

    - name: Initialize CodeQL
      uses: github/codeql-action/init@89a39a4e59826350b863aa6b6252a07ad50cf83e # v3.29.5
      with:
        languages: c-cpp
        build-mode: manual

    - name: 'Configure CMake'
      working-directory: ${{ github.workspace }}
      run: cmake --preset=x64-Debug

    - name: 'Build'
      working-directory: ${{ github.workspace }}
      run: cmake --build out\build\x64-Debug

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@89a39a4e59826350b863aa6b6252a07ad50cf83e # v3.29.5
      with:
        category: "/language:c-cpp"
