name: Bigfoot on: push: branches: - main - Development conan-dependencies: runs-on: ubuntu-latest timeout-minutes: 120 container: image: git.romainboullard.com/bigfootdev/linuxbigfootbuilder:main volumes: - /srv/romainboullard.com/caches/ccache:/ccache env: ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }} ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} CCACHE_DIR: /ccache CCACHE_MAXSIZE: 10G CCACHE_BASEDIR: /root/.conan2 CCACHE_NOHASHDIR: "true" CCACHE_COMPILERCHECK: "%compiler% -dumpversion" name: "Build And Upload Conan Dependencies to BigfootPackages" steps: - name: Install Node.js run: apt-get update && apt-get install -y nodejs - name: Checkout repository uses: actions/checkout@v6 with: submodules: recursive - name: Reset ccache stats run: ccache --zero-stats - name: Build run: | for build_type in Debug RelWithDebInfo Release; do conan install . --remote=bigfootpackages \ -pr:h=./ConanProfiles/clang -pr:b=./ConanProfiles/Tools/clang \ --build=missing \ -s build_type=$build_type \ -o bigfoot/*:build_tests=True \ -o bigfoot/*:tracy=False \ -o bigfoot/*:vulkan=True done conan install . --remote=bigfootpackages \ -pr:h=./ConanProfiles/clang_asan -pr:b=./ConanProfiles/Tools/clang \ --build=missing \ -s build_type=$build_type \ -o bigfoot/*:build_tests=True \ -o bigfoot/*:tracy=False \ -o bigfoot/*:vulkan=True - name: Show ccache stats run: ccache --show-stats - name: Upload run: CONAN_LOGIN_USERNAME=${ARTIFACTORY_USER} CONAN_PASSWORD=${ARTIFACTORY_PASSWORD} conan upload "*" -r bigfootpackages --confirm jobs: build-and-test: runs-on: ubuntu-latest timeout-minutes: 120 container: image: git.romainboullard.com/bigfootdev/linuxbigfootbuilder:main volumes: - /srv/romainboullard.com/caches/ccache:/ccache env: CCACHE_DIR: /ccache CCACHE_MAXSIZE: 10G CCACHE_COMPILERCHECK: "%compiler% -dumpversion" 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: Reset ccache stats run: ccache --zero-stats - name: Build run: | conan install . --remote=bigfootpackages -pr:h=./ConanProfiles/clang_coverage -pr:b=./ConanProfiles/Tools/clang --build=never -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: Show ccache stats run: ccache --show-stats - 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 }}