More speed #492
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Code Coverage | |
on: | |
push: | |
paths: | |
- "**/workflows/coverage.yml" | |
- "**/Source/**" | |
- "**/Tests/**" | |
- "**/ThirdParty/**" | |
- "**/CMakeLists.txt" | |
- "**/.gitmodules" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
env: | |
BUILD_TYPE: Debug | |
jobs: | |
lua51: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install lcov | |
run: sudo apt-get install -y lcov ninja-build | |
- name: Create Build Environment | |
run: | | |
cmake -E make_directory ${{runner.workspace}}/build | |
cmake -E make_directory ${{runner.workspace}}/build/coverage | |
- name: Configure | |
working-directory: ${{runner.workspace}}/build | |
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DLUABRIDGE_COVERAGE=ON -G Ninja | |
- name: Build Lua 5.1 | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
cmake --build . --config $BUILD_TYPE --parallel 4 --target \ | |
LuaBridgeTests51 \ | |
LuaBridgeTests51LuaC \ | |
LuaBridgeTests51Noexcept \ | |
LuaBridgeTests51LuaCNoexcept | |
- name: Test Lua 5.1 | |
working-directory: ${{runner.workspace}}/build/Tests | |
run: | | |
./LuaBridgeTests51 | |
./LuaBridgeTests51LuaC | |
./LuaBridgeTests51Noexcept | |
./LuaBridgeTests51LuaCNoexcept | |
- name: Coverage Lua 5.1 | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
lcov -c -d "${{runner.workspace}}/build" --rc lcov_branch_coverage=1 \ | |
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \ | |
-o "coverage/lua51.info" | |
- name: Cache Lcov Files | |
uses: actions/cache@v4 | |
with: | |
path: "${{runner.workspace}}/build/coverage/*.info" | |
key: lcov-lua51-${{runner.os}}-${{github.sha}} | |
lua52: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install lcov | |
run: sudo apt-get install -y lcov ninja-build | |
- name: Create Build Environment | |
run: | | |
cmake -E make_directory ${{runner.workspace}}/build | |
cmake -E make_directory ${{runner.workspace}}/build/coverage | |
- name: Configure | |
working-directory: ${{runner.workspace}}/build | |
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DLUABRIDGE_COVERAGE=ON -G Ninja | |
- name: Build Lua 5.2 | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
cmake --build . --config $BUILD_TYPE --parallel 4 --target \ | |
LuaBridgeTests52 \ | |
LuaBridgeTests52LuaC \ | |
LuaBridgeTests52Noexcept \ | |
LuaBridgeTests52LuaCNoexcept | |
- name: Test Lua 5.2 | |
working-directory: ${{runner.workspace}}/build/Tests | |
run: | | |
./LuaBridgeTests52 | |
./LuaBridgeTests52LuaC | |
./LuaBridgeTests52Noexcept | |
./LuaBridgeTests52LuaCNoexcept | |
- name: Coverage Lua 5.2 | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
lcov -c -d "${{runner.workspace}}/build" --rc lcov_branch_coverage=1 \ | |
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \ | |
-o "coverage/lua52.info" | |
- name: Cache Lcov Files | |
uses: actions/cache@v4 | |
with: | |
path: "${{runner.workspace}}/build/coverage/*.info" | |
key: lcov-lua52-${{runner.os}}-${{github.sha}} | |
lua53: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install lcov | |
run: sudo apt-get install -y lcov ninja-build | |
- name: Create Build Environment | |
run: | | |
cmake -E make_directory ${{runner.workspace}}/build | |
cmake -E make_directory ${{runner.workspace}}/build/coverage | |
- name: Configure | |
working-directory: ${{runner.workspace}}/build | |
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DLUABRIDGE_COVERAGE=ON -G Ninja | |
- name: Build Lua 5.3 | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
cmake --build . --config $BUILD_TYPE --parallel 4 --target \ | |
LuaBridgeTests53 \ | |
LuaBridgeTests53LuaC \ | |
LuaBridgeTests53Noexcept \ | |
LuaBridgeTests53LuaCNoexcept | |
- name: Test Lua 5.3 | |
working-directory: ${{runner.workspace}}/build/Tests | |
run: | | |
./LuaBridgeTests53 | |
./LuaBridgeTests53LuaC | |
./LuaBridgeTests53Noexcept | |
./LuaBridgeTests53LuaCNoexcept | |
- name: Coverage Lua 5.3 | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
lcov -c -d "${{runner.workspace}}/build" --rc lcov_branch_coverage=1 \ | |
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \ | |
-o "coverage/lua53.info" | |
- name: Cache Lcov Files | |
uses: actions/cache@v4 | |
with: | |
path: "${{runner.workspace}}/build/coverage/*.info" | |
key: lcov-lua53-${{runner.os}}-${{github.sha}} | |
lua54: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install lcov | |
run: sudo apt-get install -y lcov ninja-build | |
- name: Create Build Environment | |
run: | | |
cmake -E make_directory ${{runner.workspace}}/build | |
cmake -E make_directory ${{runner.workspace}}/build/coverage | |
- name: Configure | |
working-directory: ${{runner.workspace}}/build | |
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DLUABRIDGE_COVERAGE=ON -G Ninja | |
- name: Build Lua 5.4 | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
cmake --build . --config $BUILD_TYPE --parallel 4 --target \ | |
LuaBridgeTests54 \ | |
LuaBridgeTests54LuaC \ | |
LuaBridgeTests54Noexcept \ | |
LuaBridgeTests54LuaCNoexcept | |
- name: Test Lua 5.4 | |
working-directory: ${{runner.workspace}}/build/Tests | |
run: | | |
./LuaBridgeTests54 | |
./LuaBridgeTests54LuaC | |
./LuaBridgeTests54Noexcept | |
./LuaBridgeTests54LuaCNoexcept | |
- name: Coverage Lua 5.4 | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
lcov -c -d "${{runner.workspace}}/build" --rc lcov_branch_coverage=1 \ | |
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \ | |
-o "coverage/lua54.info" | |
- name: Cache Lcov Files | |
uses: actions/cache@v4 | |
with: | |
path: "${{runner.workspace}}/build/coverage/*.info" | |
key: lcov-lua54-${{runner.os}}-${{github.sha}} | |
luajit: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install lcov | |
run: sudo apt-get install -y lcov ninja-build | |
- name: Create Build Environment | |
run: | | |
cmake -E make_directory ${{runner.workspace}}/build | |
cmake -E make_directory ${{runner.workspace}}/build/coverage | |
- name: Configure | |
working-directory: ${{runner.workspace}}/build | |
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DLUABRIDGE_COVERAGE=ON -G Ninja | |
- name: Build LuaJIT | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
cmake --build . --config $BUILD_TYPE --parallel 4 --target \ | |
LuaBridgeTestsLuaJIT \ | |
LuaBridgeTestsLuaJITNoexcept | |
- name: Test LuaJIT | |
working-directory: ${{runner.workspace}}/build/Tests | |
run: | | |
./LuaBridgeTestsLuaJIT | |
./LuaBridgeTestsLuaJITNoexcept | |
- name: Coverage LuaJIT | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
lcov -c -d "${{runner.workspace}}/build" --rc lcov_branch_coverage=1 \ | |
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \ | |
-o "coverage/luajit.info" | |
- name: Cache Lcov Files | |
uses: actions/cache@v4 | |
with: | |
path: "${{runner.workspace}}/build/coverage/*.info" | |
key: lcov-luajit-${{runner.os}}-${{github.sha}} | |
luau: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install lcov | |
run: sudo apt-get install -y lcov ninja-build | |
- name: Create Build Environment | |
run: | | |
cmake -E make_directory ${{runner.workspace}}/build | |
cmake -E make_directory ${{runner.workspace}}/build/coverage | |
- name: Configure | |
working-directory: ${{runner.workspace}}/build | |
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DLUABRIDGE_COVERAGE=ON -G Ninja | |
- name: Build Luau | |
working-directory: ${{runner.workspace}}/build | |
run: cmake --build . --config $BUILD_TYPE --parallel 4 --target LuaBridgeTestsLuau | |
- name: Test Luau | |
working-directory: ${{runner.workspace}}/build/Tests | |
run: ./LuaBridgeTestsLuau | |
- name: Coverage Luau | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
lcov -c -d "${{runner.workspace}}/build" --rc lcov_branch_coverage=1 \ | |
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \ | |
-o "coverage/luau.info" | |
- name: Cache Lcov Files | |
uses: actions/cache@v4 | |
with: | |
path: "${{runner.workspace}}/build/coverage/*.info" | |
key: lcov-luau-${{runner.os}}-${{github.sha}} | |
ravi: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install lcov | |
run: sudo apt-get install -y lcov ninja-build | |
- name: Create Build Environment | |
run: | | |
cmake -E make_directory ${{runner.workspace}}/build | |
cmake -E make_directory ${{runner.workspace}}/build/coverage | |
- name: Configure | |
working-directory: ${{runner.workspace}}/build | |
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DLUABRIDGE_COVERAGE=ON -G Ninja | |
- name: Build Ravi | |
working-directory: ${{runner.workspace}}/build | |
run: cmake --build . --config $BUILD_TYPE --parallel 4 --target LuaBridgeTestsRavi | |
- name: Test Ravi | |
working-directory: ${{runner.workspace}}/build/Tests | |
run: ./LuaBridgeTestsRavi | |
- name: Coverage Ravi | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
lcov -c -d "${{runner.workspace}}/build" --rc lcov_branch_coverage=1 \ | |
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \ | |
-o "coverage/ravi.info" | |
- name: Cache Lcov Files | |
uses: actions/cache@v4 | |
with: | |
path: "${{runner.workspace}}/build/coverage/*.info" | |
key: lcov-ravi-${{runner.os}}-${{github.sha}} | |
coveralls: | |
runs-on: ubuntu-latest | |
needs: [lua51, lua52, lua53, lua54, luajit, luau, ravi] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install lcov | |
run: sudo apt-get install -y lcov | |
- name: Create Build Environment | |
run: | | |
cmake -E make_directory ${{runner.workspace}}/build | |
cmake -E make_directory ${{runner.workspace}}/build/coverage | |
- name: Restore Lcov Files Lua 5.1 | |
uses: actions/cache@v4 | |
with: | |
path: "${{runner.workspace}}/build/coverage/*.info" | |
key: lcov-lua51-${{runner.os}}-${{github.sha}} | |
- name: Restore Lcov Files Lua 5.2 | |
uses: actions/cache@v4 | |
with: | |
path: "${{runner.workspace}}/build/coverage/*.info" | |
key: lcov-lua52-${{runner.os}}-${{github.sha}} | |
- name: Restore Lcov Files Lua 5.3 | |
uses: actions/cache@v4 | |
with: | |
path: "${{runner.workspace}}/build/coverage/*.info" | |
key: lcov-lua53-${{runner.os}}-${{github.sha}} | |
- name: Restore Lcov Files Lua 5.4 | |
uses: actions/cache@v4 | |
with: | |
path: "${{runner.workspace}}/build/coverage/*.info" | |
key: lcov-lua54-${{runner.os}}-${{github.sha}} | |
- name: Restore Lcov Files LuaJIT | |
uses: actions/cache@v4 | |
with: | |
path: "${{runner.workspace}}/build/coverage/*.info" | |
key: lcov-luajit-${{runner.os}}-${{github.sha}} | |
- name: Restore Lcov Files Luau | |
uses: actions/cache@v4 | |
with: | |
path: "${{runner.workspace}}/build/coverage/*.info" | |
key: lcov-luau-${{runner.os}}-${{github.sha}} | |
- name: Restore Lcov Files Ravi | |
uses: actions/cache@v4 | |
with: | |
path: "${{runner.workspace}}/build/coverage/*.info" | |
key: lcov-ravi-${{runner.os}}-${{github.sha}} | |
- name: Merge Lcov Files | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
lcov \ | |
-a "coverage/lua51.info" \ | |
-a "coverage/lua52.info" \ | |
-a "coverage/lua53.info" \ | |
-a "coverage/lua54.info" \ | |
-a "coverage/luajit.info" \ | |
-a "coverage/luau.info" \ | |
-a "coverage/ravi.info" \ | |
-o "coverage/merged.info" | |
- name: Coveralls | |
uses: coverallsapp/github-action@master | |
with: | |
path-to-lcov: ${{runner.workspace}}/build/coverage/merged.info | |
github-token: ${{ secrets.GITHUB_TOKEN }} |