name: sonarcloud scan on: push: branches: - master - dev pull_request: types: [opened, synchronize, reopened] jobs: build: name: sonarcloud scan runs-on: ubuntu-latest env: CONAN_SYSREQUIRES_MODE: "enabled" steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Install sonar-scanner and build-wrapper uses: sonarsource/sonarcloud-github-c-cpp@v1 id: sonarscan - name: Download and set up sonar-scanner run: | wget -nv https://cdn.anotherfoxguy.com/sonar-scanner/mofilereader -O run-sonar-scanner sudo chmod 777 run-sonar-scanner - name: Prepare cfamily cache timestamp id: cfamily_cache_timestamp shell: cmake -P {0} run: | string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC) message("::set-output name=timestamp::${current_date}") - name: cfamily cache files uses: actions/cache@v3.2.5 with: path: cfamily-cache key: cfamily-cache-${{ steps.cfamily_cache_timestamp.outputs.timestamp }} restore-keys: | cfamily-cache- - name: Cache conan uses: actions/cache@v3.2.5 with: key: conan-linux-${{ hashFiles('conanfile.txt') }} path: ~/.conan/ - name: Install dependencies run: | curl "https://raw.githubusercontent.com/AnotherFoxGuy/ci-scripts/main/install-cmake.sh" | sudo bash curl "https://raw.githubusercontent.com/AnotherFoxGuy/ci-scripts/main/install-conan.sh" | sudo bash - name: Configure run: | conan profile new --detect --force default conan profile update conf.tools.cmake.cmaketoolchain:generator="Ninja" default conan profile update settings.compiler.libcxx=libstdc++11 default conan install . -s build_type=Release -b missing -pr:b=default cmake . -DCMAKE_BUILD_TYPE=Release -DBUILD_TEST=ON -DENABLE_COVERAGE=ON -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake" - name: Run build-wrapper run: build-wrapper-linux-x86-64 --out-dir bw-output make -j4 - name: Test continue-on-error: true run: ctest -j2 --output-on-failure - name: Generate coverage run: make gcov - name: Run sonar-scanner env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_SCANNER_EXE: ${{ steps.sonarscan.outputs.sonar-scanner-binary }} run: ./run-sonar-scanner - name: Clean Conan pkgs run: conan remove "*" -fsb