Flecs script expression refactor #7274
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: CI | |
on: [ push, pull_request ] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
typos: | |
runs-on: ubuntu-latest | |
name: typos | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: crate-ci/typos@master | |
build-linux: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-$(uname) | |
bake/bake setup | |
- name: build flecs | |
run: | | |
bake --strict | |
build-macos: | |
runs-on: macos-latest | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-$(uname) | |
bake/bake setup | |
- name: build flecs | |
run: | | |
bake --strict | |
build-windows: | |
runs-on: windows-latest | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ilammy/msvc-dev-cmd@v1 | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
cd bake\build-Windows | |
nmake | |
cd .. | |
./bake setup --local | |
- name: build flecs (debug) | |
run: bake/bake --strict --cfg debug | |
- name: build flecs (release) | |
run: bake/bake --strict --cfg release | |
- name: build examples (debug) | |
run: bake/bake examples --strict --cfg debug | |
- name: build examples (release) | |
run: bake/bake examples --strict --cfg debug | |
build-msys: | |
runs-on: windows-latest | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- { sys: mingw64 } | |
- { sys: mingw32 } | |
- { sys: ucrt64 } | |
- { sys: clang64 } | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{matrix.sys}} | |
update: true | |
install: >- | |
curl | |
git | |
pacboy: >- | |
toolchain:p | |
cmake:p | |
- name: create cmake build folders | |
run: | | |
mkdir cmake_build | |
mkdir examples/c/cmake_build | |
mkdir examples/cpp/cmake_build | |
- name: build flecs | |
working-directory: cmake_build | |
run: | | |
cmake -G "MinGW Makefiles" -DFLECS_STRICT=ON .. | |
cmake --build . -j 4 | |
- name: build c examples | |
working-directory: examples/c/cmake_build | |
run: | | |
cmake -G "MinGW Makefiles" -DFLECS_STRICT=ON .. | |
cmake --build . -j 4 | |
- name: build c++ examples | |
working-directory: examples/cpp/cmake_build | |
run: | | |
cmake -G "MinGW Makefiles" -DFLECS_STRICT=ON .. | |
cmake --build . -j 4 | |
build: | |
needs: build-linux | |
runs-on: ${{ matrix.target.os }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
- { os: ubuntu-20.04, cc: gcc-7, cxx: g++-7 } | |
- { os: ubuntu-20.04, cc: gcc-8, cxx: g++-8 } | |
- { os: ubuntu-20.04, cc: gcc-9, cxx: g++-9 } | |
- { os: ubuntu-20.04, cc: gcc-10, cxx: g++-10 } | |
- { os: ubuntu-latest, cc: gcc-11, cxx: g++-11 } | |
- { os: ubuntu-latest, cc: gcc-12, cxx: g++-12 } | |
- { os: ubuntu-24.04, cc: gcc-13, cxx: g++-13 } | |
- { os: ubuntu-20.04, cc: clang-8, cxx: clang++-8 } | |
- { os: ubuntu-20.04, cc: clang-9, cxx: clang++-9 } | |
- { os: ubuntu-20.04, cc: clang-10, cxx: clang++-10 } | |
- { os: ubuntu-20.04, cc: clang-11, cxx: clang++-11 } | |
- { os: ubuntu-20.04, cc: clang-12, cxx: clang++-12 } | |
- { os: ubuntu-latest, cc: clang-13, cxx: clang++-13 } | |
- { os: ubuntu-latest, cc: clang-14, cxx: clang++-14 } | |
- { os: ubuntu-latest, cc: clang-15, cxx: clang++-15 } | |
env: | |
CC: ${{ matrix.target.cc }} | |
CXX: ${{ matrix.target.cxx }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install compiler | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y ${{ matrix.target.cc }} | |
sudo apt-get install -y ${{ matrix.target.cxx }} | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-$(uname) | |
bake/bake setup | |
- name: build flecs (debug) | |
run: | | |
bake --strict --cfg debug | |
- name: build flecs (release) | |
run: | | |
bake --strict --cfg release | |
- name: build examples (debug) | |
run: | | |
bake examples/c --strict --cfg debug | |
bake examples/cpp --strict --cfg debug | |
bake examples/os_api --strict --cfg debug | |
- name: build examples (release) | |
run: | | |
bake examples/c --strict --cfg release | |
bake examples/cpp --strict --cfg release | |
bake examples/os_api --strict --cfg release | |
build-cmake: | |
needs: [build-linux, build-macos] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, macos-13, macos-latest ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: create cmake build folders | |
run: | | |
mkdir cmake_build | |
mkdir examples/c/cmake_build | |
mkdir examples/cpp/cmake_build | |
- name: build flecs | |
working-directory: cmake_build | |
run: | | |
cmake -DFLECS_STRICT=ON .. | |
cmake --build . -j 4 | |
- name: build c examples | |
working-directory: examples/c/cmake_build | |
run: | | |
cmake -DFLECS_STRICT=ON .. | |
cmake --build . -j 4 | |
- name: build c++ examples | |
working-directory: examples/cpp/cmake_build | |
run: | | |
cmake -DFLECS_STRICT=ON .. | |
cmake --build . -j 4 | |
build-cmake-windows: | |
needs: build-windows | |
runs-on: windows-latest | |
timeout-minutes: 30 | |
strategy: | |
matrix: | |
toolset: [default, v142, clang-cl] | |
include: | |
- toolset: v142 | |
toolset_option: -T"v142" | |
- toolset: clang-cl | |
toolset_option: -T"ClangCl" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: create cmake build folders | |
run: | | |
mkdir cmake_build | |
mkdir examples/c/cmake_build | |
mkdir examples/cpp/cmake_build | |
- name: build flecs | |
working-directory: cmake_build | |
run: | | |
cmake ${{ matrix.toolset_option }} -DFLECS_STRICT=ON .. | |
cmake --build . -j 4 | |
- name: build c examples | |
working-directory: examples/c/cmake_build | |
run: | | |
cmake ${{ matrix.toolset_option }} -DFLECS_STRICT=ON .. | |
cmake --build . -j 4 | |
- name: build c++ examples | |
working-directory: examples/cpp/cmake_build | |
run: | | |
cmake ${{ matrix.toolset_option }} -DFLECS_STRICT=ON .. | |
cmake --build . -j 4 | |
build-meson: | |
needs: build-linux | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install meson | |
run: | | |
pip3 install meson | |
pip3 install ninja==1.10.2.4 | |
- name: create build folder | |
run: meson meson_build | |
- name: build flecs | |
working-directory: meson_build | |
run: | | |
meson compile | |
build-bazel-linux: | |
needs: build-linux | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: build flecs | |
run: bazel build //:flecs | |
- name: build examples | |
run: bazel build //examples/... | |
- name: run tests | |
run: bazel test --test_output=all //test/... | |
build-bazel-windows: | |
needs: build-windows | |
runs-on: windows-latest | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: build flecs | |
run: bazel build //:flecs | |
- name: build examples | |
run: bazel build //examples/... | |
- name: run tests | |
run: bazel test --test_output=all //test/... | |
build-custom: | |
needs: build-linux | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
compiler: [ gcc, clang ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-$(uname) | |
bake/bake setup | |
- name: FLECS_SOFT_ASSERT flag | |
run: | | |
bake rebuild --strict -D FLECS_SOFT_ASSERT | |
bake rebuild --strict --cfg release -D FLECS_SOFT_ASSERT | |
- name: FLECS_KEEP_ASSERT flag | |
run: | | |
bake rebuild --strict -D FLECS_KEEP_ASSERT | |
bake rebuild --strict --cfg release -D FLECS_KEEP_ASSERT | |
- name: no extensions | |
run: | | |
bake rebuild --strict -D FLECS_CUSTOM_BUILD | |
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD | |
- name: FLECS_SYSTEM | |
run: | | |
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_SYSTEM | |
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_SYSTEM | |
- name: FLECS_PIPELINE | |
run: | | |
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_PIPELINE | |
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_PIPELINE | |
- name: FLECS_TIMER | |
run: | | |
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_TIMER | |
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_TIMER | |
- name: FLECS_MODULE | |
run: | | |
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_MODULE | |
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_MODULE | |
- name: FLECS_STATS | |
run: | | |
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_STATS | |
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_STATS | |
- name: FLECS_SCRIPT | |
run: | | |
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_SCRIPT | |
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_SCRIPT | |
- name: FLECS_META | |
run: | | |
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_META | |
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_META | |
- name: FLECS_JSON | |
run: | | |
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_JSON | |
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_JSON | |
- name: FLECS_DOC | |
run: | | |
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_DOC | |
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_DOC | |
- name: FLECS_LOG | |
run: | | |
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_LOG | |
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_LOG | |
- name: FLECS_APP | |
run: | | |
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_APP | |
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_APP | |
- name: FLECS_OS_API_IMPL | |
run: | | |
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_OS_API_IMPL | |
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_OS_API_IMPL | |
- name: FLECS_HTTP | |
run: | | |
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_HTTP | |
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_HTTP | |
- name: FLECS_REST | |
run: | | |
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_REST | |
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_REST | |
- name: FLECS_NO_LOG | |
run: | | |
bake rebuild --strict -D FLECS_NO_LOG | |
bake rebuild --strict --cfg release -D FLECS_NO_LOG | |
- name: FLECS_DEFAULT | |
run: | | |
bake rebuild --strict | |
bake rebuild --strict --cfg release | |
- name: custom_build tests | |
run: | | |
bake rebuild test/custom_builds --strict | |
bake runall test/custom_builds | |
build-amalgamated: | |
needs: build-linux | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
compiler: [ gcc, clang ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: build flecs | |
run: ${{ matrix.compiler }} distr/flecs.c --shared -fPIC -pedantic -Wall -Wextra -Wno-unused-parameter -Werror -Wshadow -Wconversion -Wno-missing-field-initializers | |
test-amalgamated: | |
needs: build-linux | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-$(uname) | |
bake/bake setup | |
- name: build flecs | |
run: bake rebuild | |
- name: git diff check | |
run: git diff --quiet | |
build-scan-build: | |
needs: build-linux | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install clang-build | |
run: | | |
sudo apt-get install -y clang-tools | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-$(uname) | |
bake/bake setup | |
- name: run scan-build | |
run: | | |
scan-build --status-bugs bake | |
test-c-unix: | |
needs: [build-linux, build-macos] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, macos-13, macos-latest ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: compiler version | |
run: | | |
gcc --version | |
clang --version | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-$(uname) | |
bake/bake setup | |
- name: build flecs | |
run: bake --strict | |
- name: test core | |
run: bake run test/core -- -j 8 | |
- name: test query | |
run: bake run test/query -- -j 8 | |
- name: test addons | |
run: bake run test/addons -- -j 8 | |
- name: test meta | |
run: bake run test/meta -- -j 8 | |
- name: test script | |
run: bake run test/script -- -j 8 | |
- name: test collections | |
run: bake run test/collections -- -j 8 | |
test-cpp-unix: | |
needs: [build-linux] | |
runs-on: ${{ matrix.target.os }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
- { os: ubuntu-20.04, cc: gcc-9, cxx: g++-9 } | |
- { os: ubuntu-20.04, cc: gcc-10, cxx: g++-10 } | |
- { os: ubuntu-22.04, cc: gcc-11, cxx: g++-11 } | |
- { os: ubuntu-latest, cc: gcc-12, cxx: g++-12 } | |
- { os: ubuntu-24.04, cc: gcc-13, cxx: g++-13 } | |
- { os: ubuntu-20.04, cc: clang-8, cxx: clang++-8 } | |
- { os: ubuntu-20.04, cc: clang-9, cxx: clang++-9 } | |
- { os: ubuntu-20.04, cc: clang-10, cxx: clang++-10 } | |
- { os: ubuntu-20.04, cc: clang-11, cxx: clang++-11 } | |
- { os: ubuntu-20.04, cc: clang-12, cxx: clang++-12 } | |
- { os: ubuntu-latest, cc: clang-13, cxx: clang++-13 } | |
- { os: ubuntu-latest, cc: clang-14, cxx: clang++-14 } | |
- { os: ubuntu-latest, cc: clang-15, cxx: clang++-15 } | |
env: | |
CC: ${{ matrix.target.cc }} | |
CXX: ${{ matrix.target.cxx }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install compiler | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y ${{ matrix.target.cc }} | |
sudo apt-get install -y ${{ matrix.target.cxx }} | |
- name: compiler version | |
run: | | |
${{ matrix.target.cc }} --version | |
${{ matrix.target.cxx }} --version | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-$(uname) | |
bake/bake setup | |
- name: build flecs | |
run: bake --strict | |
- name: test c++ | |
run: bake run test/cpp -- -j 8 | |
test-cpp-macos: | |
needs: [build-macos] | |
runs-on: ${{ matrix.os.version }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- { version: macos-13, xcode: '14.3.1' } | |
- { version: macos-14, xcode: '15.4' } | |
- { version: macos-15, xcode: '16.0' } | |
env: | |
CC: clang | |
CXX: clang++ | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: ${{ matrix.os.xcode }} | |
- name: compiler version | |
run: | | |
clang --version | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-$(uname) | |
bake/bake setup | |
- name: build flecs | |
run: bake --strict | |
- name: test c++ | |
run: bake run test/cpp -- -j 8 | |
test-windows: | |
needs: build-windows | |
runs-on: windows-latest | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ilammy/msvc-dev-cmd@v1 | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
cd bake\build-Windows | |
nmake | |
cd .. | |
./bake setup --local | |
- name: build flecs | |
run: bake/bake | |
- name: test core | |
run: bake/bake run test\core -- -j 8 | |
- name: test addons | |
run: bake/bake run test\addons -- -j 8 | |
- name: test meta | |
run: bake/bake run test\meta -- -j 8 | |
- name: test script | |
run: bake/bake run test\script -- -j 8 | |
- name: test collections | |
run: bake/bake run test\collections -- -j 8 | |
- name: test c++ | |
run: bake/bake run test\cpp -- -j 8 | |
test-msys: | |
runs-on: windows-latest | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- { sys: mingw64, cc: gcc, cxx: g++ } | |
- { sys: mingw32, cc: gcc, cxx: g++ } | |
- { sys: ucrt64, cc: gcc, cxx: g++ } | |
- { sys: clang64, cc: clang, cxx: clang++ } | |
defaults: | |
run: | |
shell: msys2 {0} | |
env: | |
CC: ${{ matrix.cc }} | |
CXX: ${{ matrix.cxx }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{matrix.sys}} | |
update: true | |
install: >- | |
curl | |
git | |
pacboy: >- | |
toolchain:p | |
cmake:p | |
- name: install bake | |
run: | | |
cp `which mingw32-make` /usr/bin/make | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-Mingw | |
bake/bake setup | |
- name: build flecs | |
run: bake/bake --strict --trace | |
- name: test core | |
run: bake/bake run test/core -- -j 8 | |
- name: test query | |
run: bake/bake run test/query -- -j 8 | |
- name: test addons | |
run: bake/bake run test/addons -- -j 8 | |
- name: test meta | |
run: bake/bake run test/meta -- -j 8 | |
- name: test script | |
run: bake/bake run test/script -- -j 8 | |
- name: test collections | |
run: bake/bake run test/collections -- -j 8 | |
- name: test c++ | |
run: bake/bake run test/cpp -- -j 8 | |
test-sanitized-core: | |
needs: [ build-linux ] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-20.04 ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-$(uname) | |
bake/bake setup | |
- name: build flecs | |
run: bake --strict | |
- name: run tests | |
run: | | |
bake run test/core --cfg sanitize -- -j 8 | |
test-sanitized-query: | |
needs: [ build-linux ] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-20.04 ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-$(uname) | |
bake/bake setup | |
- name: build flecs | |
run: bake --strict | |
- name: run tests | |
run: | | |
bake run test/query --cfg sanitize -- -j 8 | |
test-sanitized-addons: | |
needs: [ build-linux ] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-20.04 ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-$(uname) | |
bake/bake setup | |
- name: build flecs | |
run: bake --strict | |
- name: run tests | |
run: | | |
bake run test/addons --cfg sanitize -- -j 8 | |
test-sanitized-meta: | |
needs: [ build-linux ] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-20.04 ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-$(uname) | |
bake/bake setup | |
- name: build flecs | |
run: bake --strict | |
- name: run tests | |
run: | | |
bake run test/meta --cfg sanitize -- -j 8 | |
test-sanitized-script: | |
needs: [ build-linux ] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-20.04 ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-$(uname) | |
bake/bake setup | |
- name: build flecs | |
run: bake --strict | |
- name: run tests | |
run: | | |
bake run test/script --cfg sanitize -- -j 8 | |
test-sanitized-collections: | |
needs: [ build-linux ] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-20.04 ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-$(uname) | |
bake/bake setup | |
- name: build flecs | |
run: bake --strict | |
- name: run tests | |
run: | | |
bake run test/collections --cfg sanitize -- -j 8 | |
test-sanitized-cpp: | |
needs: [ build-linux ] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-20.04 ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
make -C bake/build-$(uname) | |
bake/bake setup | |
- name: build flecs | |
run: bake --strict | |
- name: run tests | |
run: | | |
bake run test/cpp --cfg sanitize -- -j 8 | |
test-cmake: | |
needs: [ build-linux, build-macos ] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, macos-13, macos-latest ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: clone bake | |
run: | | |
git clone https://github.com/SanderMertens/bake | |
- name: build flecs & tests | |
run: | | |
cmake -DFLECS_TESTS=ON -DBAKE_DIRECTORY=bake | |
cmake --build . -j 4 | |
- name: run tests | |
run: | | |
ctest -C Debug --verbose |