初始化内容
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
name: Amalgamate
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- "**/workflows/amalgamate.yml"
|
||||
- "**/Source/**"
|
||||
- "**/amalgamate.py"
|
||||
|
||||
jobs:
|
||||
run:
|
||||
name: Create Amalgamation
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: 3.9
|
||||
|
||||
- name: Create amalgamation file
|
||||
run: python amalgamate.py
|
||||
|
||||
- name: Commit changes
|
||||
uses: EndBug/add-and-commit@v10
|
||||
with:
|
||||
committer_name: GitHub Actions
|
||||
committer_email: actions@github.com
|
||||
message: Update amalgamation file
|
||||
add: 'Distribution/LuaBridge/*.h'
|
||||
+105
@@ -0,0 +1,105 @@
|
||||
name: ASAN
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- "**/workflows/build_asan.yml"
|
||||
- "**/Source/**"
|
||||
- "**/Tests/**"
|
||||
- "**/ThirdParty/**"
|
||||
- "**/CMakeLists.txt"
|
||||
- "**/.gitmodules"
|
||||
- "!**/*.md"
|
||||
- "!**/*.txt"
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
BUILD_TYPE: RelWithDebInfo
|
||||
|
||||
jobs:
|
||||
lua:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
lua:
|
||||
- { version: "5.1", suffix: "51" }
|
||||
- { version: "5.2", suffix: "52" }
|
||||
- { version: "5.3", suffix: "53" }
|
||||
- { version: "5.4", suffix: "54" }
|
||||
- { version: "5.5", suffix: "55" }
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Install Dependencies
|
||||
run: sudo apt-get -y install ninja-build
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
|
||||
- name: Configure C++17
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -DLUABRIDGE_SANITIZE=address -G Ninja
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
env:
|
||||
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
|
||||
- name: Configure C++20
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -DLUABRIDGE_SANITIZE=address -G Ninja
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
env:
|
||||
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
|
||||
- name: Configure C++23
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -DLUABRIDGE_SANITIZE=address -G Ninja
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
env:
|
||||
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
+269
@@ -0,0 +1,269 @@
|
||||
name: Linux
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- "**/workflows/build_linux.yml"
|
||||
- "**/Source/**"
|
||||
- "**/Tests/**"
|
||||
- "**/ThirdParty/**"
|
||||
- "**/CMakeLists.txt"
|
||||
- "**/.gitmodules"
|
||||
- "!**/*.md"
|
||||
- "!**/*.txt"
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
BUILD_TYPE: Release
|
||||
|
||||
jobs:
|
||||
lua:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
lua:
|
||||
- { version: "5.1", suffix: "51" }
|
||||
- { version: "5.2", suffix: "52" }
|
||||
- { version: "5.3", suffix: "53" }
|
||||
- { version: "5.4", suffix: "54" }
|
||||
- { version: "5.5", suffix: "55" }
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Install Dependencies
|
||||
run: sudo apt-get -y install ninja-build
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
|
||||
- name: Configure C++17
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -G Ninja
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
|
||||
- name: Configure C++20
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -G Ninja
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
|
||||
- name: Configure C++23
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -G Ninja
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
|
||||
luajit:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install ninja-build
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
|
||||
- name: Configure C++17
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -G Ninja
|
||||
|
||||
- name: Build LuaJIT (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTestsLuaJIT \
|
||||
LuaBridgeTestsLuaJITNoexcept
|
||||
|
||||
- name: Test LuaJIT (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuaJIT" --output-on-failure
|
||||
|
||||
- name: Configure C++20
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -G Ninja
|
||||
|
||||
- name: Build LuaJIT (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTestsLuaJIT \
|
||||
LuaBridgeTestsLuaJITNoexcept
|
||||
|
||||
- name: Test LuaJIT (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuaJIT" --output-on-failure
|
||||
|
||||
- name: Configure C++23
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -G Ninja
|
||||
|
||||
- name: Build LuaJIT (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTestsLuaJIT \
|
||||
LuaBridgeTestsLuaJITNoexcept
|
||||
|
||||
- name: Test LuaJIT (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuaJIT" --output-on-failure
|
||||
|
||||
luau:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Install Dependencies
|
||||
run: sudo apt-get -y install ninja-build
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
|
||||
- name: Configure C++17
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -G Ninja
|
||||
|
||||
- name: Build Luau (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsLuau
|
||||
|
||||
- name: Test Luau (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuau" --output-on-failure
|
||||
|
||||
- name: Configure C++20
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -G Ninja
|
||||
|
||||
- name: Build Luau (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsLuau
|
||||
|
||||
- name: Test Luau (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuau" --output-on-failure
|
||||
|
||||
- name: Configure C++23
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -G Ninja
|
||||
|
||||
- name: Build Luau (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsLuau
|
||||
|
||||
- name: Test Luau (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuau" --output-on-failure
|
||||
|
||||
ravi:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Install Dependencies
|
||||
run: sudo apt-get -y install libreadline-dev ninja-build
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
|
||||
- name: Configure C++17
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -G Ninja
|
||||
|
||||
- name: Build Ravi (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsRavi
|
||||
|
||||
- name: Test Ravi (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsRavi" --output-on-failure
|
||||
|
||||
- name: Configure C++20
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -G Ninja
|
||||
|
||||
- name: Build Ravi (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsRavi
|
||||
|
||||
- name: Test Ravi (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsRavi" --output-on-failure
|
||||
|
||||
- name: Configure C++23
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -G Ninja
|
||||
|
||||
- name: Build Ravi (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsRavi
|
||||
|
||||
- name: Test Ravi (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsRavi" --output-on-failure
|
||||
+255
@@ -0,0 +1,255 @@
|
||||
name: macOS
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- "**/workflows/build_macos.yml"
|
||||
- "**/Source/**"
|
||||
- "**/Tests/**"
|
||||
- "**/ThirdParty/**"
|
||||
- "**/CMakeLists.txt"
|
||||
- "**/.gitmodules"
|
||||
- "!**/*.md"
|
||||
- "!**/*.txt"
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
BUILD_TYPE: Release
|
||||
|
||||
jobs:
|
||||
lua:
|
||||
runs-on: macos-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
lua:
|
||||
- { version: "5.1", suffix: "51" }
|
||||
- { version: "5.2", suffix: "52" }
|
||||
- { version: "5.3", suffix: "53" }
|
||||
- { version: "5.4", suffix: "54" }
|
||||
- { version: "5.5", suffix: "55" }
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
|
||||
- name: Configure C++17
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -G Ninja
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
|
||||
- name: Configure C++20
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -G Ninja
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
|
||||
- name: Configure C++23
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -G Ninja
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
|
||||
luajit:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
|
||||
- name: Configure C++17
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -G Ninja
|
||||
|
||||
- name: Build LuaJIT (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTestsLuaJIT \
|
||||
LuaBridgeTestsLuaJITNoexcept
|
||||
|
||||
- name: Test LuaJIT (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuaJIT" --output-on-failure
|
||||
|
||||
- name: Configure C++20
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -G Ninja
|
||||
|
||||
- name: Build LuaJIT (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTestsLuaJIT \
|
||||
LuaBridgeTestsLuaJITNoexcept
|
||||
|
||||
- name: Test LuaJIT (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuaJIT" --output-on-failure
|
||||
|
||||
- name: Configure C++23
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -G Ninja
|
||||
|
||||
- name: Build LuaJIT (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTestsLuaJIT \
|
||||
LuaBridgeTestsLuaJITNoexcept
|
||||
|
||||
- name: Test LuaJIT (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuaJIT" --output-on-failure
|
||||
|
||||
luau:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
|
||||
- name: Configure C++17
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -G Ninja
|
||||
|
||||
- name: Build Luau (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsLuau
|
||||
|
||||
- name: Test Luau (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuau" --output-on-failure
|
||||
|
||||
- name: Configure C++20
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -G Ninja
|
||||
|
||||
- name: Build Luau (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsLuau
|
||||
|
||||
- name: Test Luau (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuau" --output-on-failure
|
||||
|
||||
- name: Configure C++23
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -G Ninja
|
||||
|
||||
- name: Build Luau (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsLuau
|
||||
|
||||
- name: Test Luau (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuau" --output-on-failure
|
||||
|
||||
ravi:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
|
||||
- name: Configure C++17
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -G Ninja
|
||||
|
||||
- name: Build Ravi (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsRavi
|
||||
|
||||
- name: Test Ravi (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsRavi" --output-on-failure
|
||||
|
||||
- name: Configure C++20
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -G Ninja
|
||||
|
||||
- name: Build Ravi (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsRavi
|
||||
|
||||
- name: Test Ravi (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsRavi" --output-on-failure
|
||||
|
||||
- name: Configure C++23
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -G Ninja
|
||||
|
||||
- name: Build Ravi (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsRavi
|
||||
|
||||
- name: Test Ravi (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsRavi" --output-on-failure
|
||||
@@ -0,0 +1,68 @@
|
||||
name: TSAN
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- "**/workflows/build_tsan.yml"
|
||||
- "**/Source/**"
|
||||
- "**/Tests/**"
|
||||
- "**/ThirdParty/**"
|
||||
- "**/CMakeLists.txt"
|
||||
- "**/.gitmodules"
|
||||
- "!**/*.md"
|
||||
- "!**/*.txt"
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
BUILD_TYPE: RelWithDebInfo
|
||||
|
||||
jobs:
|
||||
lua:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
lua:
|
||||
- { version: "5.1", suffix: "51" }
|
||||
- { version: "5.2", suffix: "52" }
|
||||
- { version: "5.3", suffix: "53" }
|
||||
- { version: "5.4", suffix: "54" }
|
||||
- { version: "5.5", suffix: "55" }
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Install Dependencies
|
||||
run: sudo apt-get -y install ninja-build
|
||||
|
||||
- name: Create Build Environment
|
||||
run: cmake -E make_directory ${{runner.workspace}}/build
|
||||
|
||||
- name: Configure
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DLUABRIDGE_SANITIZE=thread -G Ninja
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }}
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }}
|
||||
working-directory: ${{runner.workspace}}/build/Tests
|
||||
env:
|
||||
TSAN_OPTIONS: halt_on_error=1:print_stacktrace=1
|
||||
run: |
|
||||
./LuaBridgeTests${{ matrix.lua.suffix }}
|
||||
./LuaBridgeTests${{ matrix.lua.suffix }}LuaC
|
||||
./LuaBridgeTests${{ matrix.lua.suffix }}Noexcept
|
||||
./LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
+105
@@ -0,0 +1,105 @@
|
||||
name: UBSAN
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- "**/workflows/build_ubsan.yml"
|
||||
- "**/Source/**"
|
||||
- "**/Tests/**"
|
||||
- "**/ThirdParty/**"
|
||||
- "**/CMakeLists.txt"
|
||||
- "**/.gitmodules"
|
||||
- "!**/*.md"
|
||||
- "!**/*.txt"
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
BUILD_TYPE: RelWithDebInfo
|
||||
|
||||
jobs:
|
||||
lua:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
lua:
|
||||
- { version: "5.1", suffix: "51" }
|
||||
- { version: "5.2", suffix: "52" }
|
||||
- { version: "5.3", suffix: "53" }
|
||||
- { version: "5.4", suffix: "54" }
|
||||
- { version: "5.5", suffix: "55" }
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Install Dependencies
|
||||
run: sudo apt-get -y install ninja-build
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
|
||||
- name: Configure C++17
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -DLUABRIDGE_SANITIZE=undefined -G Ninja
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
env:
|
||||
UBSAN_OPTIONS: halt_on_error=1:print_stacktrace=1
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
|
||||
- name: Configure C++20
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -DLUABRIDGE_SANITIZE=undefined -G Ninja
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
env:
|
||||
UBSAN_OPTIONS: halt_on_error=1:print_stacktrace=1
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
|
||||
- name: Configure C++23
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -DLUABRIDGE_SANITIZE=undefined -G Ninja
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
env:
|
||||
UBSAN_OPTIONS: halt_on_error=1:print_stacktrace=1
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
@@ -0,0 +1,297 @@
|
||||
name: Windows
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- "**/workflows/build_windows.yml"
|
||||
- "**/Source/**"
|
||||
- "**/Tests/**"
|
||||
- "**/ThirdParty/**"
|
||||
- "**/CMakeLists.txt"
|
||||
- "**/.gitmodules"
|
||||
- "!**/*.md"
|
||||
- "!**/*.txt"
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
BUILD_TYPE: Release
|
||||
|
||||
jobs:
|
||||
lua:
|
||||
runs-on: windows-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
lua:
|
||||
- { version: "5.1", suffix: "51" }
|
||||
- { version: "5.2", suffix: "52" }
|
||||
- { version: "5.3", suffix: "53" }
|
||||
- { version: "5.4", suffix: "54" }
|
||||
- { version: "5.5", suffix: "55" }
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
|
||||
- name: Configure C++17
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
shell: bash
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel 4 --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
shell: bash
|
||||
run: ctest --parallel 4 -C $BUILD_TYPE -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
|
||||
- name: Configure C++20
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
shell: bash
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel 4 --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
shell: bash
|
||||
run: ctest --parallel 4 -C $BUILD_TYPE -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
|
||||
- name: Configure C++23
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
shell: bash
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel 4 --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
shell: bash
|
||||
run: ctest --parallel 4 -C $BUILD_TYPE -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
|
||||
luajit:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
|
||||
- name: Configure C++17
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17
|
||||
|
||||
- name: Build LuaJIT (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
shell: bash
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel 4 --target \
|
||||
LuaBridgeTestsLuaJIT \
|
||||
LuaBridgeTestsLuaJITNoexcept
|
||||
|
||||
- name: Test LuaJIT (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
shell: bash
|
||||
run: ctest --parallel 4 -C $BUILD_TYPE -R "LuaBridgeTestsLuaJIT" --output-on-failure
|
||||
|
||||
- name: Configure C++20
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20
|
||||
|
||||
- name: Build LuaJIT (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
shell: bash
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel 4 --target \
|
||||
LuaBridgeTestsLuaJIT \
|
||||
LuaBridgeTestsLuaJITNoexcept
|
||||
|
||||
- name: Test LuaJIT (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
shell: bash
|
||||
run: ctest --parallel 4 -C $BUILD_TYPE -R "LuaBridgeTestsLuaJIT" --output-on-failure
|
||||
|
||||
- name: Configure C++23
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23
|
||||
|
||||
- name: Build LuaJIT (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
shell: bash
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel 4 --target \
|
||||
LuaBridgeTestsLuaJIT \
|
||||
LuaBridgeTestsLuaJITNoexcept
|
||||
|
||||
- name: Test LuaJIT (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
shell: bash
|
||||
run: ctest --parallel 4 -C $BUILD_TYPE -R "LuaBridgeTestsLuaJIT" --output-on-failure
|
||||
|
||||
luau:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
|
||||
- name: Configure C++17
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17
|
||||
|
||||
- name: Build Luau (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
shell: bash
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel 4 --target LuaBridgeTestsLuau
|
||||
|
||||
- name: Test Luau (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
shell: bash
|
||||
run: ctest --parallel 4 -C $BUILD_TYPE -R "LuaBridgeTestsLuau" --output-on-failure
|
||||
|
||||
- name: Configure C++20
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20
|
||||
|
||||
- name: Build Luau (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
shell: bash
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel 4 --target LuaBridgeTestsLuau
|
||||
|
||||
- name: Test Luau (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
shell: bash
|
||||
run: ctest --parallel 4 -C $BUILD_TYPE -R "LuaBridgeTestsLuau" --output-on-failure
|
||||
|
||||
- name: Configure C++23
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23
|
||||
|
||||
- name: Build Luau (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
shell: bash
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel 4 --target LuaBridgeTestsLuau
|
||||
|
||||
- name: Test Luau (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
shell: bash
|
||||
run: ctest --parallel 4 -C $BUILD_TYPE -R "LuaBridgeTestsLuau" --output-on-failure
|
||||
|
||||
ravi:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
|
||||
- name: Configure C++17
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17
|
||||
|
||||
- name: Build Ravi (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
shell: bash
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel 4 --target LuaBridgeTestsRavi
|
||||
|
||||
- name: Test Ravi (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17/Tests/Release
|
||||
shell: bash
|
||||
run: |
|
||||
cp ../ravi/Release/libravi.dll .
|
||||
./LuaBridgeTestsRavi.exe
|
||||
|
||||
- name: Configure C++20
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20
|
||||
|
||||
- name: Build Ravi (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
shell: bash
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel 4 --target LuaBridgeTestsRavi
|
||||
|
||||
- name: Test Ravi (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20/Tests/Release
|
||||
shell: bash
|
||||
run: |
|
||||
cp ../ravi/Release/libravi.dll .
|
||||
./LuaBridgeTestsRavi.exe
|
||||
|
||||
- name: Configure C++23
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23
|
||||
|
||||
- name: Build Ravi (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
shell: bash
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel 4 --target LuaBridgeTestsRavi
|
||||
|
||||
- name: Test Ravi (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23/Tests/Release
|
||||
shell: bash
|
||||
run: |
|
||||
cp ../ravi/Release/libravi.dll .
|
||||
./LuaBridgeTestsRavi.exe
|
||||
@@ -0,0 +1,65 @@
|
||||
name: CodeQL
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
paths:
|
||||
- "**/workflows/codeql-analysis.yml"
|
||||
- "**/Source/**"
|
||||
- "**/Tests/**"
|
||||
- "**/ThirdParty/**"
|
||||
- "**/CMakeLists.txt"
|
||||
- "**/.gitmodules"
|
||||
- "**/.codeql.yml"
|
||||
- "!**/*.md"
|
||||
- "!**/*.txt"
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
BUILD_TYPE: Release
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'cpp' ]
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Install Ninja
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install ninja-build libreadline-dev
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v3
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
config-file: ./.codeql.yml
|
||||
|
||||
- name: Create Build Environment
|
||||
run: cmake -E make_directory ${{runner.workspace}}/build
|
||||
|
||||
- name: Configure CMake
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -G Ninja
|
||||
|
||||
- name: Build
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
shell: bash
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc)
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v3
|
||||
+512
@@ -0,0 +1,512 @@
|
||||
name: Coverage
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- "**/workflows/coverage.yml"
|
||||
- "**/Source/**"
|
||||
- "**/Tests/**"
|
||||
- "**/ThirdParty/**"
|
||||
- "**/CMakeLists.txt"
|
||||
- "**/.gitmodules"
|
||||
- "!**/*.md"
|
||||
- "!**/*.txt"
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
BUILD_TYPE: Debug
|
||||
|
||||
jobs:
|
||||
lua:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
lua:
|
||||
- { version: "5.1", suffix: "51" }
|
||||
- { version: "5.2", suffix: "52" }
|
||||
- { version: "5.3", suffix: "53" }
|
||||
- { version: "5.4", suffix: "54" }
|
||||
- { version: "5.5", suffix: "55" }
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Install lcov
|
||||
run: sudo apt-get install -y lcov ninja-build
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
cmake -E make_directory ${{runner.workspace}}/coverage
|
||||
|
||||
- name: Configure C++17
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -DLUABRIDGE_COVERAGE=ON -G Ninja
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
|
||||
- name: Coverage Lua ${{ matrix.lua.version }} (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: |
|
||||
lcov -c -d "${{runner.workspace}}/build17" --rc branch_coverage=1 --rc geninfo_unexecuted_blocks=1 \
|
||||
--ignore-errors mismatch,unused \
|
||||
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \
|
||||
-o "${{runner.workspace}}/coverage/lua${{ matrix.lua.suffix }}_cxx17.info"
|
||||
|
||||
- name: Configure C++20
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -DLUABRIDGE_COVERAGE=ON -G Ninja
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
|
||||
- name: Coverage Lua ${{ matrix.lua.version }} (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: |
|
||||
lcov -c -d "${{runner.workspace}}/build20" --rc branch_coverage=1 --rc geninfo_unexecuted_blocks=1 \
|
||||
--ignore-errors mismatch,unused \
|
||||
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \
|
||||
-o "${{runner.workspace}}/coverage/lua${{ matrix.lua.suffix }}_cxx20.info"
|
||||
|
||||
- name: Configure C++23
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -DLUABRIDGE_COVERAGE=ON -G Ninja
|
||||
|
||||
- name: Build Lua ${{ matrix.lua.version }} (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }} \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
|
||||
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
|
||||
|
||||
- name: Test Lua ${{ matrix.lua.version }} (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
|
||||
|
||||
- name: Coverage Lua ${{ matrix.lua.version }} (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: |
|
||||
lcov -c -d "${{runner.workspace}}/build23" --rc branch_coverage=1 --rc geninfo_unexecuted_blocks=1 \
|
||||
--ignore-errors mismatch,unused \
|
||||
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \
|
||||
-o "${{runner.workspace}}/coverage/lua${{ matrix.lua.suffix }}_cxx23.info"
|
||||
|
||||
- name: Cache Lcov Files
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: "${{runner.workspace}}/coverage/*.info"
|
||||
key: lcov-lua${{ matrix.lua.suffix }}-${{runner.os}}-${{github.sha}}
|
||||
|
||||
luajit:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Install lcov
|
||||
run: sudo apt-get install -y lcov ninja-build
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
cmake -E make_directory ${{runner.workspace}}/coverage
|
||||
|
||||
- name: Configure C++17
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -DLUABRIDGE_COVERAGE=ON -G Ninja
|
||||
|
||||
- name: Build LuaJIT (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTestsLuaJIT \
|
||||
LuaBridgeTestsLuaJITNoexcept
|
||||
|
||||
- name: Test LuaJIT (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuaJIT" --output-on-failure
|
||||
|
||||
- name: Coverage LuaJIT (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: |
|
||||
lcov -c -d "${{runner.workspace}}/build17" --rc branch_coverage=1 --rc geninfo_unexecuted_blocks=1 \
|
||||
--ignore-errors mismatch,unused \
|
||||
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \
|
||||
-o "${{runner.workspace}}/coverage/luajit_cxx17.info"
|
||||
|
||||
- name: Configure C++20
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -DLUABRIDGE_COVERAGE=ON -G Ninja
|
||||
|
||||
- name: Build LuaJIT (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTestsLuaJIT \
|
||||
LuaBridgeTestsLuaJITNoexcept
|
||||
|
||||
- name: Test LuaJIT (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuaJIT" --output-on-failure
|
||||
|
||||
- name: Coverage LuaJIT (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: |
|
||||
lcov -c -d "${{runner.workspace}}/build20" --rc branch_coverage=1 --rc geninfo_unexecuted_blocks=1 \
|
||||
--ignore-errors mismatch,unused \
|
||||
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \
|
||||
-o "${{runner.workspace}}/coverage/luajit_cxx20.info"
|
||||
|
||||
- name: Configure C++23
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -DLUABRIDGE_COVERAGE=ON -G Ninja
|
||||
|
||||
- name: Build LuaJIT (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: |
|
||||
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
|
||||
LuaBridgeTestsLuaJIT \
|
||||
LuaBridgeTestsLuaJITNoexcept
|
||||
|
||||
- name: Test LuaJIT (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuaJIT" --output-on-failure
|
||||
|
||||
- name: Coverage LuaJIT (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: |
|
||||
lcov -c -d "${{runner.workspace}}/build23" --rc branch_coverage=1 --rc geninfo_unexecuted_blocks=1 \
|
||||
--ignore-errors mismatch,unused \
|
||||
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \
|
||||
-o "${{runner.workspace}}/coverage/luajit_cxx23.info"
|
||||
|
||||
- name: Cache Lcov Files
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: "${{runner.workspace}}/coverage/*.info"
|
||||
key: lcov-luajit-${{runner.os}}-${{github.sha}}
|
||||
|
||||
luau:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Install lcov
|
||||
run: sudo apt-get install -y lcov ninja-build
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
cmake -E make_directory ${{runner.workspace}}/coverage
|
||||
|
||||
- name: Configure C++17
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -DLUABRIDGE_COVERAGE=ON -G Ninja
|
||||
|
||||
- name: Build Luau (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsLuau
|
||||
|
||||
- name: Test Luau (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuau" --output-on-failure
|
||||
|
||||
- name: Coverage Luau (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: |
|
||||
lcov -c -d "${{runner.workspace}}/build17" --rc branch_coverage=1 --rc geninfo_unexecuted_blocks=1 \
|
||||
--ignore-errors mismatch,unused \
|
||||
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \
|
||||
-o "${{runner.workspace}}/coverage/luau_cxx17.info"
|
||||
|
||||
- name: Configure C++20
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -DLUABRIDGE_COVERAGE=ON -G Ninja
|
||||
|
||||
- name: Build Luau (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsLuau
|
||||
|
||||
- name: Test Luau (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuau" --output-on-failure
|
||||
|
||||
- name: Coverage Luau (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: |
|
||||
lcov -c -d "${{runner.workspace}}/build20" --rc branch_coverage=1 --rc geninfo_unexecuted_blocks=1 \
|
||||
--ignore-errors mismatch,unused \
|
||||
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \
|
||||
-o "${{runner.workspace}}/coverage/luau_cxx20.info"
|
||||
|
||||
- name: Configure C++23
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -DLUABRIDGE_COVERAGE=ON -G Ninja
|
||||
|
||||
- name: Build Luau (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsLuau
|
||||
|
||||
- name: Test Luau (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: ctest --parallel $(nproc) -R "LuaBridgeTestsLuau" --output-on-failure
|
||||
|
||||
- name: Coverage Luau (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: |
|
||||
lcov -c -d "${{runner.workspace}}/build23" --rc branch_coverage=1 --rc geninfo_unexecuted_blocks=1 \
|
||||
--ignore-errors mismatch,unused \
|
||||
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \
|
||||
-o "${{runner.workspace}}/coverage/luau_cxx23.info"
|
||||
|
||||
- name: Cache Lcov Files
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: "${{runner.workspace}}/coverage/*.info"
|
||||
key: lcov-luau-${{runner.os}}-${{github.sha}}
|
||||
|
||||
ravi:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Install lcov
|
||||
run: sudo apt-get install -y lcov libreadline-dev ninja-build
|
||||
|
||||
- name: Create Build Environments
|
||||
run: |
|
||||
cmake -E make_directory ${{runner.workspace}}/build17
|
||||
cmake -E make_directory ${{runner.workspace}}/build20
|
||||
cmake -E make_directory ${{runner.workspace}}/build23
|
||||
cmake -E make_directory ${{runner.workspace}}/coverage
|
||||
|
||||
- name: Configure C++17
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -DLUABRIDGE_COVERAGE=ON -G Ninja
|
||||
|
||||
- name: Build Ravi (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsRavi
|
||||
|
||||
- name: Test Ravi (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17/Tests
|
||||
run: LD_PRELOAD=$(gcc -print-file-name=libasan.so) ./LuaBridgeTestsRavi
|
||||
|
||||
- name: Coverage Ravi (C++17)
|
||||
working-directory: ${{runner.workspace}}/build17
|
||||
run: |
|
||||
lcov -c -d "${{runner.workspace}}/build17" --rc branch_coverage=1 --rc geninfo_unexecuted_blocks=1 \
|
||||
--ignore-errors mismatch,unused \
|
||||
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \
|
||||
-o "${{runner.workspace}}/coverage/ravi_cxx17.info"
|
||||
|
||||
- name: Configure C++20
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -DLUABRIDGE_COVERAGE=ON -G Ninja
|
||||
|
||||
- name: Build Ravi (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsRavi
|
||||
|
||||
- name: Test Ravi (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20/Tests
|
||||
run: LD_PRELOAD=$(gcc -print-file-name=libasan.so) ./LuaBridgeTestsRavi
|
||||
|
||||
- name: Coverage Ravi (C++20)
|
||||
working-directory: ${{runner.workspace}}/build20
|
||||
run: |
|
||||
lcov -c -d "${{runner.workspace}}/build20" --rc branch_coverage=1 --rc geninfo_unexecuted_blocks=1 \
|
||||
--ignore-errors mismatch,unused \
|
||||
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \
|
||||
-o "${{runner.workspace}}/coverage/ravi_cxx20.info"
|
||||
|
||||
- name: Configure C++23
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -DLUABRIDGE_COVERAGE=ON -G Ninja
|
||||
|
||||
- name: Build Ravi (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target LuaBridgeTestsRavi
|
||||
|
||||
- name: Test Ravi (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23/Tests
|
||||
run: LD_PRELOAD=$(gcc -print-file-name=libasan.so) ./LuaBridgeTestsRavi
|
||||
|
||||
- name: Coverage Ravi (C++23)
|
||||
working-directory: ${{runner.workspace}}/build23
|
||||
run: |
|
||||
lcov -c -d "${{runner.workspace}}/build23" --rc branch_coverage=1 --rc geninfo_unexecuted_blocks=1 \
|
||||
--ignore-errors mismatch,unused \
|
||||
--include "*/LuaBridge/*" --exclude "*/Tests/*" --exclude "*/Distribution/*" --exclude "*/coverage_html/*" \
|
||||
-o "${{runner.workspace}}/coverage/ravi_cxx23.info"
|
||||
|
||||
- name: Cache Lcov Files
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: "${{runner.workspace}}/coverage/*.info"
|
||||
key: lcov-ravi-${{runner.os}}-${{github.sha}}
|
||||
|
||||
coveralls:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [lua, luajit, luau, ravi]
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Install lcov
|
||||
run: sudo apt-get install -y lcov
|
||||
|
||||
- name: Create Coverage Directory
|
||||
run: cmake -E make_directory ${{runner.workspace}}/coverage
|
||||
|
||||
- name: Restore Lcov Files Lua 5.1
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: "${{runner.workspace}}/coverage/*.info"
|
||||
key: lcov-lua51-${{runner.os}}-${{github.sha}}
|
||||
|
||||
- name: Restore Lcov Files Lua 5.2
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: "${{runner.workspace}}/coverage/*.info"
|
||||
key: lcov-lua52-${{runner.os}}-${{github.sha}}
|
||||
|
||||
- name: Restore Lcov Files Lua 5.3
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: "${{runner.workspace}}/coverage/*.info"
|
||||
key: lcov-lua53-${{runner.os}}-${{github.sha}}
|
||||
|
||||
- name: Restore Lcov Files Lua 5.4
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: "${{runner.workspace}}/coverage/*.info"
|
||||
key: lcov-lua54-${{runner.os}}-${{github.sha}}
|
||||
|
||||
- name: Restore Lcov Files Lua 5.5
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: "${{runner.workspace}}/coverage/*.info"
|
||||
key: lcov-lua55-${{runner.os}}-${{github.sha}}
|
||||
|
||||
- name: Restore Lcov Files LuaJIT
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: "${{runner.workspace}}/coverage/*.info"
|
||||
key: lcov-luajit-${{runner.os}}-${{github.sha}}
|
||||
|
||||
- name: Restore Lcov Files Luau
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: "${{runner.workspace}}/coverage/*.info"
|
||||
key: lcov-luau-${{runner.os}}-${{github.sha}}
|
||||
|
||||
- name: Restore Lcov Files Ravi
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: "${{runner.workspace}}/coverage/*.info"
|
||||
key: lcov-ravi-${{runner.os}}-${{github.sha}}
|
||||
|
||||
- name: Merge Lcov Files
|
||||
working-directory: ${{runner.workspace}}/coverage
|
||||
run: |
|
||||
lcov \
|
||||
-a "lua51_cxx17.info" \
|
||||
-a "lua51_cxx20.info" \
|
||||
-a "lua51_cxx23.info" \
|
||||
-a "lua52_cxx17.info" \
|
||||
-a "lua52_cxx20.info" \
|
||||
-a "lua52_cxx23.info" \
|
||||
-a "lua53_cxx17.info" \
|
||||
-a "lua53_cxx20.info" \
|
||||
-a "lua53_cxx23.info" \
|
||||
-a "lua54_cxx17.info" \
|
||||
-a "lua54_cxx20.info" \
|
||||
-a "lua54_cxx23.info" \
|
||||
-a "lua55_cxx17.info" \
|
||||
-a "lua55_cxx20.info" \
|
||||
-a "lua55_cxx23.info" \
|
||||
-a "luajit_cxx17.info" \
|
||||
-a "luajit_cxx20.info" \
|
||||
-a "luajit_cxx23.info" \
|
||||
-a "luau_cxx17.info" \
|
||||
-a "luau_cxx20.info" \
|
||||
-a "luau_cxx23.info" \
|
||||
-a "ravi_cxx17.info" \
|
||||
-a "ravi_cxx20.info" \
|
||||
-a "ravi_cxx23.info" \
|
||||
-o "merged.info"
|
||||
|
||||
- name: Install lcov2xml
|
||||
run: cargo install lcov2xml
|
||||
|
||||
- name: Convert to Cobertura XML
|
||||
working-directory: ${{runner.workspace}}/coverage
|
||||
run: lcov2xml merged.info -o cobertura.xml
|
||||
|
||||
#- name: Convert to Coverage TXT
|
||||
# working-directory: ${{runner.workspace}}/build
|
||||
# run: python3 ${{runner.workspace}}/cobertura.py coverage/cobertura.info coverage/coverage.txt
|
||||
|
||||
- name: Upload Cobertura XML
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: cobertura-coverage
|
||||
path: ${{runner.workspace}}/coverage/cobertura.xml
|
||||
|
||||
#- name: Upload Coverage TXT
|
||||
# uses: actions/upload-artifact@v4
|
||||
# with:
|
||||
# name: text-coverage
|
||||
# path: ${{runner.workspace}}/build/coverage/coverage.txt
|
||||
|
||||
- name: Coveralls
|
||||
uses: coverallsapp/github-action@master
|
||||
with:
|
||||
path-to-lcov: ${{runner.workspace}}/coverage/merged.info
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
name: Sonar
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- "**/workflows/sonar.yml"
|
||||
- "**/Source/**"
|
||||
- "**/Tests/**"
|
||||
- "**/ThirdParty/**"
|
||||
- "**/CMakeLists.txt"
|
||||
- "**/.gitmodules"
|
||||
- "**/sonar-project.properties"
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
BUILD_TYPE: Release
|
||||
BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build and Analyze
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: true
|
||||
|
||||
- name: Install sonar-scanner and build-wrapper
|
||||
uses: SonarSource/sonarcloud-github-c-cpp@v2
|
||||
|
||||
- name: Create Build Environment
|
||||
run: cmake -E make_directory ${{runner.workspace}}/build
|
||||
|
||||
- name: Configure
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -G Ninja
|
||||
|
||||
- name: Run build-wrapper
|
||||
run: |
|
||||
build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} cmake --build ${{runner.workspace}}/build --config $BUILD_TYPE
|
||||
|
||||
- name: Run sonar-scanner
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
run: |
|
||||
sonar-scanner --define sonar.cfamily.build-wrapper-output="${{ env.BUILD_WRAPPER_OUT_DIR }}"
|
||||
Reference in New Issue
Block a user