Skip to content

Commit

Permalink
Merge pull request #1943 from mwestphal/mindeps
Browse files Browse the repository at this point in the history
Add a mindeps CI and update minimum versions
  • Loading branch information
mwestphal authored Jan 27, 2025
2 parents ddc9f1c + 7cc600a commit 7addac3
Show file tree
Hide file tree
Showing 30 changed files with 663 additions and 79 deletions.
15 changes: 11 additions & 4 deletions .github/actions/alembic-install-dep/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,33 @@ inputs:
description: 'CPU architecture to build for'
required: false
default: 'x86_64'

version:
description: 'Version of alembic to build'
required: true

runs:
using: "composite"
steps:

# Alembic is part of VFX reference platform (CY2025: 1.8.x)
- name: Check required inputs
shell: bash
run: |
[[ "${{ inputs.version }}" ]] || { echo "version input is empty" ; exit 1; }
- name: Cache Alembic
id: cache-alembic
uses: actions/cache@v4
with:
path: dependencies/alembic_install
key: alembic-v1.8.8-${{runner.os}}-${{inputs.cpu}}-0
key: alembic-${{inputs.version}}-${{runner.os}}-${{inputs.cpu}}-0

- name: Checkout Alembic
if: steps.cache-alembic.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: alembic/alembic
path: './dependencies/alembic'
ref: 1.8.8
ref: ${{inputs.version}}

- name: Setup Alembic
if: steps.cache-alembic.outputs.cache-hit != 'true'
Expand Down
21 changes: 17 additions & 4 deletions .github/actions/assimp-install-dep/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,42 @@ inputs:
description: 'CPU architecture to build for'
required: false
default: 'x86_64'
version:
description: 'Version of assimp to build'
required: true

runs:
using: "composite"
steps:

- name: Check required inputs
shell: bash
run: |
[[ "${{ inputs.version }}" ]] || { echo "version input is empty" ; exit 1; }
- name: Cache ASSIMP
id: cache-assimp
uses: actions/cache@v4
with:
path: dependencies/assimp_install
key: assimp-v5.4.3-${{runner.os}}-${{inputs.cpu}}-0
key: assimp-${{inputs.version}}-${{runner.os}}-${{inputs.cpu}}-0

- name: Checkout ASSIMP
if: steps.cache-assimp.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: assimp/assimp
path: './dependencies/assimp'
ref: v5.4.3
ref: ${{inputs.version}}

# Revert https://github.com/assimp/assimp/pull/5349
# Revert: https://github.com/assimp/assimp/pull/5349
# Issue: https://github.com/assimp/assimp/issues/5449
# Fix: https://github.com/assimp/assimp/pull/5751
# This impact 5.4.3 and should be fixed in next release (5.5 or 5.4.4)
- name: Patch ASSIMP
if: steps.cache-assimp.outputs.cache-hit != 'true'
if: |
steps.cache-assimp.outputs.cache-hit != 'true' &&
inputs.version == 'v5.4.3'
working-directory: ${{github.workspace}}/dependencies/assimp
shell: bash
run: patch -p1 < $GITHUB_ACTION_PATH/assimp-revert-fbx-bone-anim.patch
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/blosc-install-dep/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ runs:
uses: actions/cache@v4
with:
path: dependencies/blosc_install
key: blosc-1.21.6-${{runner.os}}-${{inputs.cpu}}-0
key: blosc-v1.21.6-${{runner.os}}-${{inputs.cpu}}-0

# Dependents: openvdb vtk
- name: Checkout blosc
Expand Down
32 changes: 32 additions & 0 deletions .github/actions/coverage-ci/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,30 @@ inputs:
description: 'Codecov token, needed for non-forked workflows'
required: false
default: ''
alembic_version:
description: 'Version of alembic to build'
required: true
assimp_version:
description: 'Version of assimp to build'
required: true
draco_version:
description: 'Version of draco to build'
required: true
occt_version:
description: 'Version of occt to build'
required: true
openexr_version:
description: 'Version of openexr to build'
required: true
openvdb_version:
description: 'Version of openvdb to build'
required: true
pybind11_version:
description: 'Version of pybind11 to build'
required: true
usd_version:
description: 'Version of usd to build'
required: true

runs:
using: "composite"
Expand All @@ -29,6 +53,14 @@ runs:
uses: ./source/.github/actions/generic-dependencies
with:
raytracing_label: raytracing
alembic_version: ${{inputs.alembic_version}}
assimp_version: ${{inputs.assimp_version}}
draco_version: ${{inputs.draco_version}}
occt_version: ${{inputs.occt_version}}
openexr_version: ${{inputs.openexr_version}}
openvdb_version: ${{inputs.openvdb_version}}
pybind11_version: ${{inputs.pybind11_version}}
usd_version: ${{inputs.usd_version}}

- name: Install VTK dependency
uses: ./source/.github/actions/vtk-install-dep
Expand Down
12 changes: 10 additions & 2 deletions .github/actions/draco-install-dep/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,33 @@ inputs:
description: 'CPU architecture to build for'
required: false
default: 'x86_64'
version:
description: 'Version of draco to build'
required: true

runs:
using: "composite"
steps:

- name: Check required inputs
shell: bash
run: |
[[ "${{ inputs.version }}" ]] || { echo "version input is empty" ; exit 1; }
- name: Cache Draco
id: cache-draco
uses: actions/cache@v4
with:
path: dependencies/draco_install
key: draco-1.5.7-${{runner.os}}-${{inputs.cpu}}-3
key: draco-${{inputs.version}}-${{runner.os}}-${{inputs.cpu}}-3

- name: Checkout Draco
if: steps.cache-draco.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: google/draco
path: './dependencies/draco'
ref: 1.5.7
ref: ${{inputs.version}}

- name: Setup Draco
if: steps.cache-draco.outputs.cache-hit != 'true'
Expand Down
5 changes: 5 additions & 0 deletions .github/actions/external-build-ci/action.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
name: 'External build CI'
description: 'External build CI'
inputs:
openvdb_version:
description: 'Version of openvdb to build'
required: true

runs:
using: "composite"
Expand All @@ -22,6 +26,7 @@ runs:
uses: ./source/f3d/.github/actions/vtk-dependencies
with:
source_dir: ./source/f3d
openvdb_version: ${{inputs.openvdb_version}}

- name: Install VTK dependency
uses: ./source/f3d/.github/actions/vtk-install-dep
Expand Down
35 changes: 29 additions & 6 deletions .github/actions/f3d-dependencies/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,49 @@ inputs:
description: 'CPU architecture to build for'
required: false
default: 'x86_64'
alembic_version:
description: 'Version of alembic to build'
required: true
assimp_version:
description: 'Version of assimp to build'
required: true
draco_version:
description: 'Version of draco to build'
required: true
occt_version:
description: 'Version of occt to build'
required: true
openexr_version:
description: 'Version of openexr to build'
required: true
pybind11_version:
description: 'Version of pybind11 to build'
required: true
usd_version:
description: 'Version of usd to build'
required: true

runs:
using: "composite"
steps:

- name: Setup JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'

- name: Install OCCT dependency
uses: ./source/.github/actions/occt-install-dep
with:
cpu: ${{inputs.cpu}}
version: ${{inputs.occt_version}}

- name: Install Assimp dependency
uses: ./source/.github/actions/assimp-install-dep
with:
cpu: ${{inputs.cpu}}
version: ${{inputs.assimp_version}}

- name: Install Draco dependency
uses: ./source/.github/actions/draco-install-dep
with:
cpu: ${{inputs.cpu}}
version: ${{inputs.draco_version}}

- name: Install Imath dependency
uses: ./source/.github/actions/imath-install-dep
Expand All @@ -40,16 +58,21 @@ runs:
uses: ./source/.github/actions/openexr-install-dep
with:
cpu: ${{inputs.cpu}}
version: ${{inputs.openexr_version}}

- name: Install Alembic dependency
uses: ./source/.github/actions/alembic-install-dep
with:
cpu: ${{inputs.cpu}}
version: ${{inputs.alembic_version}}

- name: Install pybind11 dependency
uses: ./source/.github/actions/pybind11-install-dep
with:
version: ${{inputs.pybind11_version}}

- name: Install USD dependency
uses: ./source/.github/actions/usd-install-dep
with:
cpu: ${{inputs.cpu}}
version: ${{inputs.usd_version}}
49 changes: 47 additions & 2 deletions .github/actions/generic-ci/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,36 @@ inputs:
lfs_sha:
description: 'Cache LFS sha'
required: true
alembic_version:
description: 'Version of alembic to build'
required: true
assimp_version:
description: 'Version of assimp to build'
required: true
draco_version:
description: 'Version of draco to build'
required: true
occt_version:
description: 'Version of occt to build'
required: true
openexr_version:
description: 'Version of openexr to build'
required: true
openvdb_version:
description: 'Version of openvdb to build'
required: true
pybind11_version:
description: 'Version of pybind11 to build'
required: true
python_version:
description: 'Version of python to install'
required: true
usd_version:
description: 'Version of usd to build'
required: true
java_version:
description: 'Version of java to install'
required: true

runs:
using: "composite"
Expand All @@ -49,6 +79,8 @@ runs:
shell: bash
run: |
[[ "${{ inputs.lfs_sha }}" ]] || { echo "lfs_sha input is empty" ; exit 1; }
[[ "${{ inputs.python_version }}" ]] || { echo "python_version input is empty" ; exit 1; }
[[ "${{ inputs.java_version }}" ]] || { echo "java_version input is empty" ; exit 1; }
- name: Recover LFS Data
uses: f3d-app/lfs-data-cache-action@v1
Expand All @@ -62,6 +94,14 @@ runs:
with:
cpu: ${{inputs.cpu}}
raytracing_label: ${{inputs.raytracing_label}}
alembic_version: ${{inputs.alembic_version}}
assimp_version: ${{inputs.assimp_version}}
draco_version: ${{inputs.draco_version}}
occt_version: ${{inputs.occt_version}}
openexr_version: ${{inputs.openexr_version}}
openvdb_version: ${{inputs.openvdb_version}}
pybind11_version: ${{inputs.pybind11_version}}
usd_version: ${{inputs.usd_version}}

- name: Install VTK dependency
uses: ./source/.github/actions/vtk-install-dep
Expand All @@ -71,12 +111,11 @@ runs:
raytracing_label: ${{inputs.raytracing_label}}
cpu: ${{inputs.cpu}}

# Python is part of VFX reference platform (CY2025: 3.11)
- name: Set up Python
if: inputs.optional_deps_label == 'optional-deps'
uses: actions/setup-python@v5
with:
python-version: '3.11'
python-version: ${{inputs.python_version}}

- name: Install Python dependencies
if: inputs.optional_deps_label == 'optional-deps'
Expand All @@ -86,6 +125,12 @@ runs:
python -m pip install pytest==8.0.0
python -m pip install pybind11_stubgen
- name: Setup JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{inputs.java_version}}

- name: Setup Directories
shell: bash
working-directory: ${{github.workspace}}
Expand Down
Loading

0 comments on commit 7addac3

Please sign in to comment.