Refactor I/O #4360
Workflow file for this run
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: AX | |
| on: | |
| push: | |
| branches: | |
| - 'master' | |
| - 'feature/**' | |
| - 'pr/**' | |
| paths-ignore: | |
| - 'CHANGES' | |
| - 'CODEOWNERS' | |
| - 'doc/**' | |
| - 'nanovdb/**' | |
| - 'openvdb_maya/**' | |
| - 'openvdb_houdini/**' | |
| - 'fvdb/**' | |
| - 'pendingchanges/**' | |
| - '**.md' | |
| pull_request: | |
| branches: | |
| - '**' | |
| paths-ignore: | |
| - 'CHANGES' | |
| - 'CODEOWNERS' | |
| - 'doc/**' | |
| - 'nanovdb/**' | |
| - 'openvdb_maya/**' | |
| - 'openvdb_houdini/**' | |
| - 'fvdb/**' | |
| - 'pendingchanges/**' | |
| - '**.md' | |
| workflow_dispatch: | |
| inputs: | |
| type: | |
| description: 'The type of CI to run (all, mac, linux, grammar)' | |
| 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-ax: | |
| 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-ax:${{ matrix.config.image }}-cxx:${{ matrix.config.cxx }}-${{ matrix.config.build }} | |
| container: | |
| image: aswf/ci-openvdb:${{ matrix.config.image }} | |
| env: | |
| CXX: ${{ matrix.config.cxx }} | |
| CCACHE_DIR: /tmp/ccache | |
| strategy: | |
| matrix: | |
| # Only test unified builds (core+ax). weekly CI should test standalone | |
| config: | |
| - { image: '2026', cxx: 'clang++', build: 'Release', cmake: '' } | |
| - { image: '2026', cxx: 'g++', build: 'Release', cmake: '' } | |
| - { image: '2026', cxx: 'clang++', build: 'Debug', cmake: '' } | |
| - { image: '2025-clang19.1', cxx: 'clang++', build: 'Release', cmake: '' } | |
| - { image: '2024-clang16.2', cxx: 'clang++', build: 'Release', cmake: '' } | |
| # Needed to test LLVM 15.X | |
| - { image: '2023-clang15', cxx: 'clang++', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' } | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: nanobind | |
| run: ./ci/install_nanobind.sh 2.5.0 | |
| # 2026 images are broken with gtest/glfw installs | |
| - name: deps | |
| if: contains(matrix.config.image, '2026') | |
| run: ./ci/install_gtest.sh latest | |
| - 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-ax${{ matrix.config.image }}-${{ matrix.config.cxx }}-${{ steps.timestamp.outputs.timestamp }} | |
| restore-keys: linux-ax${{ matrix.config.image }}-${{ matrix.config.cxx }}- | |
| - name: build | |
| run: > | |
| ./ci/build.sh -v | |
| --build-type=${{ matrix.config.build }} | |
| --components='core,python,axcore,axbin,axtest' | |
| --cargs=\" | |
| ${{ matrix.config.cmake }} | |
| -DOPENVDB_AX_TEST_CMD_DOWNLOADS=ON | |
| -DUSE_EXPLICIT_INSTANTIATION=OFF | |
| \" | |
| - name: test | |
| run: cd build && ctest -V | |
| - name: test_doxygen_examples | |
| run: ./ci/extract_test_examples.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 | |
| macos-ax: | |
| if: | | |
| github.event_name != 'workflow_dispatch' || | |
| github.event.inputs.type == 'all' || | |
| github.event.inputs.type == 'mac' | |
| runs-on: ${{ matrix.config.runner }} | |
| name: macos-cxx:${{ matrix.config.cxx }}-llvm:${{ matrix.config.llvm }}-${{ matrix.config.build }} | |
| env: | |
| CXX: ${{ matrix.config.cxx }} | |
| strategy: | |
| matrix: | |
| config: | |
| - { runner: 'macos-15', cxx: 'clang++', build: 'Release', llvm: '21' } | |
| - { runner: 'macos-14', cxx: 'clang++', build: 'Release', llvm: '21' } | |
| - { runner: 'macos-14', cxx: 'clang++', build: 'Release', llvm: '20' } | |
| - { runner: 'macos-14', cxx: 'clang++', build: 'Release', llvm: '19' } | |
| - { runner: 'macos-14', cxx: 'clang++', build: 'Release', llvm: '18' } | |
| - { runner: 'macos-14', cxx: 'clang++', build: 'Release', llvm: '17' } | |
| - { runner: 'macos-14', cxx: 'clang++', build: 'Release', llvm: '16' } | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: install_deps | |
| run: | | |
| ./ci/install_macos.sh ${{ matrix.config.llvm }} | |
| ./ci/install_tbb_macos.sh | |
| - name: build | |
| run: > | |
| ./ci/build.sh -v | |
| --build-type=${{ matrix.config.build }} | |
| --components="core,python,axcore,axbin,axtest" | |
| --cargs=\" | |
| -DOPENVDB_AX_TEST_CMD_DOWNLOADS=ON | |
| -DUSE_EXPLICIT_INSTANTIATION=OFF | |
| -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install | |
| -DLLVM_DIR=/opt/homebrew/opt/llvm@${{ matrix.config.llvm }}/lib/cmake/llvm | |
| \" | |
| - name: test | |
| run: cd build && ctest -V | |
| - name: test_doxygen_examples | |
| run: ./ci/extract_test_examples.sh | |
| gen-grammar: | |
| if: | | |
| github.event_name == 'workflow_dispatch' && | |
| github.event.inputs.type == 'grammar' | |
| runs-on: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-22.04-8c-32g-300h') || 'ubuntu-latest' }} | |
| container: | |
| image: aswf/ci-openvdb:2025-clang19.1 | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: build | |
| run: ./ci/build.sh -v --components=axgr --target=openvdb_ax_grammar --cargs=\"-DOPENVDB_AX_GRAMMAR_NO_LINES=ON\" | |
| - name: upload grammar | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ax_grammar | |
| path: ./build/openvdb_ax/openvdb_ax/openvdb_ax/grammar | |
| retention-days: 5 |