name: "Code scanning - action"

on:
  push:
    branches:
      - main
      - 'rc/*'
  pull_request:
    branches:
      - main
      - 'rc/*'
    paths:
      - 'csharp/**'
      - '.github/codeql/**'
      - '.github/workflows/codeql-analysis.yml'
  schedule:
    - cron: '0 9 * * 1'

jobs:
  CodeQL-Build:
    strategy:
      fail-fast: false
      matrix:
        language: ['actions', 'csharp']

    runs-on: ubuntu-latest

    permissions:
      contents: read
      security-events: write
      pull-requests: read

    steps:
    - name: Setup dotnet
      uses: actions/setup-dotnet@v4
      with:
        dotnet-version: 10.0.100

    - name: Checkout repository
      uses: actions/checkout@v5

    # Initializes the CodeQL tools for scanning.
    - name: Initialize CodeQL
      uses: github/codeql-action/init@main
      with:
        languages: ${{ matrix.language }}
        config-file: ./.github/codeql/codeql-config.yml

    # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java).
    # If this step fails, then you should remove it and run the build manually (see below)
    #- name: Autobuild
    #  uses: github/codeql-action/autobuild@main

    # ℹ️ Command-line programs to run using the OS shell.
    # 📚 https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun

    # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
    #    and modify them (or add more) to build your code if your project
    #    uses a compiled language

    - run: |
       cd csharp
       dotnet tool restore
       dotnet build .

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@main
