Skip to content

WIP: CI Fixes

WIP: CI Fixes #3135

Workflow file for this run

name: Houdini
on:
push:
branches:
- 'master'
- 'feature/**'
- 'pr/**'
paths-ignore:
- 'CHANGES'
- 'CODEOWNERS'
- 'doc/**'
- 'nanovdb/**'
- 'openvdb_maya/**'
- 'pendingchanges/**'
- '**.md'
pull_request:
branches:
- '**'
paths-ignore:
- 'CHANGES'
- 'CODEOWNERS'
- 'doc/**'
- 'nanovdb/**'
- '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
env:
ACTIONS_RUNNER_DEBUG: true
ACTIONS_STEP_DEBUG: true
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: ./ci/install_macos.sh ${{ matrix.config.llvm }}
- name: build
run: |
echo $PATH
echo $GITHUB_PATH
echo $(which getopt)
echo $BASH_VERSION
./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 \
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install
\"
- name: test
run: cd build && ctest -V