determinism_check.yml 4.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. name: Determinism Check
  2. env:
  3. CONVEX_VS_MESH_HASH: '0x485e1d8e739a3c9d'
  4. RAGDOLL_HASH: '0xc29b4c0ea4cf1876'
  5. on:
  6. push:
  7. branches: [ master ]
  8. paths-ignore:
  9. - 'Docs/**'
  10. - '**.md'
  11. - '**.txt'
  12. pull_request:
  13. branches: [ master ]
  14. paths-ignore:
  15. - 'Docs/**'
  16. - '**.md'
  17. - '**.txt'
  18. jobs:
  19. linux:
  20. runs-on: ubuntu-latest
  21. name: Linux Determinism Check
  22. steps:
  23. - name: Checkout Code
  24. uses: actions/checkout@v2
  25. - name: Configure CMake
  26. run: cmake -B ${{github.workspace}}/Build/Linux_Distribution -DCMAKE_BUILD_TYPE=Distribution -DCMAKE_CXX_COMPILER=clang++ Build -DCROSS_PLATFORM_DETERMINISTIC=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=OFF
  27. - name: Build
  28. run: cmake --build ${{github.workspace}}/Build/Linux_Distribution
  29. - name: Test ConvexVsMesh
  30. working-directory: ${{github.workspace}}/Build/Linux_Distribution
  31. run: ./PerformanceTest -q=LinearCast -t=2 -s=ConvexVsMesh -validate_hash=${CONVEX_VS_MESH_HASH}
  32. - name: Test Ragdoll
  33. working-directory: ${{github.workspace}}/Build/Linux_Distribution
  34. run: ./PerformanceTest -q=LinearCast -t=2 -s=Ragdoll -validate_hash=${RAGDOLL_HASH}
  35. msvc_cl:
  36. runs-on: windows-latest
  37. name: Visual Studio CL Determinism Check
  38. steps:
  39. - name: Checkout Code
  40. uses: actions/checkout@v2
  41. - name: Add msbuild to PATH
  42. uses: microsoft/[email protected]
  43. - name: Configure CMake
  44. run: cmake -B ${{github.workspace}}/Build/VS2022_CL -G "Visual Studio 17 2022" -A x64 Build -DCROSS_PLATFORM_DETERMINISTIC=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=OFF
  45. - name: Build
  46. run: msbuild Build\VS2022_CL\JoltPhysics.sln /property:Configuration=Distribution
  47. - name: Test ConvexVsMesh
  48. working-directory: ${{github.workspace}}/Build/VS2022_CL/Distribution
  49. run: ./PerformanceTest -q=LinearCast -t=2 -s=ConvexVsMesh "-validate_hash=$env:CONVEX_VS_MESH_HASH"
  50. - name: Test Ragdoll
  51. working-directory: ${{github.workspace}}/Build/VS2022_CL/Distribution
  52. run: ./PerformanceTest -q=LinearCast -t=2 -s=Ragdoll "-validate_hash=$env:RAGDOLL_HASH"
  53. macos:
  54. runs-on: macos-latest
  55. name: MacOS Determinism Check
  56. steps:
  57. - name: Checkout Code
  58. uses: actions/checkout@v2
  59. - name: Configure CMake
  60. run: cmake -B ${{github.workspace}}/Build/Linux_Distribution -DCMAKE_BUILD_TYPE=Distribution Build -DCROSS_PLATFORM_DETERMINISTIC=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=OFF -DUSE_AVX2=OFF -DUSE_AVX512=OFF -DUSE_LZCNT=OFF -DUSE_TZCNT=OFF
  61. - name: Build
  62. run: cmake --build ${{github.workspace}}/Build/Linux_Distribution
  63. - name: Test ConvexVsMesh
  64. working-directory: ${{github.workspace}}/Build/Linux_Distribution
  65. run: ./PerformanceTest -q=LinearCast -t=2 -s=ConvexVsMesh -validate_hash=${CONVEX_VS_MESH_HASH}
  66. - name: Test Ragdoll
  67. working-directory: ${{github.workspace}}/Build/Linux_Distribution
  68. run: ./PerformanceTest -q=LinearCast -t=2 -s=Ragdoll -validate_hash=${RAGDOLL_HASH}
  69. arm:
  70. runs-on: ubuntu-22.04
  71. name: ARM Determinism Check
  72. steps:
  73. - name: Checkout Code
  74. uses: actions/checkout@v2
  75. - name: Install Cross Compiler
  76. run: sudo apt-get install gcc-11-aarch64-linux-gnu gcc-11-multilib g++-11-multilib libstdc++-11-dev-arm64-cross qemu-user -y
  77. - name: Configure CMake
  78. run: cmake -B ${{github.workspace}}/Build/Linux_Distribution -DCMAKE_BUILD_TYPE=Distribution -DCMAKE_CXX_COMPILER=clang++ Build -DCROSS_PLATFORM_DETERMINISTIC=ON -DCROSS_COMPILE_ARM=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=ON
  79. - name: Build
  80. run: cmake --build ${{github.workspace}}/Build/Linux_Distribution
  81. - name: Test
  82. working-directory: ${{github.workspace}}/Build/Linux_Distribution
  83. run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./UnitTests
  84. - name: Test ConvexVsMesh
  85. working-directory: ${{github.workspace}}/Build/Linux_Distribution
  86. run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./PerformanceTest -q=LinearCast -t=2 -s=ConvexVsMesh -validate_hash=${CONVEX_VS_MESH_HASH}
  87. - name: Test Ragdoll
  88. working-directory: ${{github.workspace}}/Build/Linux_Distribution
  89. run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./PerformanceTest -q=LinearCast -t=2 -s=Ragdoll -validate_hash=${RAGDOLL_HASH}