Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a mindeps CI and update minimum versions #1943

Merged
merged 12 commits into from
Jan 27, 2025
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
Meakk marked this conversation as resolved.
Show resolved Hide resolved
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
Loading