File: houdini.yml

package info (click to toggle)
openvdb 10.0.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 23,092 kB
  • sloc: cpp: 293,853; ansic: 2,268; python: 776; objc: 714; sh: 527; yacc: 382; lex: 348; makefile: 176
file content (125 lines) | stat: -rw-r--r-- 5,125 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125

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

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-20.04-8c-32g-300h
    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 "::set-output name=HOUDINI_SECRETS::${{ env.HOUDINI_CLIENT_ID != '' && env.HOUDINI_SECRET_KEY != '' }}"
      - 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: ubuntu-20.04-8c-32g-300h
    name: hou:${{ matrix.config.hou }}-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: '2021', hou: '19_5', j: '8', build: 'Release', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest', disable_checks: 'OFF' }
          # Houdini 19 is technically on VFX 2020, but we need 2021 dependencies for VDB 10
          - { cxx: clang++, image: '2021', hou: '19_0', j: '8', build: 'Release', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest', disable_checks: 'ON' }
          - { cxx: clang++, image: '2021', hou: '19_5', j: '8', build: 'Debug',   components: 'core,hou', disable_checks: 'OFF' }
          - { cxx: g++,     image: '2021', hou: '19_5', j: '8', build: 'Release', components: 'core,hou', disable_checks: 'OFF' }
      fail-fast: false
    steps:
    - uses: actions/checkout@v3
    - name: timestamp
      id: timestamp
      shell: bash
      run: echo "::set-output name=timestamp::`date -u +'%Y-%m-%dT%H:%M:%SZ'`"
    - name: ccache
      # don't use ccache for debug builds
      if: matrix.config.build == 'Release'
      id: ccache
      uses: actions/cache@v2
      with:
        path: /tmp/ccache
        key: linux-vfx-hou${{ matrix.config.hou }}-${{ matrix.config.image }}-${{ matrix.config.cxx }}-${{ steps.timestamp.outputs.timestamp }}
        restore-keys: linux-vfx-hou${{ matrix.config.hou }}-${{ matrix.config.image }}-${{ matrix.config.cxx }}-
    - name: fetch_houdini
      uses: actions/cache@v2
      with:
        path: hou
        key: dummy-houdini${{ matrix.config.hou }}-${{ steps.timestamp.outputs.timestamp }}
        restore-keys: vdb-v5-houdini${{ matrix.config.hou }}-
    - name: validate_houdini
      run: test -f "hou/hou.tar.gz"
      # Make sure the cache is copied, not moved, as the cache action always posts the cache.
      # Also 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
      shell: bash
      run: |
        export HFS="$HOME/houdini_install/hou"
        export HDSO="${HFS}/dsolib"
        export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/lib64:${HDSO}"
        ./ci/build.sh -v --build-type=Release --components="core,hou" --cargs=\"-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON -DDISABLE_CMAKE_SEARCH_PATHS=ON -DOPENVDB_BUILD_HOUDINI_ABITESTS=OFF -DOPENVDB_HOUDINI_INSTALL_PREFIX=/tmp\ -DTBB_INCLUDEDIR=/usr/local/include -DTBB_LIBRARYDIR=/usr/local/lib\"
    - 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'
      shell: bash
      run: ccache --evict-older-than 1d
      # Delete the houdini tarball so that this dummy cache occupies no space
    - name: delete_hou
      run: rm -f hou/hou.tar.gz