Skip to content

chore: add support for clang 16, 17, and 18 #226

chore: add support for clang 16, 17, and 18

chore: add support for clang 16, 17, and 18 #226

Workflow file for this run

name: build push
on:
push:
branches:
- '**'
paths-ignore:
- docs/**
- '**/*.md'
jobs:
linux:
runs-on: ubuntu-latest
strategy:
matrix:
compiler: [gcc13, clang15]
steps:
- name: Git checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Building (debug-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x86 -build'
- name: Running unit tests (debug-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x86 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (debug-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x64 -build'
- name: Running unit tests (debug-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x64 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x86 -build'
- name: Running unit tests (release-x86)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x86 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -build'
- name: Running unit tests (release-x64)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x64 nosimd)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -nosimd -build'
- name: Running unit tests (release-x64 nosimd)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -nosimd -unit_test'
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Building (release-x64 AVX)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -avx -build'
- name: Running unit tests (release-x64 AVX)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-lunar:v1
with:
args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -avx -unit_test'
osx-12:
runs-on: macos-12
strategy:
matrix:
compiler: [xcode14]
steps:
- name: Git checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Setup ${{ matrix.compiler }} compiler
run: ./tools/setup_osx_compiler.sh ${{ matrix.compiler }}
- name: Building (debug-x64)
run: python3 make.py -ci -compiler osx -config Debug -cpu x64 -build
- name: Running unit tests (debug-x64)
run: python3 make.py -ci -compiler osx -config Debug -cpu x64 -unit_test
- name: Clean
run: python3 make.py -ci -clean_only
- name: Building (release-x64)
run: python3 make.py -ci -compiler osx -config Release -cpu x64 -build
- name: Running unit tests (release-x64)
run: python3 make.py -ci -compiler osx -config Release -cpu x64 -unit_test
- name: Clean
run: python3 make.py -ci -clean_only
- name: Building (release-x64 nosimd)
run: python3 make.py -ci -compiler osx -config Release -cpu x64 -nosimd -build
- name: Running unit tests (release-x64 nosimd)
run: python3 make.py -ci -compiler osx -config Release -cpu x64 -nosimd -unit_test
- name: Clean
run: python3 make.py -ci -clean_only
- name: Building for iOS (debug-arm64)
run: python3 make.py -ci -compiler ios -config Debug -build
- name: Clean
run: python3 make.py -ci -clean_only
- name: Building for iOS (release-arm64)
run: python3 make.py -ci -compiler ios -config Release -build
- name: Clean
run: python3 make.py -ci -clean_only
- name: Building for iOS (release-arm64 nosimd)
run: python3 make.py -ci -compiler ios -config Release -build -nosimd
emscripten:
runs-on: ubuntu-latest
steps:
- name: Git checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Build (debug)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-linux-emscripten:v1
with:
args: 'python3 make.py -ci -compiler emscripten -config debug -build'
# Don't run debug unit tests, they are too slow and sometime time out
# - name: Unit tests (debug)
# run: python3 make.py -ci -compiler emscripten -config debug -unit_test
- name: Clean
uses: docker://ghcr.io/nfrechette/toolchain-amd64-linux-emscripten:v1
with:
args: 'python3 make.py -ci -clean_only'
- name: Build (release)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-linux-emscripten:v1
with:
args: 'python3 make.py -ci -compiler emscripten -config release -build'
- name: Unit tests (release)
uses: docker://ghcr.io/nfrechette/toolchain-amd64-linux-emscripten:v1
with:
args: 'python3 make.py -ci -compiler emscripten -config release -unit_test'
vs2022:
runs-on: windows-2022
strategy:
matrix:
compiler: [vs2022, vs2022-clang]
build_config: [debug, release]
cpu: [x86, x64, arm64]
simd: [-simd, -nosimd, -avx]
exclude:
# Don't run arm64 with clang
- compiler: vs2022-clang
cpu: arm64
# Don't run AVX with arm64
- cpu: arm64
simd: -avx
steps:
- name: Git checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Building (${{ matrix.build_config }}-${{ matrix.cpu }})
run: python3 make.py -ci -compiler ${{ matrix.compiler }} -config ${{ matrix.build_config }} -cpu ${{ matrix.cpu }} -build ${{ matrix.simd }}
- name: Running unit tests (${{ matrix.build_config }}-${{ matrix.cpu }})
run: python3 make.py -ci -compiler ${{ matrix.compiler }} -config ${{ matrix.build_config }} -cpu ${{ matrix.cpu }} -unit_test ${{ matrix.simd }}