Skip to content

Commit

Permalink
Test multiple platforms to test multiple compiler versions (#1199)
Browse files Browse the repository at this point in the history
  • Loading branch information
christophe-lunarg authored Dec 28, 2023
1 parent 7882684 commit a40974f
Show file tree
Hide file tree
Showing 5 changed files with 348 additions and 123 deletions.
276 changes: 181 additions & 95 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,36 @@ run-name: ${{ github.actor }} is testing out GitHub Actions 🚀

on:
push:
pull_request:
types: [opened]
pull_request_target:
types: [opened, edited, reopened]

jobs:
windows-latest:
runs-on: windows-latest
windows:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-latest, windows-2019]
toolkit: [v143, v142, v141, v140]
std: [98, 11, 14, 17, 20]
config: [Debug, Release]
exclude:
- os: windows-2019
toolkit: v143
- os: windows-2019
toolkit: v142
- os: windows-latest
toolkit: v140
- os: windows-latest
toolkit: v141
- os: windows-2019
std: 20
- os: windows-2019
toolkit: v140
std: 17
- os: windows-2019
toolkit: v140
std: 14

steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
Expand All @@ -29,41 +48,72 @@ jobs:
- run: echo "🍏 This job's status is ${{ job.status }}."
- name: CMake Version
run: cmake --version
- run: cmake -S. -B ./build_auto
- run: cmake -S. -B ./build_pure_std -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
- run: cmake -S. -B ./build_pure_ext -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
- run: cmake -S. -B ./build_sse2_std -DGLM_TEST_ENABLE_SIMD_SSE2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
- run: cmake -S. -B ./build_sse2_ext -DGLM_TEST_ENABLE_SIMD_SSE2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
- run: cmake -S. -B ./build_avx1_std -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
- run: cmake -S. -B ./build_avx1_ext -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
- run: cmake -S. -B ./build_avx2_std -DGLM_TEST_ENABLE_SIMD_AVX2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
- run: cmake -S. -B ./build_avx2_ext -DGLM_TEST_ENABLE_SIMD_AVX2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
- run: cmake --build ./build_auto --config ${{matrix.config}}
- run: cmake --build ./build_pure_std --config ${{matrix.config}}
- run: cmake --build ./build_pure_ext --config ${{matrix.config}}
- run: cmake --build ./build_sse2_std --config ${{matrix.config}}
- run: cmake --build ./build_sse2_ext --config ${{matrix.config}}
- run: cmake --build ./build_avx1_std --config ${{matrix.config}}
- run: cmake --build ./build_avx1_ext --config ${{matrix.config}}
- run: cmake --build ./build_avx2_std --config ${{matrix.config}}
- run: cmake --build ./build_avx2_ext --config ${{matrix.config}}
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_auto
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_std
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_ext
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_ext
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_std
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_std
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_ext
ubuntu-latest:
runs-on: ubuntu-latest

- name: Run with automagic detection
run: |
cmake -S. -B ./build_auto -T ${{matrix.toolkit}}
cmake --build ./build_auto --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_auto
- name: Run with GLM_TEST_FORCE_PURE
run: |
cmake -S. -B ./build_pure_std -T ${{matrix.toolkit}} -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
cmake --build ./build_pure_std --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_std
- name: Run with GLM_TEST_FORCE_PURE and language extensions
run: |
cmake -S. -B ./build_pure_ext -T ${{matrix.toolkit}} -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
cmake --build ./build_pure_ext --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_ext
- name: Run with GLM_TEST_ENABLE_SIMD_SSE2
run: |
cmake -S. -B ./build_sse2_std -T ${{matrix.toolkit}} -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
cmake --build ./build_sse2_std --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std
- name: Run with GLM_TEST_ENABLE_SIMD_SSE2 and language extensions
run: |
cmake -S. -B ./build_sse2_ext -T ${{matrix.toolkit}} -DGLM_TEST_ENABLE_SIMD_SSE2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
cmake --build ./build_sse2_ext --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_ext
- name: Run with GLM_TEST_ENABLE_SIMD_AVX
run: |
cmake -S. -B ./build_avx1_std -T ${{matrix.toolkit}} -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
cmake --build ./build_avx1_std --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_std
- name: Run with GLM_TEST_ENABLE_SIMD_AVX and language extensions
run: |
cmake -S. -B ./build_avx1_ext -T ${{matrix.toolkit}} -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
cmake --build ./build_avx1_ext --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext
- name: Run with GLM_TEST_ENABLE_SIMD_AVX2
run: |
cmake -S. -B ./build_avx2_std -T ${{matrix.toolkit}} -DGLM_TEST_ENABLE_SIMD_AVX2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
cmake --build ./build_avx2_std --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_std
- name: Run with GLM_TEST_ENABLE_SIMD_AVX2 and language extensions
run: |
cmake -S. -B ./build_avx2_ext -T ${{matrix.toolkit}} -DGLM_TEST_ENABLE_SIMD_AVX2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
cmake --build ./build_avx2_ext --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_ext
ubuntu:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# compiler: [gcc, clang]
os: [ubuntu-latest, ubuntu-20.04]
std: [98, 11, 14, 17, 20]
config: [Debug, Release]
exclude:
- os: ubuntu-20.04
std: 20

steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
Expand All @@ -77,48 +127,69 @@ jobs:
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
# - name: make (with ${{matrix.compiler}}, for ${{matrix.os}})
# env:
# CC: ${{ matrix.compiler }}
# - name: Compiler Version
# run: ${{matrix.compiler}} --version
- name: CMake Version
run: cmake --version
- run: cmake -S. -B ./build_unknown -DGLM_DISABLE_AUTO_DETECTION=ON
- run: cmake -S. -B ./build_auto
- run: cmake -S. -B ./build_pure_std -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
- run: cmake -S. -B ./build_pure_ext -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
- run: cmake -S. -B ./build_sse2_std -DGLM_TEST_ENABLE_SIMD_SSE2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
- run: cmake -S. -B ./build_sse2_ext -DGLM_TEST_ENABLE_SIMD_SSE2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
- run: cmake -S. -B ./build_avx1_std -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
- run: cmake -S. -B ./build_avx1_ext -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
- run: cmake -S. -B ./build_avx2_std -DGLM_TEST_ENABLE_SIMD_AVX2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
- run: cmake -S. -B ./build_avx2_ext -DGLM_TEST_ENABLE_SIMD_AVX2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
- run: cmake --build ./build_auto --config ${{matrix.config}}
- run: cmake --build ./build_pure_std --config ${{matrix.config}}
- run: cmake --build ./build_pure_ext --config ${{matrix.config}}
- run: cmake --build ./build_sse2_std --config ${{matrix.config}}
- run: cmake --build ./build_sse2_ext --config ${{matrix.config}}
- run: cmake --build ./build_avx1_std --config ${{matrix.config}}
- run: cmake --build ./build_avx1_ext --config ${{matrix.config}}
- run: cmake --build ./build_avx2_std --config ${{matrix.config}}
- run: cmake --build ./build_avx2_ext --config ${{matrix.config}}
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_auto
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_std
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_ext
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_ext
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_std
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_std
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_ext
macos-latest:
runs-on: macos-latest
- name: Run with automagic detection
run: |
cmake -S. -B ./build_auto
cmake --build ./build_auto --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_auto
- name: Run with GLM_TEST_FORCE_PURE
run: |
cmake -S. -B ./build_pure_std -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
cmake --build ./build_pure_std --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_std
- name: Run with GLM_TEST_FORCE_PURE and language extensions
run: |
cmake -S. -B ./build_pure_ext -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
cmake --build ./build_pure_ext --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_ext
- name: Run with GLM_TEST_ENABLE_SIMD_SSE2
run: |
cmake -S. -B ./build_sse2_std -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
cmake --build ./build_sse2_std --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std
- name: Run with GLM_TEST_ENABLE_SIMD_SSE2 and language extensions
run: |
cmake -S. -B ./build_sse2_ext -DGLM_TEST_ENABLE_SIMD_SSE2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
cmake --build ./build_sse2_ext --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_ext
- name: Run with GLM_TEST_ENABLE_SIMD_AVX
run: |
cmake -S. -B ./build_avx1_std -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
cmake --build ./build_avx1_std --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_std
- name: Run with GLM_TEST_ENABLE_SIMD_AVX and language extensions
run: |
cmake -S. -B ./build_avx1_ext -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
cmake --build ./build_avx1_ext --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext
- name: Run with GLM_TEST_ENABLE_SIMD_AVX2
run: |
cmake -S. -B ./build_avx2_std -DGLM_TEST_ENABLE_SIMD_AVX2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
cmake --build ./build_avx2_std --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_std
- name: Run with GLM_TEST_ENABLE_SIMD_AVX2 and language extensions
run: |
cmake -S. -B ./build_avx2_ext -DGLM_TEST_ENABLE_SIMD_AVX2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
cmake --build ./build_avx2_ext --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_ext
macos:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-latest, macos-11]
std: [98, 11, 14, 17, 20]
config: [Debug, Release]
exclude:
- os: macos-11
std: 20

steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
Expand All @@ -134,29 +205,44 @@ jobs:
- run: echo "🍏 This job's status is ${{ job.status }}."
- name: CMake Version
run: cmake --version
- name: Clang Version
run: clang --version
- run: cmake -S. -B ./build_auto
- run: cmake -S. -B ./build_unknown -DGLM_DISABLE_AUTO_DETECTION=ON
- run: cmake -S. -B ./build_pure_std -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
- run: cmake -S. -B ./build_pure_ext -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
- run: cmake -S. -B ./build_sse2_std -DGLM_TEST_ENABLE_SIMD_SSE2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
- run: cmake -S. -B ./build_sse2_ext -DGLM_TEST_ENABLE_SIMD_SSE2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
- run: cmake -S. -B ./build_avx1_std -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
- run: cmake -S. -B ./build_avx1_ext -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
- run: cmake --build ./build_auto --config ${{matrix.config}}
- run: cmake --build ./build_unknown --config ${{matrix.config}}
- run: cmake --build ./build_pure_std --config ${{matrix.config}}
- run: cmake --build ./build_pure_ext --config ${{matrix.config}}
- run: cmake --build ./build_sse2_std --config ${{matrix.config}}
- run: cmake --build ./build_sse2_ext --config ${{matrix.config}}
- run: cmake --build ./build_avx1_std --config ${{matrix.config}}
- run: cmake --build ./build_avx1_ext --config ${{matrix.config}}
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_auto
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_unknown
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_std
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_ext
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_ext
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_std
- run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext
- name: Run with automagic detection
run: |
cmake -S. -B ./build_auto
cmake --build ./build_auto --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_auto
- name: Run with GLM_TEST_FORCE_PURE
run: |
cmake -S. -B ./build_pure_std -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
cmake --build ./build_pure_std --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_std
- name: Run with GLM_TEST_FORCE_PURE and language extensions
run: |
cmake -S. -B ./build_pure_ext -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
cmake --build ./build_pure_ext --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_ext
- name: Run with GLM_TEST_ENABLE_SIMD_SSE2
run: |
cmake -S. -B ./build_sse2_std -DGLM_TEST_FORCE_PURE=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
cmake --build ./build_sse2_std --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std
- name: Run with GLM_TEST_ENABLE_SIMD_SSE2 and language extensions
run: |
cmake -S. -B ./build_sse2_ext -DGLM_TEST_ENABLE_SIMD_SSE2=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
cmake --build ./build_sse2_ext --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_ext
- name: Run with GLM_TEST_ENABLE_SIMD_AVX
run: |
cmake -S. -B ./build_avx1_std -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON
cmake --build ./build_avx1_std --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_std
- name: Run with GLM_TEST_ENABLE_SIMD_AVX and language extensions
run: |
cmake -S. -B ./build_avx1_ext -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_CXX_${{matrix.std}}=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
cmake --build ./build_avx1_ext --config ${{matrix.config}}
ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext
Loading

0 comments on commit a40974f

Please sign in to comment.