123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391 |
- name: Determinism Check
- env:
- CONVEX_VS_MESH_HASH: '0x610d538e15420778'
- RAGDOLL_HASH: '0x275057ded572c916'
- PYRAMID_HASH: '0x198b8eeaee57e29a'
- CHARACTER_VIRTUAL_HASH: '0x8fbe7347b302ac43'
- EMSCRIPTEN_VERSION: 3.1.73
- UBUNTU_CLANG_VERSION: clang++-18
- UBUNTU_GCC_VERSION: g++-14
- UBUNTU_GCC_AARCH64_VERSION: aarch64-linux-gnu-g++-14
- UBUNTU_GCC_RISCV_VERSION: riscv64-linux-gnu-g++-14
- UBUNTU_GCC_POWERPC_VERSION: powerpc64le-linux-gnu-g++-14
- UBUNTU_GCC_LOONGARCH_VERSION: loongarch64-linux-gnu-g++-14
- on:
- push:
- branches: [ master ]
- paths-ignore:
- - 'Docs/**'
- - '**.md'
- pull_request:
- branches: [ master ]
- paths-ignore:
- - 'Docs/**'
- - '**.md'
- jobs:
- linux_clang:
- runs-on: ubuntu-latest
- name: Linux Clang Determinism Check
- steps:
- - name: Checkout Code
- uses: actions/checkout@v4
- - name: Configure CMake
- working-directory: ${{github.workspace}}/Build
- run: ./cmake_linux_clang_gcc.sh Distribution ${{env.UBUNTU_CLANG_VERSION}} -DCROSS_PLATFORM_DETERMINISTIC=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=ON -DTARGET_PERFORMANCE_TEST=ON
- - name: Build
- run: cmake --build ${{github.workspace}}/Build/Linux_Distribution -j $(nproc)
- - name: Unit Tests
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: ctest --output-on-failure --verbose
- - name: Test ConvexVsMesh
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: ./PerformanceTest -q=LinearCast -t=max -s=ConvexVsMesh -validate_hash=${CONVEX_VS_MESH_HASH}
- - name: Test Ragdoll
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: ./PerformanceTest -q=LinearCast -t=max -s=Ragdoll -validate_hash=${RAGDOLL_HASH}
- - name: Test Pyramid
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: ./PerformanceTest -q=LinearCast -t=max -s=Pyramid -validate_hash=${PYRAMID_HASH}
- - name: Test CharacterVirtual
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: ./PerformanceTest -q=Discrete -t=max -s=CharacterVirtual -validate_hash=${CHARACTER_VIRTUAL_HASH}
- linux_gcc:
- runs-on: ubuntu-latest
- name: Linux GCC Determinism Check
- steps:
- - name: Checkout Code
- uses: actions/checkout@v4
- - name: Configure CMake
- working-directory: ${{github.workspace}}/Build
- run: ./cmake_linux_clang_gcc.sh Distribution ${{env.UBUNTU_GCC_VERSION}} -DCROSS_PLATFORM_DETERMINISTIC=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=ON -DTARGET_PERFORMANCE_TEST=ON
- - name: Build
- run: cmake --build ${{github.workspace}}/Build/Linux_Distribution -j $(nproc)
- - name: Unit Tests
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: ctest --output-on-failure --verbose
- - name: Test ConvexVsMesh
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: ./PerformanceTest -q=LinearCast -t=max -s=ConvexVsMesh -validate_hash=${CONVEX_VS_MESH_HASH}
- - name: Test Ragdoll
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: ./PerformanceTest -q=LinearCast -t=max -s=Ragdoll -validate_hash=${RAGDOLL_HASH}
- - name: Test Pyramid
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: ./PerformanceTest -q=LinearCast -t=max -s=Pyramid -validate_hash=${PYRAMID_HASH}
- - name: Test CharacterVirtual
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: ./PerformanceTest -q=Discrete -t=max -s=CharacterVirtual -validate_hash=${CHARACTER_VIRTUAL_HASH}
- msvc_cl:
- runs-on: windows-latest
- name: Visual Studio CL Determinism Check
- steps:
- - name: Checkout Code
- uses: actions/checkout@v4
- - name: Add msbuild to PATH
- uses: microsoft/setup-msbuild@v2
- - name: Configure CMake
- working-directory: ${{github.workspace}}/Build
- run: ./cmake_vs2022_cl.bat -DCROSS_PLATFORM_DETERMINISTIC=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=ON -DTARGET_PERFORMANCE_TEST=ON
- - name: Build
- run: msbuild Build\VS2022_CL\JoltPhysics.sln /property:Configuration=Distribution
- - name: Unit Tests
- working-directory: ${{github.workspace}}/Build/VS2022_CL/Distribution
- run: ./UnitTests.exe
- - name: Test ConvexVsMesh
- working-directory: ${{github.workspace}}/Build/VS2022_CL/Distribution
- run: ./PerformanceTest -q=LinearCast -t=max -s=ConvexVsMesh "-validate_hash=$env:CONVEX_VS_MESH_HASH"
- - name: Test Ragdoll
- working-directory: ${{github.workspace}}/Build/VS2022_CL/Distribution
- run: ./PerformanceTest -q=LinearCast -t=max -s=Ragdoll "-validate_hash=$env:RAGDOLL_HASH"
- - name: Test Pyramid
- working-directory: ${{github.workspace}}/Build/VS2022_CL/Distribution
- run: ./PerformanceTest -q=LinearCast -t=max -s=Pyramid "-validate_hash=$env:PYRAMID_HASH"
- - name: Test CharacterVirtual
- working-directory: ${{github.workspace}}/Build/VS2022_CL/Distribution
- run: ./PerformanceTest -q=Discrete -t=max -s=CharacterVirtual "-validate_hash=$env:CHARACTER_VIRTUAL_HASH"
- msvc_cl_32:
- runs-on: windows-latest
- name: Visual Studio CL 32-bit Determinism Check
- steps:
- - name: Checkout Code
- uses: actions/checkout@v4
- - name: Add msbuild to PATH
- uses: microsoft/setup-msbuild@v2
- - name: Configure CMake
- working-directory: ${{github.workspace}}/Build
- run: ./cmake_vs2022_cl_32bit.bat -DCROSS_PLATFORM_DETERMINISTIC=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=ON -DTARGET_PERFORMANCE_TEST=ON
- - name: Build
- run: msbuild Build\VS2022_CL_32BIT\JoltPhysics.sln /property:Configuration=Distribution
- - name: Unit Tests
- working-directory: ${{github.workspace}}/Build/VS2022_CL_32BIT/Distribution
- run: ./UnitTests.exe
- - name: Test ConvexVsMesh
- working-directory: ${{github.workspace}}/Build/VS2022_CL_32BIT/Distribution
- run: ./PerformanceTest -q=LinearCast -t=max -s=ConvexVsMesh "-validate_hash=$env:CONVEX_VS_MESH_HASH"
- - name: Test Ragdoll
- working-directory: ${{github.workspace}}/Build/VS2022_CL_32BIT/Distribution
- run: ./PerformanceTest -q=LinearCast -t=max -s=Ragdoll "-validate_hash=$env:RAGDOLL_HASH"
- - name: Test Pyramid
- working-directory: ${{github.workspace}}/Build/VS2022_CL_32BIT/Distribution
- run: ./PerformanceTest -q=LinearCast -t=max -s=Pyramid "-validate_hash=$env:PYRAMID_HASH"
- - name: Test CharacterVirtual
- working-directory: ${{github.workspace}}/Build/VS2022_CL_32BIT/Distribution
- run: ./PerformanceTest -q=Discrete -t=max -s=CharacterVirtual "-validate_hash=$env:CHARACTER_VIRTUAL_HASH"
- macos:
- runs-on: macos-latest
- name: macOS Determinism Check
- steps:
- - name: Checkout Code
- uses: actions/checkout@v4
- - name: Configure CMake
- working-directory: ${{github.workspace}}/Build
- run: ./cmake_linux_clang_gcc.sh Distribution clang++ -DCROSS_PLATFORM_DETERMINISTIC=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=ON -DTARGET_PERFORMANCE_TEST=ON
- - name: Build
- run: cmake --build ${{github.workspace}}/Build/Linux_Distribution -j $(nproc)
- - name: Unit Tests
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: ctest --output-on-failure --verbose
- - name: Test ConvexVsMesh
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: ./PerformanceTest -q=LinearCast -t=max -s=ConvexVsMesh -validate_hash=${CONVEX_VS_MESH_HASH}
- - name: Test Ragdoll
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: ./PerformanceTest -q=LinearCast -t=max -s=Ragdoll -validate_hash=${RAGDOLL_HASH}
- - name: Test Pyramid
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: ./PerformanceTest -q=LinearCast -t=max -s=Pyramid -validate_hash=${PYRAMID_HASH}
- - name: Test CharacterVirtual
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: ./PerformanceTest -q=Discrete -t=max -s=CharacterVirtual -validate_hash=${CHARACTER_VIRTUAL_HASH}
- arm_clang:
- runs-on: ubuntu-latest
- name: ARM Clang Determinism Check
- steps:
- - name: Checkout Code
- uses: actions/checkout@v4
- - name: Update index
- run: sudo apt-get update
- - name: Install Cross Compiler
- run: sudo apt-get install gcc-14-aarch64-linux-gnu gcc-14-multilib g++-14-multilib libstdc++-14-dev-arm64-cross qemu-user -y
- - name: Configure CMake
- working-directory: ${{github.workspace}}/Build
- run: ./cmake_linux_clang_gcc.sh Distribution ${{env.UBUNTU_CLANG_VERSION}} -DCROSS_COMPILE_ARM=ON -DCROSS_PLATFORM_DETERMINISTIC=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=ON -DTARGET_PERFORMANCE_TEST=ON
- - name: Build
- run: cmake --build ${{github.workspace}}/Build/Linux_Distribution -j $(nproc)
- - name: Unit Tests
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./UnitTests
- - name: Test ConvexVsMesh
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./PerformanceTest -q=LinearCast -t=max -s=ConvexVsMesh -validate_hash=${CONVEX_VS_MESH_HASH}
- - name: Test Ragdoll
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./PerformanceTest -q=LinearCast -t=max -s=Ragdoll -validate_hash=${RAGDOLL_HASH}
- - name: Test Pyramid
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./PerformanceTest -q=LinearCast -t=max -s=Pyramid -validate_hash=${PYRAMID_HASH}
- - name: Test CharacterVirtual
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./PerformanceTest -q=Discrete -t=max -s=CharacterVirtual -validate_hash=${CHARACTER_VIRTUAL_HASH}
- arm_clang_32:
- runs-on: ubuntu-latest
- name: ARM Clang 32-bit Determinism Check
- steps:
- - name: Checkout Code
- uses: actions/checkout@v4
- - name: Update index
- run: sudo apt-get update
- - name: Install Cross Compiler
- run: sudo apt-get install g++-14-arm-linux-gnueabihf qemu-user -y
- - name: Configure CMake
- working-directory: ${{github.workspace}}/Build
- run: ./cmake_linux_clang_gcc.sh Distribution ${{env.UBUNTU_CLANG_VERSION}} -DCROSS_COMPILE_ARM=ON -DCROSS_COMPILE_ARM_TARGET="arm-linux-gnueabihf" -DCROSS_PLATFORM_DETERMINISTIC=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=ON -DTARGET_PERFORMANCE_TEST=ON
- - name: Build
- run: cmake --build ${{github.workspace}}/Build/Linux_Distribution -j $(nproc)
- - name: Unit Tests
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-arm -L /usr/arm-linux-gnueabihf/ ./UnitTests
- - name: Test ConvexVsMesh
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-arm -L /usr/arm-linux-gnueabihf/ ./PerformanceTest -q=LinearCast -t=max -s=ConvexVsMesh -validate_hash=${CONVEX_VS_MESH_HASH}
- - name: Test Ragdoll
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-arm -L /usr/arm-linux-gnueabihf/ ./PerformanceTest -q=LinearCast -t=max -s=Ragdoll -validate_hash=${RAGDOLL_HASH}
- - name: Test Pyramid
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-arm -L /usr/arm-linux-gnueabihf/ ./PerformanceTest -q=LinearCast -t=max -s=Pyramid -validate_hash=${PYRAMID_HASH}
- - name: Test CharacterVirtual
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-arm -L /usr/arm-linux-gnueabihf/ ./PerformanceTest -q=Discrete -t=max -s=CharacterVirtual -validate_hash=${CHARACTER_VIRTUAL_HASH}
- arm_gcc:
- runs-on: ubuntu-latest
- name: ARM GCC Determinism Check
- steps:
- - name: Checkout Code
- uses: actions/checkout@v4
- - name: Update index
- run: sudo apt-get update
- - name: Install Cross Compiler
- run: sudo apt-get install g++-14-aarch64-linux-gnu gcc-14-multilib g++-14-multilib libstdc++-14-dev-arm64-cross qemu-user -y
- - name: Configure CMake
- working-directory: ${{github.workspace}}/Build
- run: ./cmake_linux_clang_gcc.sh Distribution ${{env.UBUNTU_GCC_AARCH64_VERSION}} -DCROSS_COMPILE_ARM=ON -DCROSS_PLATFORM_DETERMINISTIC=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=ON -DTARGET_PERFORMANCE_TEST=ON
- - name: Build
- run: cmake --build ${{github.workspace}}/Build/Linux_Distribution -j $(nproc)
- - name: Unit Tests
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./UnitTests
- - name: Test ConvexVsMesh
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./PerformanceTest -q=LinearCast -t=max -s=ConvexVsMesh -validate_hash=${CONVEX_VS_MESH_HASH}
- - name: Test Ragdoll
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./PerformanceTest -q=LinearCast -t=max -s=Ragdoll -validate_hash=${RAGDOLL_HASH}
- - name: Test Pyramid
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./PerformanceTest -q=LinearCast -t=max -s=Pyramid -validate_hash=${PYRAMID_HASH}
- - name: Test CharacterVirtual
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./PerformanceTest -q=Discrete -t=max -s=CharacterVirtual -validate_hash=${CHARACTER_VIRTUAL_HASH}
- riscv_gcc:
- runs-on: ubuntu-latest
- name: RISC-V GCC Determinism Check
- steps:
- - name: Checkout Code
- uses: actions/checkout@v4
- - name: Update index
- run: sudo apt-get update
- - name: Install Cross Compiler
- run: sudo apt-get install g++-14-riscv64-linux-gnu gcc-14-multilib g++-14-multilib qemu-user -y
- - name: Configure CMake
- working-directory: ${{github.workspace}}/Build
- run: ./cmake_linux_clang_gcc.sh Distribution ${{env.UBUNTU_GCC_RISCV_VERSION}} -DCROSS_COMPILE_ARM=ON -DCROSS_PLATFORM_DETERMINISTIC=ON -DCROSS_COMPILE_ARM_TARGET="" -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=ON -DTARGET_PERFORMANCE_TEST=ON
- - name: Build
- run: cmake --build ${{github.workspace}}/Build/Linux_Distribution -j $(nproc)
- - name: Unit Tests
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-riscv64 -L /usr/riscv64-linux-gnu/ ./UnitTests
- - name: Test ConvexVsMesh
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-riscv64 -L /usr/riscv64-linux-gnu/ ./PerformanceTest -q=LinearCast -t=max -s=ConvexVsMesh -validate_hash=${CONVEX_VS_MESH_HASH}
- - name: Test Ragdoll
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-riscv64 -L /usr/riscv64-linux-gnu/ ./PerformanceTest -q=LinearCast -t=max -s=Ragdoll -validate_hash=${RAGDOLL_HASH}
- - name: Test Pyramid
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-riscv64 -L /usr/riscv64-linux-gnu/ ./PerformanceTest -q=LinearCast -t=max -s=Pyramid -validate_hash=${PYRAMID_HASH}
- - name: Test CharacterVirtual
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-riscv64 -L /usr/riscv64-linux-gnu/ ./PerformanceTest -q=Discrete -t=max -s=CharacterVirtual -validate_hash=${CHARACTER_VIRTUAL_HASH}
- powerpcle_gcc:
- runs-on: ubuntu-latest
- name: PowerPC Little Endian GCC Determinism Check
- steps:
- - name: Checkout Code
- uses: actions/checkout@v4
- - name: Update index
- run: sudo apt-get update
- - name: Install Cross Compiler
- run: sudo apt-get install g++-14-powerpc64le-linux-gnu gcc-14-multilib g++-14-multilib qemu-user -y
- - name: Configure CMake
- working-directory: ${{github.workspace}}/Build
- run: ./cmake_linux_clang_gcc.sh Distribution ${{env.UBUNTU_GCC_POWERPC_VERSION}} -DCROSS_COMPILE_ARM=ON -DCROSS_PLATFORM_DETERMINISTIC=ON -DCROSS_COMPILE_ARM_TARGET="" -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=ON -DTARGET_PERFORMANCE_TEST=ON
- - name: Build
- run: cmake --build ${{github.workspace}}/Build/Linux_Distribution -j $(nproc)
- - name: Unit Tests
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-ppc64le -L /usr/powerpc64le-linux-gnu/ ./UnitTests
- - name: Test ConvexVsMesh
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-ppc64le -L /usr/powerpc64le-linux-gnu/ ./PerformanceTest -q=LinearCast -t=max -s=ConvexVsMesh -validate_hash=${CONVEX_VS_MESH_HASH}
- # This is really slow so disabled for the moment
- # - name: Test Ragdoll
- # working-directory: ${{github.workspace}}/Build/Linux_Distribution
- # run: qemu-ppc64le -L /usr/powerpc64le-linux-gnu/ ./PerformanceTest -q=LinearCast -t=max -s=Ragdoll -validate_hash=${RAGDOLL_HASH}
- # - name: Test Pyramid
- # working-directory: ${{github.workspace}}/Build/Linux_Distribution
- # run: qemu-ppc64le -L /usr/powerpc64le-linux-gnu/ ./PerformanceTest -q=LinearCast -t=max -s=Pyramid -validate_hash=${PYRAMID_HASH}
- loongarch_gcc:
- runs-on: ubuntu-latest
- name: LoongArch GCC Determinism Check
- steps:
- - name: Checkout Code
- uses: actions/checkout@v4
- - name: Update index
- run: sudo apt-get update
- - name: Install Cross Compiler
- run: sudo apt-get install g++-14-loongarch64-linux-gnu gcc-14-multilib g++-14-multilib qemu-user -y
- - name: Configure CMake
- working-directory: ${{github.workspace}}/Build
- run: ./cmake_linux_clang_gcc.sh Distribution ${{env.UBUNTU_GCC_LOONGARCH_VERSION}} -DCROSS_COMPILE_ARM=ON -DCROSS_PLATFORM_DETERMINISTIC=ON -DCROSS_COMPILE_ARM_TARGET="" -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=ON -DTARGET_PERFORMANCE_TEST=ON
- - name: Build
- run: cmake --build ${{github.workspace}}/Build/Linux_Distribution -j $(nproc)
- - name: Unit Tests
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-loongarch64 -L /usr/loongarch64-linux-gnu/ ./UnitTests
- - name: Test ConvexVsMesh
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-loongarch64 -L /usr/loongarch64-linux-gnu/ ./PerformanceTest -q=LinearCast -t=max -s=ConvexVsMesh -validate_hash=${CONVEX_VS_MESH_HASH}
- - name: Test Ragdoll
- working-directory: ${{github.workspace}}/Build/Linux_Distribution
- run: qemu-loongarch64 -L /usr/loongarch64-linux-gnu/ ./PerformanceTest -q=LinearCast -t=max -s=Ragdoll -validate_hash=${RAGDOLL_HASH}
- # This is slow so disabled for the moment
- # - name: Test Pyramid
- # working-directory: ${{github.workspace}}/Build/Linux_Distribution
- # run: qemu-loongarch64 -L /usr/loongarch64-linux-gnu/ ./PerformanceTest -q=LinearCast -t=max -s=Pyramid -validate_hash=${PYRAMID_HASH}
- emscripten:
- runs-on: ubuntu-latest
- name: Emscripten Determinism Check
- steps:
- - name: Checkout Code
- uses: actions/checkout@v4
- - name: Setup emsdk
- uses: mymindstorm/setup-emsdk@v14
- with:
- version: ${{env.EMSCRIPTEN_VERSION}}
- - name: Verify emsdk
- run: emcc -v
- - name: Setup Node.js 18.x
- uses: actions/setup-node@v4
- with:
- node-version: 18.x
- - name: Configure CMake
- working-directory: ${{github.workspace}}/Build
- run: ./cmake_linux_emscripten.sh Distribution -DCROSS_PLATFORM_DETERMINISTIC=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=ON -DTARGET_PERFORMANCE_TEST=ON
- - name: Build
- run: cmake --build ${{github.workspace}}/Build/WASM_Distribution -j $(nproc)
- - name: Unit Tests
- working-directory: ${{github.workspace}}/Build/WASM_Distribution
- run: node UnitTests.js
- - name: Test ConvexVsMesh
- working-directory: ${{github.workspace}}/Build/WASM_Distribution
- run: node PerformanceTest.js -q=LinearCast -t=max -s=ConvexVsMesh -validate_hash=${CONVEX_VS_MESH_HASH}
- - name: Test Ragdoll
- working-directory: ${{github.workspace}}/Build/WASM_Distribution
- run: node PerformanceTest.js -q=LinearCast -t=max -s=Ragdoll -validate_hash=${RAGDOLL_HASH}
- - name: Test Pyramid
- working-directory: ${{github.workspace}}/Build/WASM_Distribution
- run: node PerformanceTest.js -q=LinearCast -t=max -s=Pyramid -validate_hash=${PYRAMID_HASH}
- - name: Test CharacterVirtual
- working-directory: ${{github.workspace}}/Build/WASM_Distribution
- run: node PerformanceTest.js -q=Discrete -t=max -s=CharacterVirtual -validate_hash=${CHARACTER_VIRTUAL_HASH}
|