Skip to content

More speed

More speed #492

Workflow file for this run

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 }}