name: Linux Build GCC on: workflow_call: inputs: cmakePreset: required: true type: string cachePrefix: required: true type: string jobs: build: name: GCC runs-on: ubuntu-20.04 timeout-minutes: 45 env: # overrides: https://github.com/mbitsnbites/buildcache/blob/master/doc/configuration.md BUILDCACHE_MAX_CACHE_SIZE: 1000000000 # 1gb BUILDCACHE_COMPRESS_FORMAT: ZSTD BUILDCACHE_COMPRESS_LEVEL: 19 BUILDCACHE_DIRECT_MODE: true BUILDCACHE_LOG_FILE: ${{ github.workspace }}/buildcache.log steps: - name: Checkout Repository uses: actions/checkout@v3 - name: Install Package Dependencies run: > sudo apt install build-essential cmake clang gcc g++ lcov make nasm libxrandr-dev libxinerama-dev libxcursor-dev libpulse-dev libxi-dev zip ninja-build - name: Setup Buildcache uses: mikehardy/buildcache-action@v1.3.0 with: cache_key: linux-ubuntu-20.04-${{ inputs.cachePrefix }}-${{ inputs.cmakePreset }} - name: CMake Generation env: CC: gcc CXX: g++ run: | cmake -B build --preset=${{ inputs.cmakePreset }} \ -DCODE_COVERAGE=ON \ -DCMAKE_C_COMPILER_LAUNCHER=${{ github.workspace }}/buildcache/bin/buildcache \ -DCMAKE_CXX_COMPILER_LAUNCHER=${{ github.workspace }}/buildcache/bin/buildcache - name: Build Project run: cmake --build build -j$((`nproc`+1)) -- -w dupbuild=warn - name: Run Tests - With Coverage working-directory: ./build env: GTEST_OUTPUT: "xml:opengoal-test-report.xml" run: ninja goalc-test_coverage -w dupbuild=warn - name: Submit Coverage Report to Codacy uses: codacy/codacy-coverage-reporter-action@v1 continue-on-error: true with: project-token: ${{ secrets.CODACY_PROJECT_KEY }} coverage-reports: ./build/goalc-test_coverage.info