name: Coverage on: pull_request: paths-ignore: - 'docs/**' push: branches: - main paths-ignore: - 'docs/**' jobs: coverage-ubuntu-gcc: timeout-minutes: 30 runs-on: ubuntu-latest strategy: fail-fast: false matrix: backends: [ V8, JavaScriptCore, QuickJs, Lua ] steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 with: key: ScriptX-UnitTests-Depedencies-${{ hashFiles('test/cmake/**') }} path: | build/ScriptXTestLibs build/googletest-src - name: prepare lcov run: | sudo apt-get install -y lcov - name: Configure cmake env: SCRIPTX_TEST_FORCE_UPDATE_DEPS: ON run: | mkdir -p build && cd build cmake ../test \ -DSCRIPTX_BACKEND=${{ matrix.backends }} \ -DDEVOPS_ENABLE_COVERAGE=ON \ -DCMAKE_BUILD_TYPE=DEBUG - name: Compile UnitTests run: | cd build cmake --build . -j $(nproc) --target UnitTests - name: Run UnitTests run: | cd build && ./UnitTests - name: Generate Coverate Data # https://clang.llvm.org/docs/SourceBasedCodeCoverage.html run: | cd build lcov -c -d CMakeFiles/ -o all.info lcov -e all.info -o coverage.info '*/ScriptX/src/*' '*/ScriptX/backend/*' - name: Coveralls GitHub Action uses: coverallsapp/github-action@v1.1.2 with: github-token: ${{ secrets.GITHUB_TOKEN }} path-to-lcov: './build/coverage.info' flag-name: "Backend-${{ matrix.backends }}" parallel: true coverage-finish: timeout-minutes: 30 needs: coverage-ubuntu-gcc runs-on: ubuntu-latest steps: - name: Coveralls Finished uses: coverallsapp/github-action@v1.1.2 with: github-token: ${{ secrets.github_token }} parallel-finished: true