Build #4793
This file contains hidden or 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: Build | |
on: | |
push: | |
branches: | |
- 'master' | |
- 'feature/**' | |
- 'pr/**' | |
paths-ignore: | |
- 'CHANGES' | |
- 'CODEOWNERS' | |
- 'doc/**' | |
- 'openvdb_maya/**' | |
- 'openvdb_houdini/**' | |
- 'openvdb_ax/**' | |
- 'nanovdb/**' | |
- 'fvdb/**' | |
- 'pendingchanges/**' | |
- '**.md' | |
pull_request: | |
branches: | |
- '**' | |
paths-ignore: | |
- 'CHANGES' | |
- 'CODEOWNERS' | |
- 'doc/**' | |
- 'openvdb_maya/**' | |
- 'openvdb_houdini/**' | |
- 'openvdb_ax/**' | |
- 'nanovdb/**' | |
- 'fvdb/**' | |
- 'pendingchanges/**' | |
- '**.md' | |
schedule: | |
# run this workflow every day 7am UTC | |
- cron: '0 7 * * *' | |
workflow_dispatch: | |
inputs: | |
type: | |
description: 'The type of CI to run (all, linux, win, mac)' | |
required: true | |
default: 'all' | |
# Allow subsequent pushes to the same PR or REF to cancel any previous jobs. | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
linux-vfx: | |
# VFX platform jobs. These are run on the appropriate CentOS images from | |
# the provided ASWF docker containers | |
if: | | |
github.event_name != 'workflow_dispatch' || | |
github.event.inputs.type == 'all' || | |
github.event.inputs.type == 'linux' | |
runs-on: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-22.04-8c-32g-300h') || 'ubuntu-latest' }} | |
name: > | |
linux:${{ matrix.config.image }}-abi:${{ matrix.config.abi }}-cxx:${{ matrix.config.cxx }}-type:${{ matrix.config.build }} | |
container: | |
image: aswf/ci-openvdb:${{ matrix.config.image }} | |
env: | |
CXX: ${{ matrix.config.cxx }} | |
CCACHE_DIR: /tmp/ccache | |
strategy: | |
matrix: | |
config: | |
- { cxx: clang++, image: '2025-clang19.1', abi: '12', build: 'Release', cmake: '' } | |
- { cxx: g++, image: '2025-clang19.1', abi: '12', build: 'Release', cmake: '' } | |
- { cxx: clang++, image: '2025-clang19.1', abi: '12', build: 'Debug', cmake: '' } | |
- { cxx: clang++, image: '2024-clang17.2', abi: '11', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' } | |
- { cxx: g++, image: '2024-clang17.2', abi: '11', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' } | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v3 | |
- name: nanobind | |
run: ./ci/install_nanobind.sh 2.0.0 | |
- name: timestamp | |
id: timestamp | |
run: echo "timestamp=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT | |
- name: ccache | |
# don't use ccache for debug builds | |
if: matrix.config.build == 'Release' | |
id: ccache | |
uses: actions/cache@v3 | |
with: | |
path: /tmp/ccache | |
key: linux-vfx${{ matrix.config.image }}-abi${{ matrix.config.abi }}-${{ matrix.config.cxx }}-${{ steps.timestamp.outputs.timestamp }} | |
restore-keys: linux-vfx${{ matrix.config.image }}-abi${{ matrix.config.abi }}-${{ matrix.config.cxx }}- | |
- name: build | |
run: > | |
./ci/build.sh -v | |
--build-type=${{ matrix.config.build }} | |
--components=\"core,python,bin,view,render,test\" | |
--cargs=\" | |
${{ matrix.config.cmake }} | |
-DOPENVDB_CXX_STRICT=ON | |
-DOPENVDB_ABI_VERSION_NUMBER=${{ matrix.config.abi }} | |
\" | |
- name: test | |
# Skip Debug on commits as they take a while. | |
if: github.event_name == 'schedule'|| matrix.config.build == 'Release' | |
run: | | |
cd build && ctest -V | |
cd - && ./ci/test_install.sh | |
# Keep ccache light by stripping out any caches not accessed in the last day | |
- name: ccache_clean | |
if: matrix.config.build == 'Release' | |
run: ccache --evict-older-than 1d | |
windows: | |
# Windows CI. Tests a dynamic build with MD. | |
if: | | |
github.event_name != 'workflow_dispatch' || | |
github.event.inputs.type == 'all' || | |
github.event.inputs.type == 'win' | |
runs-on: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'windows-2022-8c-32g-300h') || 'windows-latest' }} | |
name: windows | |
env: | |
VCPKG_DEFAULT_TRIPLET: x64-windows | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v3 | |
- name: path | |
shell: pwsh | |
run: | | |
# note: system path must be modified in a previous step to it's use | |
echo "$Env:VCPKG_INSTALLATION_ROOT\installed\x64-windows\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
echo "${{github.workspace}}\build\openvdb\openvdb\Release" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
- name: install | |
shell: powershell | |
run: .\ci\install_windows.ps1 | |
- name: build | |
run: > | |
./ci/build.sh -v | |
--config='Release' | |
--components='core,bin,view,render,python,test' | |
--cargs=\' | |
-A x64 -G \"Visual Studio 17 2022\" -DOPENVDB_CORE_STATIC=OFF | |
-DMSVC_COMPRESS_PDB=ON | |
-DUSE_EXR=ON | |
-DUSE_PNG=ON | |
-DVCPKG_TARGET_TRIPLET=${VCPKG_DEFAULT_TRIPLET} | |
-DCMAKE_TOOLCHAIN_FILE=\"${VCPKG_INSTALLATION_ROOT}\\scripts\\buildsystems\\vcpkg.cmake\" | |
\' | |
- name: size | |
# Print the build directy size (monitor if we're hitting runner limits) | |
run: du -h build | |
- name: test | |
run: cd build && ctest -V -C Release | |
macos: | |
if: | | |
github.event_name != 'workflow_dispatch' || | |
github.event.inputs.type == 'all' || | |
github.event.inputs.type == 'mac' | |
runs-on: ${{ matrix.config.image }} | |
name: ${{ matrix.config.image }} | |
env: | |
CXX: clang++ | |
strategy: | |
matrix: | |
config: | |
- { image: macos-13 } # Last macos runner befor M1 (macos-14) | |
- { image: macos-14 } | |
- { image: macos-15 } | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install | |
run: | | |
./ci/install_macos.sh | |
./ci/install_tbb_macos.sh | |
- name: build | |
run: > | |
./ci/build.sh -v | |
--build-type=Release | |
--components=\"core,python,bin,view,render,test\" | |
--cargs=\' | |
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install | |
\' | |
- name: test | |
run: cd build && ctest -V | |