name: Bigfoot

on:
  push:
    branches:
      - main
      - Development

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    timeout-minutes: 120
    container:
      image: git.romainboullard.com/bigfootdev/linuxbigfootbuilder:main
    name: "Sonarqube"
    steps:
      - name: Install Node.js
        run: apt-get update && apt-get install -y nodejs

      - name: Checkout repository
        uses: actions/checkout@v6
        with:
          fetch-depth: 0
          submodules: recursive

      - name: Generate
        run: |
            conan install . --remote=bigfootpackages -pr:h=./ConanProfiles/clang_coverage -pr:b=./ConanProfiles/clang_coverage  --build=missing -s build_type=Debug -o bigfoot/*:build_tests=True -o bigfoot/*:tracy=False -o bigfoot/*:build_tools=True -o bigfoot/*:vulkan=True
            cmake -S . -B ./build/Debug --toolchain ./build/Debug/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Debug -G "Ninja"
            cmake --build build/Debug --parallel $(nproc)

      - name: Clang-Tidy
        run: run-clang-tidy -p ./build/Debug/ >> tidy_result.txt

      - name: Infer
        run: infer run --compilation-database build/Debug/compile_commands.json

      - name: SonarQube Scan
        if: github.head_ref == 'main' || github.ref_name == 'main'
        uses: SonarSource/sonarqube-scan-action@v7.0.0
        with:
          args: >
            -Dsonar.cxx.jsonCompilationDatabase=./build/Debug/compile_commands.json
            -Dsonar.verbose=true
        env:
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
          SONAR_HOST_URL: ${{ secrets.SONAR_HOST }}