diff --git a/.github/workflows/ax.yml b/.github/workflows/ax.yml index 22fb2a1bc6..8cb55fc886 100644 --- a/.github/workflows/ax.yml +++ b/.github/workflows/ax.yml @@ -61,6 +61,8 @@ jobs: matrix: # Only test unified builds (core+ax). weekly CI should test standalone config: + - { image: '2023-clang15', cxx: 'clang++', build: 'Release', cmake: '' } + - { image: '2023-clang15', cxx: 'g++', build: 'Release', cmake: '' } - { image: '2022-clang11', cxx: 'clang++', build: 'Debug', cmake: '' } - { image: '2022-clang11', cxx: 'clang++', build: 'Release', cmake: '' } - { image: '2022-clang11', cxx: 'g++', build: 'Release', cmake: '' } diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f212d88175..917b300e09 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -70,6 +70,8 @@ jobs: strategy: matrix: config: + - { cxx: clang++, image: '2023-clang15', abi: '10', build: 'Release', cmake: '' } + - { cxx: g++, image: '2023-clang15', abi: '10', build: 'Release', cmake: '' } - { cxx: clang++, image: '2022-clang11', abi: '10', build: 'Release', cmake: '' } - { cxx: clang++, image: '2022-clang11', abi: '10', build: 'Debug' , cmake: '' } - { cxx: g++, image: '2022-clang11', abi: '10', build: 'Release', cmake: '' } diff --git a/.github/workflows/weekly.yml b/.github/workflows/weekly.yml index ad3113249d..02de6ce47c 100644 --- a/.github/workflows/weekly.yml +++ b/.github/workflows/weekly.yml @@ -67,7 +67,7 @@ jobs: - { houdini_version: '19.5', houdini_version_str: '19_5' } fail-fast: false container: - image: aswf/ci-base:2021 + image: aswf/ci-base:2023 steps: - uses: actions/checkout@v3 - name: timestamp @@ -128,31 +128,31 @@ jobs: - name: test run: cd build && ctest -V - # Test EXR 3 on MacOS + # Test latest dependencies, latest compilers and options through homebrew on macos macos-latest: if: | github.event_name != 'workflow_dispatch' || github.event.inputs.type == 'all' || github.event.inputs.type == 'mac' runs-on: macos-12 - env: - CXX: clang++ + strategy: + matrix: + config: + - { brew_compiler: gcc@13, cmake: '-D CMAKE_CXX_COMPILER=/usr/local/opt/gcc@13/bin/g++-13' } + - { brew_compiler: llvm@16, cmake: '-D CMAKE_CXX_COMPILER=/usr/local/opt/llvm@16/bin/clang++' } + fail-fast: false steps: - uses: actions/checkout@v3 - name: install shell: bash - # brew boost-python3 installs a "Keg-only" version of python which is - # not installed to PATH. We must manually provide the location of the - # required python installation to CMake through a hint variable which - # is exported in install_macos.sh - run: ./ci/install_macos.sh latest + run: ./ci/install_macos.sh latest ${{ matrix.config.brew_compiler }} - name: build shell: bash run: > ./ci/build.sh -v --build-type=Release --components=\"core,python,bin,view,render,test\" - --cargs=\"-DOPENVDB_CXX_STRICT=OFF\" + --cargs=\"-DOPENVDB_CXX_STRICT=OFF -DCMAKE_CXX_STANDARD=20 ${{ matrix.config.cmake }}\" - name: test shell: bash run: cd build && ctest -V @@ -232,8 +232,9 @@ jobs: strategy: matrix: config: - - { cxx: 'clang++', build: 'Release', llvm: '14', dir: '@14' } - - { cxx: 'clang++', build: 'Release', llvm: 'latest', dir: '' } + - { cxx: 'clang++', build: 'Release', llvm: '14' } + - { cxx: 'clang++', build: 'Release', llvm: '15' } + #- { cxx: 'clang++', build: 'Release', llvm: '16' } - not supported yet fail-fast: false steps: - uses: actions/checkout@v2 @@ -247,7 +248,7 @@ jobs: --cargs=\" -DOPENVDB_AX_TEST_CMD_DOWNLOADS=ON -DUSE_EXPLICIT_INSTANTIATION=OFF - -DLLVM_DIR=/usr/local/opt/llvm${{ matrix.config.dir }}/lib/cmake/llvm + -DLLVM_DIR=/usr/local/opt/llvm@${{ matrix.config.llvm }}/lib/cmake/llvm \" - name: test run: cd build && ctest -V diff --git a/ci/install_macos.sh b/ci/install_macos.sh index 14ce32818c..77d5bfd55b 100755 --- a/ci/install_macos.sh +++ b/ci/install_macos.sh @@ -3,6 +3,17 @@ set -x brew update + +if [ ! -z $2 ]; then + if [[ $2 == "gcc"* || $2 == "llvm"* ]]; then + brew install $2 + else + # don't silently succeed + echo "Unknown compiler type/version for second argument to install_macos.sh: $2" + exit -1 + fi +fi + brew install bash gnu-getopt # for CI scripts brew install cmake brew install boost