ci.yml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. name: ci
  2. run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
  3. on:
  4. push:
  5. workflow_dispatch:
  6. jobs:
  7. windows:
  8. runs-on: ${{ matrix.os }}
  9. strategy:
  10. fail-fast: false
  11. matrix:
  12. os: [windows-latest, windows-2019]
  13. toolkit: [v143, v142, v141, v140]
  14. std: [98, 11, 14, 17, 20]
  15. config: [Debug, Release]
  16. exclude:
  17. - os: windows-2019
  18. toolkit: v143
  19. - os: windows-2019
  20. toolkit: v142
  21. - os: windows-latest
  22. toolkit: v140
  23. - os: windows-latest
  24. toolkit: v141
  25. - os: windows-2019
  26. std: 20
  27. - os: windows-2019
  28. toolkit: v140
  29. std: 17
  30. - os: windows-2019
  31. toolkit: v140
  32. std: 14
  33. steps:
  34. - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
  35. - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
  36. - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
  37. - name: Check out repository code
  38. uses: actions/checkout@v4
  39. - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
  40. - run: echo "🖥️ The workflow is now ready to test your code on the runner."
  41. - name: List files in the repository
  42. run: |
  43. ls ${{ github.workspace }}
  44. - run: echo "🍏 This job's status is ${{ job.status }}."
  45. - name: CMake Version
  46. run: cmake --version
  47. - name: Run with automagic detection
  48. run: |
  49. cmake -S. -B ./build_auto -T ${{matrix.toolkit}}
  50. cmake --build ./build_auto --config ${{matrix.config}}
  51. ctest --verbose -C ${{matrix.config}} --test-dir ./build_auto
  52. - name: Run with GLM_FORCE_PURE
  53. run: |
  54. cmake -S. -B ./build_pure_std -T ${{matrix.toolkit}} -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  55. cmake --build ./build_pure_std --config ${{matrix.config}}
  56. ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_std
  57. - name: Run with GLM_FORCE_PURE and language extensions
  58. run: |
  59. cmake -S. -B ./build_pure_ext -T ${{matrix.toolkit}} -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  60. cmake --build ./build_pure_ext --config ${{matrix.config}}
  61. ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_ext
  62. - name: Run with GLM_ENABLE_SIMD_SSE2
  63. run: |
  64. cmake -S. -B ./build_sse2_std -T ${{matrix.toolkit}} -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  65. cmake --build ./build_sse2_std --config ${{matrix.config}}
  66. ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std
  67. - name: Run with GLM_ENABLE_SIMD_SSE2 and language extensions
  68. run: |
  69. cmake -S. -B ./build_sse2_ext -T ${{matrix.toolkit}} -DGLM_ENABLE_SIMD_SSE2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  70. cmake --build ./build_sse2_ext --config ${{matrix.config}}
  71. ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_ext
  72. - name: Run with GLM_ENABLE_SIMD_AVX
  73. run: |
  74. cmake -S. -B ./build_avx1_std -T ${{matrix.toolkit}} -DGLM_ENABLE_SIMD_AVX=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  75. cmake --build ./build_avx1_std --config ${{matrix.config}}
  76. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_std
  77. - name: Run with GLM_ENABLE_SIMD_AVX and language extensions
  78. run: |
  79. cmake -S. -B ./build_avx1_ext -T ${{matrix.toolkit}} -DGLM_ENABLE_SIMD_AVX=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  80. cmake --build ./build_avx1_ext --config ${{matrix.config}}
  81. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext
  82. - name: Run with GLM_ENABLE_SIMD_AVX2
  83. run: |
  84. cmake -S. -B ./build_avx2_std -T ${{matrix.toolkit}} -DGLM_ENABLE_SIMD_AVX2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  85. cmake --build ./build_avx2_std --config ${{matrix.config}}
  86. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_std
  87. - name: Run with GLM_ENABLE_SIMD_AVX2 and language extensions
  88. run: |
  89. cmake -S. -B ./build_avx2_ext -T ${{matrix.toolkit}} -DGLM_ENABLE_SIMD_AVX2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  90. cmake --build ./build_avx2_ext --config ${{matrix.config}}
  91. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_ext
  92. ubuntu:
  93. runs-on: ${{ matrix.os }}
  94. strategy:
  95. fail-fast: false
  96. matrix:
  97. os: [ubuntu-latest, ubuntu-20.04]
  98. std: [98, 11, 14, 17, 20]
  99. config: [Debug, Release]
  100. exclude:
  101. - os: ubuntu-20.04
  102. std: 20
  103. steps:
  104. - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
  105. - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
  106. - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
  107. - name: Check out repository code
  108. uses: actions/checkout@v4
  109. - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
  110. - run: echo "🖥️ The workflow is now ready to test your code on the runner."
  111. - name: List files in the repository
  112. run: |
  113. ls ${{ github.workspace }}
  114. - run: echo "🍏 This job's status is ${{ job.status }}."
  115. - name: CMake Version
  116. run: cmake --version
  117. - name: Run with automagic detection
  118. run: |
  119. cmake -S. -B ./build_auto
  120. cmake --build ./build_auto --config ${{matrix.config}}
  121. ctest --verbose -C ${{matrix.config}} --test-dir ./build_auto
  122. - name: Run with GLM_FORCE_PURE
  123. run: |
  124. cmake -S. -B ./build_pure_std -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  125. cmake --build ./build_pure_std --config ${{matrix.config}}
  126. ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_std
  127. - name: Run with GLM_FORCE_PURE and language extensions
  128. run: |
  129. cmake -S. -B ./build_pure_ext -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  130. cmake --build ./build_pure_ext --config ${{matrix.config}}
  131. ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_ext
  132. - name: Run with GLM_ENABLE_SIMD_SSE2
  133. run: |
  134. cmake -S. -B ./build_sse2_std -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  135. cmake --build ./build_sse2_std --config ${{matrix.config}}
  136. ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std
  137. - name: Run with GLM_ENABLE_SIMD_SSE2 and language extensions
  138. run: |
  139. cmake -S. -B ./build_sse2_ext -DGLM_ENABLE_SIMD_SSE2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  140. cmake --build ./build_sse2_ext --config ${{matrix.config}}
  141. ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_ext
  142. - name: Run with GLM_ENABLE_SIMD_AVX
  143. run: |
  144. cmake -S. -B ./build_avx1_std -DGLM_ENABLE_SIMD_AVX=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  145. cmake --build ./build_avx1_std --config ${{matrix.config}}
  146. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_std
  147. - name: Run with GLM_ENABLE_SIMD_AVX and language extensions
  148. run: |
  149. cmake -S. -B ./build_avx1_ext -DGLM_ENABLE_SIMD_AVX=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  150. cmake --build ./build_avx1_ext --config ${{matrix.config}}
  151. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext
  152. - name: Run with GLM_ENABLE_SIMD_AVX2
  153. run: |
  154. cmake -S. -B ./build_avx2_std -DGLM_ENABLE_SIMD_AVX2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  155. cmake --build ./build_avx2_std --config ${{matrix.config}}
  156. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_std
  157. - name: Run with GLM_ENABLE_SIMD_AVX2 and language extensions
  158. run: |
  159. cmake -S. -B ./build_avx2_ext -DGLM_ENABLE_SIMD_AVX2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  160. cmake --build ./build_avx2_ext --config ${{matrix.config}}
  161. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_ext
  162. macos:
  163. runs-on: ${{ matrix.os }}
  164. strategy:
  165. fail-fast: false
  166. matrix:
  167. os: [macos-latest, macos-11]
  168. std: [98, 11, 14, 17, 20]
  169. config: [Debug, Release]
  170. exclude:
  171. - os: macos-11
  172. std: 20
  173. steps:
  174. - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
  175. - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
  176. - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
  177. - name: Check out repository code
  178. uses: actions/checkout@v4
  179. - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
  180. - run: echo "🖥️ The workflow is now ready to test your code on the runner."
  181. - name: List files in the repository
  182. run: |
  183. ls ${{ github.workspace }}
  184. - run: echo "🍏 This job's status is ${{ job.status }}."
  185. - name: CMake Version
  186. run: cmake --version
  187. - name: Run with automagic detection
  188. run: |
  189. cmake -S. -B ./build_auto
  190. cmake --build ./build_auto --config ${{matrix.config}}
  191. ctest --verbose -C ${{matrix.config}} --test-dir ./build_auto
  192. - name: Run with GLM_FORCE_PURE
  193. run: |
  194. cmake -S. -B ./build_pure_std -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  195. cmake --build ./build_pure_std --config ${{matrix.config}}
  196. ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_std
  197. - name: Run with GLM_FORCE_PURE and language extensions
  198. run: |
  199. cmake -S. -B ./build_pure_ext -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  200. cmake --build ./build_pure_ext --config ${{matrix.config}}
  201. ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_ext
  202. - name: Run with GLM_ENABLE_SIMD_SSE2
  203. run: |
  204. cmake -S. -B ./build_sse2_std -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  205. cmake --build ./build_sse2_std --config ${{matrix.config}}
  206. ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std
  207. - name: Run with GLM_ENABLE_SIMD_SSE2 and language extensions
  208. run: |
  209. cmake -S. -B ./build_sse2_ext -DGLM_ENABLE_SIMD_SSE2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  210. cmake --build ./build_sse2_ext --config ${{matrix.config}}
  211. ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_ext
  212. - name: Run with GLM_ENABLE_SIMD_AVX
  213. run: |
  214. cmake -S. -B ./build_avx1_std -DGLM_ENABLE_SIMD_AVX=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON
  215. cmake --build ./build_avx1_std --config ${{matrix.config}}
  216. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_std
  217. - name: Run with GLM_ENABLE_SIMD_AVX and language extensions
  218. run: |
  219. cmake -S. -B ./build_avx1_ext -DGLM_ENABLE_SIMD_AVX=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON
  220. cmake --build ./build_avx1_ext --config ${{matrix.config}}
  221. ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext