834 lines
22 KiB
YAML
834 lines
22 KiB
YAML
name: CI
|
|
|
|
on: [ push, pull_request ]
|
|
|
|
jobs:
|
|
build-linux:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 30
|
|
strategy:
|
|
fail-fast: false
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- 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@v3
|
|
|
|
- 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@v3
|
|
- 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@v3
|
|
- 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-20.04, cc: gcc-11, cxx: g++-11 }
|
|
- { os: ubuntu-latest, cc: gcc-12, cxx: g++-12 }
|
|
- { os: ubuntu-latest, 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@v3
|
|
|
|
- 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
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 30
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-latest, macOS-latest ]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- 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, v141, v142, clang-cl]
|
|
include:
|
|
- toolset: v141
|
|
toolset_option: -T"v141"
|
|
- toolset: v142
|
|
toolset_option: -T"v142"
|
|
- toolset: clang-cl
|
|
toolset_option: -T"ClangCl"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- 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@v3
|
|
|
|
- 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-custom:
|
|
needs: build-linux
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 30
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler: [ gcc, clang ]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- 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_SNAPSHOT
|
|
run: |
|
|
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_SNAPSHOT
|
|
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_SNAPSHOT
|
|
|
|
- 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_PARSER
|
|
run: |
|
|
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_PARSER
|
|
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_PARSER
|
|
|
|
- name: FLECS_PLECS
|
|
run: |
|
|
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_PLECS
|
|
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_PLECS
|
|
|
|
- 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_META_C
|
|
run: |
|
|
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_META_C
|
|
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_META_C
|
|
|
|
- name: FLECS_EXPR
|
|
run: |
|
|
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_EXPR
|
|
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_EXPR
|
|
|
|
- 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_COREDOC
|
|
run: |
|
|
bake rebuild --strict -D FLECS_CUSTOM_BUILD -D FLECS_COREDOC
|
|
bake rebuild --strict --cfg release -D FLECS_CUSTOM_BUILD -D FLECS_COREDOC
|
|
|
|
- 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@v3
|
|
- name: build flecs
|
|
run: ${{ matrix.compiler }} flecs.c --shared -fPIC -pedantic -Wall -Wextra -Wno-unused-parameter -Werror -Wshadow -Wconversion -Wno-missing-field-initializers
|
|
|
|
build-scan-build:
|
|
needs: build-linux
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 30
|
|
strategy:
|
|
fail-fast: false
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- 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-latest ]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- 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 api
|
|
run: bake run test/api -- -j 8
|
|
|
|
- name: test addons
|
|
run: bake run test/addons -- -j 8
|
|
|
|
- name: test meta
|
|
run: bake run test/meta -- -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-20.04, cc: gcc-11, cxx: g++-11 }
|
|
- { os: ubuntu-latest, cc: gcc-12, cxx: g++-12 }
|
|
- { os: ubuntu-latest, 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@v3
|
|
|
|
- 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_api -- -j 8
|
|
|
|
test-cpp-macos:
|
|
needs: [build-macos]
|
|
runs-on: ${{ matrix.os.version }}
|
|
timeout-minutes: 30
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os:
|
|
- { version: macOS-11, xcode: '11.7' }
|
|
- { version: macOS-11, xcode: '12.4' }
|
|
- { version: macOS-11, xcode: '13.0' }
|
|
- { version: macOS-12, xcode: '13.1' }
|
|
- { version: macOS-12, xcode: '14.0' }
|
|
|
|
env:
|
|
CC: clang
|
|
CXX: clang++
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- 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_api -- -j 8
|
|
|
|
test-windows:
|
|
needs: build-windows
|
|
runs-on: windows-latest
|
|
timeout-minutes: 30
|
|
strategy:
|
|
fail-fast: false
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- 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 api
|
|
run: bake/bake run test\api -- -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 collections
|
|
run: bake/bake run test\collections -- -j 8
|
|
|
|
- name: test c++
|
|
run: bake/bake run test\cpp_api -- -j 8
|
|
|
|
test-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@v3
|
|
- 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
|
|
|
|
- name: test api
|
|
run: bake/bake run test/api -- -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 collections
|
|
run: bake/bake run test/collections -- -j 8
|
|
|
|
- name: test c++
|
|
run: bake/bake run test/cpp_api -- -j 8
|
|
|
|
test-sanitized-api:
|
|
needs: [ build-linux ]
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 30
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-latest ]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- 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/api --cfg sanitize -- -j 8
|
|
|
|
test-sanitized-addons:
|
|
needs: [ build-linux ]
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 30
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-latest ]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- 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-latest ]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- 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-collections:
|
|
needs: [ build-linux ]
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 30
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-latest ]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- 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_api:
|
|
needs: [ build-linux ]
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 30
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-latest ]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- 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_api --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-latest ]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- 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
|