Run on multiple platforms to test multiple compiler versions #164
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ci | ||
run-name: ${{ github.actor }} is testing out GitHub Actions π | ||
on: | ||
push: | ||
pull_request_target: | ||
types: [opened, edited, reopened] | ||
jobs: | ||
platforms: | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
std: [98, 11, 14, 17, 20] | ||
config: [Debug, Release] | ||
platform: [ubuntu-latest, ubuntu-20.04, macos-latest, macos-11, windows-latest, windows-2019] | ||
runs-on: ${{matrix.platform}} | ||
steps: | ||
- name: Github Actions init | ||
run: echo "π The job was automatically triggered by a ${{ github.event_name }} event." | ||
run: echo "π§ This job is now running on a ${{ runner.os }} server hosted by GitHub!" | ||
run: echo "π The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." | ||
run: echo "π‘ The ${{ github.repository }} repository has been cloned to the runner." | ||
run: echo "π₯οΈ The workflow is now ready to test your code on the runner." | ||
run: echo "π This job's status is ${{ job.status }}." | ||
- name: List files in the repository | ||
run: | | ||
ls ${{ github.workspace }} | ||
- name: Check out repository code | ||
uses: actions/checkout@v4 | ||
- name: CMake Version | ||
run: cmake --version | ||
- name: Build and Test with automatic detection | ||
run: cmake -S. -B ./build_auto | ||
run: cmake --build ./build_auto --config ${{matrix.config}} | ||
run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_auto | ||
- name: Build and Test GLM_TEST_FORCE_PURE | ||
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 --build ./build_pure_std --config ${{matrix.config}} | ||
run: cmake --build ./build_pure_ext --config ${{matrix.config}} | ||
run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_std | ||
run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_ext | ||
- name: Build and Test GLM_TEST_ENABLE_SIMD_SSE2 | ||
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 --build ./build_sse2_std --config ${{matrix.config}} | ||
run: cmake --build ./build_sse2_ext --config ${{matrix.config}} | ||
run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std | ||
run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_ext | ||
- name: Build and Test 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 | ||
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_avx1_std --config ${{matrix.config}} | ||
run: cmake --build ./build_avx1_ext --config ${{matrix.config}} | ||
run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_std | ||
run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext | ||
- if: "contains(${{matrix.platform}}, 'ubuntu') || contains(${{matrix.platform}}, 'windows')" | ||
name: Build and Test GLM_TEST_ENABLE_SIMD_AVX | ||
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_avx2_std --config ${{matrix.config}} | ||
run: cmake --build ./build_avx2_ext --config ${{matrix.config}} | ||
run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_std | ||
run: ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_ext | ||