Skip to content

WIP: fVDB CI Integration #3153

WIP: fVDB CI Integration

WIP: fVDB CI Integration #3153

Workflow file for this run

# name: Houdini
# on:
# push:
# branches:
# - 'master'
# - 'feature/**'
# - 'pr/**'
# paths-ignore:
# - 'CHANGES'
# - 'CODEOWNERS'
# - 'doc/**'
# - 'nanovdb/**'
# - 'fvdb/**'
# - 'openvdb_maya/**'
# - 'pendingchanges/**'
# - '**.md'
# pull_request:
# branches:
# - '**'
# paths-ignore:
# - 'CHANGES'
# - 'CODEOWNERS'
# - 'doc/**'
# - 'nanovdb/**'
# - 'fvdb/**'
# - 'openvdb_maya/**'
# - 'pendingchanges/**'
# - '**.md'
# schedule:
# # run this workflow every day 7am UTC
# - cron: '0 7 * * *'
# workflow_dispatch:
# # 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:
# checksecret:
# # Check that valid github secrets have been set. This isn't needed to retrieve
# # the cache, but ensures that the job doens't start with an empty cache
# name: Verify Houdini Secrets
# runs-on: ubuntu-latest
# outputs:
# HOUDINI_SECRETS: ${{ steps.check.outputs.HOUDINI_SECRETS }}
# steps:
# - id: check
# env:
# HOUDINI_CLIENT_ID: ${{ secrets.HOUDINI_CLIENT_ID }}
# HOUDINI_SECRET_KEY: ${{ secrets.HOUDINI_SECRET_KEY }}
# run: echo "HOUDINI_SECRETS=${{ env.HOUDINI_CLIENT_ID != '' && env.HOUDINI_SECRET_KEY != '' }}" >> $GITHUB_OUTPUT
# - name: Skip Next Jobs
# if: steps.check.outputs.HOUDINI_SECRETS != 'true'
# run: echo "HOUDINI_CLIENT_ID and HOUDINI_SECRET_KEY GitHub Action Secrets needs to be set to install Houdini builds"
# linux-vfx-houdini:
# needs: [checksecret]
# if: >
# ${{ needs.checksecret.outputs.HOUDINI_SECRETS == 'true' ||
# github.repository_owner == 'AcademySoftwareFoundation' }}
# runs-on: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-20.04-8c-32g-300h') || 'ubuntu-latest' }}
# name: hou:${{ matrix.config.hou_hash }}-vfx:${{ matrix.config.image }}-cxx:${{ matrix.config.cxx }}
# container:
# image: aswf/ci-base:${{ matrix.config.image }}
# env:
# CXX: ${{ matrix.config.cxx }}
# CCACHE_DIR: /tmp/ccache
# strategy:
# matrix:
# config:
# - { cxx: clang++, image: '2023.0', hou_hash: '20_0-newabi', build: 'Release', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest' }
# - { cxx: clang++, image: '2022', hou_hash: '20_0-oldabi', build: 'Release', components: 'core,hou' }
# - { cxx: clang++, image: '2021', hou_hash: '19_5', build: 'Release', components: 'core,hou' }
# - { cxx: clang++, image: '2023.0', hou_hash: '20_0-newabi', build: 'Debug', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest' }
# - { cxx: g++, image: '2023.0', hou_hash: '20_0-newabi', build: 'Release', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest' }
# - { cxx: g++, image: '2022', hou_hash: '20_0-oldabi', build: 'Release', components: 'core,hou' }
# fail-fast: false
# steps:
# # See note on this step in the Houdini weekly.yml job
# # We can remove this when we no longer use < 2023 images
# - name: remove zstd
# run: yum -y remove zstd
# - uses: actions/checkout@v3
# - name: pybind11
# #if: contains(matrix.config.image, '2023') == false
# run: ./ci/install_pybind11.sh 2.10.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-hou${{ matrix.config.hou_hash }}-${{ matrix.config.image }}-${{ matrix.config.cxx }}-${{ steps.timestamp.outputs.timestamp }}
# restore-keys: linux-vfx-hou${{ matrix.config.hou_hash }}-${{ matrix.config.image }}-${{ matrix.config.cxx }}-
# - name: fetch_houdini
# uses: actions/cache/restore@v3
# with:
# path: hou
# key: dummy-houdini${{ matrix.config.hou_hash }}-${{ steps.timestamp.outputs.timestamp }}
# restore-keys: vdb-v5-houdini${{ matrix.config.hou_hash }}-
# - name: validate_houdini
# run: test -f "hou/hou.tar.gz"
# # Make sure that the unpacked install is NOT in the root of the OpenVDB checkout
# # otherwise CMake's install RPATHs wil not work correctly.
# - name: install_houdini
# run: |
# mkdir $HOME/houdini_install
# cp hou/hou.tar.gz $HOME/houdini_install/hou.tar.gz
# cd $HOME/houdini_install && tar -xzf hou.tar.gz && cd -
# - name: build
# run: |
# ./ci/build.sh -v \
# --build-type=Release \
# --components="${{ matrix.config.components }}" \
# --cargs=\" \
# -DHOUDINI_ROOT=$HOME/houdini_install/hou \
# -DOPENVDB_BUILD_HOUDINI_ABITESTS=OFF \
# -DOPENVDB_HOUDINI_INSTALL_PREFIX=/tmp \
# -DDISABLE_CMAKE_SEARCH_PATHS=ON \
# -DDISABLE_DEPENDENCY_VERSION_CHECKS=ON \
# \"
# - name: test
# run: cd build && ctest -V
# # 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-houdini:
# needs: [checksecret]
# if: >
# ${{ needs.checksecret.outputs.HOUDINI_SECRETS == 'true' ||
# github.repository_owner == 'AcademySoftwareFoundation' }}
# runs-on: macos-latest
# steps:
# - uses: actions/checkout@v3
# - name: fetch_houdini
# uses: actions/cache/restore@v3
# with:
# path: hou
# key: dummy-houdini
# restore-keys: vdb-v5-houdini-macos-
# - name: validate_houdini
# run: test -f "hou/hou.tar.gz"
# # Make sure that the unpacked install is NOT in the root of the OpenVDB checkout
# # otherwise CMake's install RPATHs wil not work correctly.
# - name: install_houdini
# run: |
# mkdir $HOME/houdini_install
# cp hou/hou.tar.gz $HOME/houdini_install/hou.tar.gz
# cd $HOME/houdini_install && tar -xzf hou.tar.gz && cd -
# - name: install_deps
# run: |
# # Remove Python3 symlinks in /usr/local/bin as workaround to brew update issues
# # https://github.com/actions/setup-python/issues/577
# rm /usr/local/bin/2to3* || :
# rm /usr/local/bin/idle3* || :
# rm /usr/local/bin/pydoc* || :
# rm /usr/local/bin/python3* || :
# brew update
# brew install bash gnu-getopt cmake boost glfw googletest openexr pybind11 llvm@15 cppunit
# echo "/usr/local/opt/gnu-getopt/bin" >> $GITHUB_PATH
# - name: build
# run: |
# ./ci/build.sh -v \
# --build-type=Release \
# --components="core,hou,bin,view,render,python,test,axcore,axbin,axtest" \
# --cargs=\" \
# -DHOUDINI_ROOT=$HOME/houdini_install/hou \
# -DOPENVDB_BUILD_HOUDINI_ABITESTS=OFF \
# -DOPENVDB_HOUDINI_INSTALL_PREFIX=/tmp \
# -DDISABLE_CMAKE_SEARCH_PATHS=ON \
# -DDISABLE_DEPENDENCY_VERSION_CHECKS=ON \
# -DUSE_EXPLICIT_INSTANTIATION=OFF \
# -DLLVM_DIR=/usr/local/opt/llvm@15/lib/cmake/llvm \
# \"
# - name: test
# run: cd build && ctest -V