Add a mindeps CI and update minimum versions #7998
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened, ready_for_review] | |
push: | |
branches: | |
- master | |
concurrency: | |
group: '${{ github.workflow }}-${{ github.ref_name }}' | |
cancel-in-progress: true | |
jobs: | |
#---------------------------------------------------------------------------- | |
# Default versions: Set default version for all dependencies | |
#---------------------------------------------------------------------------- | |
default_versions: | |
runs-on: ubuntu-22.04 | |
name: Set default versions | |
outputs: | |
alembic_version: ${{ steps.set_default_versions.outputs.alembic_version }} | |
alembic_min_version: ${{ steps.set_default_versions.outputs.alembic_min_version }} | |
assimp_version: ${{ steps.set_default_versions.outputs.assimp_version }} | |
assimp_min_version: ${{ steps.set_default_versions.outputs.assimp_min_version }} | |
draco_version: ${{ steps.set_default_versions.outputs.draco_version }} | |
draco_min_version: ${{ steps.set_default_versions.outputs.draco_min_version }} | |
occt_version: ${{ steps.set_default_versions.outputs.occt_version }} | |
occt_min_version: ${{ steps.set_default_versions.outputs.occt_min_version }} | |
openexr_version: ${{ steps.set_default_versions.outputs.openexr_version }} | |
openexr_min_version: ${{ steps.set_default_versions.outputs.openexr_min_version }} | |
openvdb_version: ${{ steps.set_default_versions.outputs.openvdb_version }} | |
openvdb_min_version: ${{ steps.set_default_versions.outputs.openvdb_min_version }} | |
pybind11_version: ${{ steps.set_default_versions.outputs.pybind11_version }} | |
pybind11_min_version: ${{ steps.set_default_versions.outputs.pybind11_min_version }} | |
python_version: ${{ steps.set_default_versions.outputs.python_version }} | |
python_min_version: ${{ steps.set_default_versions.outputs.python_min_version }} | |
usd_version: ${{ steps.set_default_versions.outputs.usd_version }} | |
usd_min_version: ${{ steps.set_default_versions.outputs.usd_min_version }} | |
java_version: ${{ steps.set_default_versions.outputs.java_version }} | |
java_min_version: ${{ steps.set_default_versions.outputs.java_min_version }} | |
steps: | |
# Alembic is part of VFX reference platform (CY2025: 1.8.x) | |
# OpenEXR is part of VFX reference platform (CY2025: 3.3.x) | |
# OpenVDB is part of VFX reference platform (CY2025: 12.x) | |
# OpenVDB min version is not enforced by F3D code and missing from VTK code | |
# Python is part of VFX reference platform (CY2025: 3.11) | |
- name: Set default versions output | |
id: set_default_versions | |
shell: bash | |
run: | | |
echo "alembic_version=1.8.8" >> $GITHUB_OUTPUT | |
echo "alembic_min_version=1.8.5" >> $GITHUB_OUTPUT | |
echo "assimp_version=v5.4.3" >> $GITHUB_OUTPUT | |
echo "assimp_min_version=v5.4.0" >> $GITHUB_OUTPUT | |
echo "draco_version=1.5.7" >> $GITHUB_OUTPUT | |
echo "draco_min_version=1.5.6" >> $GITHUB_OUTPUT | |
echo "occt_version=V7_8_1" >> $GITHUB_OUTPUT | |
echo "occt_min_version=V7_6_3" >> $GITHUB_OUTPUT | |
echo "openexr_version=v3.3.2" >> $GITHUB_OUTPUT | |
echo "openexr_min_version=v3.0.1" >> $GITHUB_OUTPUT | |
echo "openvdb_version=v12.0.0" >> $GITHUB_OUTPUT | |
echo "openvdb_min_version=v12.0.0" >> $GITHUB_OUTPUT | |
echo "pybind11_version=v2.13.6" >> $GITHUB_OUTPUT | |
echo "pybind11_min_version=v2.9.2" >> $GITHUB_OUTPUT | |
echo "python_version=3.11" >> $GITHUB_OUTPUT | |
echo "python_min_version=3.9" >> $GITHUB_OUTPUT | |
echo "usd_version=v24.11" >> $GITHUB_OUTPUT | |
echo "usd_min_version=v24.08" >> $GITHUB_OUTPUT | |
echo "java_version=21" >> $GITHUB_OUTPUT | |
echo "java_min_version=17" >> $GITHUB_OUTPUT | |
#---------------------------------------------------------------------------- | |
# Cache LFS: Checkout LFS data and update the cache to limit LFS bandwidth | |
#---------------------------------------------------------------------------- | |
cache_lfs: | |
runs-on: ubuntu-22.04 | |
name: Update LFS data cache | |
outputs: | |
lfs_sha: ${{ steps.lfs_sha_recover.outputs.lfs_sha }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: 'source' | |
fetch-depth: 1 | |
lfs: false | |
- name: Cache LFS Data | |
id: lfs_sha_recover | |
uses: f3d-app/lfs-data-cache-action@v1 | |
with: | |
cache_postfix: cache-0 | |
#---------------------------------------------------------------------------- | |
# Cache Dependencies: Checkout and compile all dependencies but VTK if not cached | |
#---------------------------------------------------------------------------- | |
cache_dependencies: | |
name: Cache dependencies | |
needs: default_versions | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22.04, windows-latest, macos-13, macos-14] | |
build_type: [standard] | |
include: | |
- cpu: x86_64 | |
- os: macos-14 | |
cpu: arm64 | |
- alembic_version: ${{needs.default_versions.outputs.alembic_version}} | |
- assimp_version: ${{needs.default_versions.outputs.assimp_version}} | |
- draco_version: ${{needs.default_versions.outputs.draco_version}} | |
- occt_version: ${{needs.default_versions.outputs.occt_version}} | |
- openexr_version: ${{needs.default_versions.outputs.openexr_version}} | |
- openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} | |
- pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} | |
- usd_version: ${{needs.default_versions.outputs.usd_version}} | |
- build_type: mindeps | |
os: ubuntu-22.04 | |
cpu: x86_64 | |
alembic_version: ${{needs.default_versions.outputs.alembic_min_version}} | |
assimp_version: ${{needs.default_versions.outputs.assimp_min_version}} | |
draco_version: ${{needs.default_versions.outputs.draco_min_version}} | |
occt_version: ${{needs.default_versions.outputs.occt_min_version}} | |
openexr_version: ${{needs.default_versions.outputs.openexr_min_version}} | |
openvdb_version: ${{needs.default_versions.outputs.openvdb_min_version}} | |
pybind11_version: ${{needs.default_versions.outputs.pybind11_min_version}} | |
usd_version: ${{needs.default_versions.outputs.usd_min_version}} | |
runs-on: ${{matrix.os}} | |
container: ${{ matrix.os == 'ubuntu-22.04' && 'ghcr.io/f3d-app/f3d-ci' || null }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: 'source' | |
fetch-depth: 1 | |
lfs: false | |
- name: Generic Dependencies | |
uses: ./source/.github/actions/generic-dependencies | |
with: | |
raytracing_label: raytracing | |
cpu: ${{matrix.cpu}} | |
alembic_version: ${{matrix.alembic_version}} | |
assimp_version: ${{matrix.assimp_version}} | |
draco_version: ${{matrix.draco_version}} | |
occt_version: ${{matrix.occt_version}} | |
openexr_version: ${{matrix.openexr_version}} | |
openvdb_version: ${{matrix.openvdb_version}} | |
pybind11_version: ${{matrix.pybind11_version}} | |
usd_version: ${{matrix.usd_version}} | |
#---------------------------------------------------------------------------- | |
# Windows CI: Build and test, cross-vtk build matrix | |
#---------------------------------------------------------------------------- | |
windows: | |
if: github.event.pull_request.draft == false | |
needs: [cache_lfs, cache_dependencies, default_versions] | |
strategy: | |
fail-fast: false | |
matrix: | |
vtk_version: [commit, v9.4.1, v9.3.1, v9.2.6] | |
static_label: [no-static] | |
include: | |
- vtk_version: commit | |
static_label: static | |
runs-on: windows-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: 'source' | |
fetch-depth: 0 | |
lfs: false | |
- name: Generic CI | |
uses: ./source/.github/actions/generic-ci | |
with: | |
vtk_version: ${{matrix.vtk_version}} | |
raytracing_label: raytracing | |
static_label: ${{matrix.static_label}} | |
lfs_sha: ${{ needs.cache_lfs.outputs.lfs_sha}} | |
alembic_version: ${{needs.default_versions.outputs.alembic_version}} | |
assimp_version: ${{needs.default_versions.outputs.assimp_version}} | |
draco_version: ${{needs.default_versions.outputs.draco_version}} | |
occt_version: ${{needs.default_versions.outputs.occt_version}} | |
openexr_version: ${{needs.default_versions.outputs.openexr_version}} | |
openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} | |
pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} | |
python_version: ${{needs.default_versions.outputs.python_version}} | |
usd_version: ${{needs.default_versions.outputs.usd_version}} | |
java_version: ${{needs.default_versions.outputs.java_version}} | |
#---------------------------------------------------------------------------- | |
# Linux CI: Build and test, cross-vtk build matrix | |
#---------------------------------------------------------------------------- | |
linux: | |
if: github.event.pull_request.draft == false | |
needs: [cache_lfs, cache_dependencies, default_versions] | |
strategy: | |
fail-fast: false | |
matrix: | |
vtk_version: [commit, v9.4.1, v9.3.1, v9.2.6] | |
build_type: [standard] | |
include: | |
- raytracing_label: raytracing | |
- exclude_deprecated_label: no-exclude-deprecated | |
- optional_deps_label: optional-deps | |
- rendering_backend: auto | |
- static_label: no-static | |
- alembic_version: ${{needs.default_versions.outputs.alembic_version}} | |
- assimp_version: ${{needs.default_versions.outputs.assimp_version}} | |
- draco_version: ${{needs.default_versions.outputs.draco_version}} | |
- occt_version: ${{needs.default_versions.outputs.occt_version}} | |
- openexr_version: ${{needs.default_versions.outputs.openexr_version}} | |
- openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} | |
- pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} | |
- python_version: ${{needs.default_versions.outputs.python_version}} | |
- usd_version: ${{needs.default_versions.outputs.usd_version}} | |
- java_version: ${{needs.default_versions.outputs.java_version}} | |
- build_type: egl | |
vtk_version: commit | |
raytracing_label: raytracing | |
optional_deps_label: optional-deps | |
exclude_deprecated_label: no-exclude-deprecated | |
rendering_backend: egl | |
static_label: no-static | |
alembic_version: ${{needs.default_versions.outputs.alembic_version}} | |
assimp_version: ${{needs.default_versions.outputs.assimp_version}} | |
draco_version: ${{needs.default_versions.outputs.draco_version}} | |
occt_version: ${{needs.default_versions.outputs.occt_version}} | |
openexr_version: ${{needs.default_versions.outputs.openexr_version}} | |
openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} | |
pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} | |
python_version: ${{needs.default_versions.outputs.python_version}} | |
usd_version: ${{needs.default_versions.outputs.usd_version}} | |
java_version: ${{needs.default_versions.outputs.java_version}} | |
- build_type: osmesa | |
vtk_version: commit | |
raytracing_label: raytracing | |
optional_deps_label: optional-deps | |
exclude_deprecated_label: no-exclude-deprecated | |
rendering_backend: osmesa | |
static_label: no-static | |
alembic_version: ${{needs.default_versions.outputs.alembic_version}} | |
assimp_version: ${{needs.default_versions.outputs.assimp_version}} | |
draco_version: ${{needs.default_versions.outputs.draco_version}} | |
occt_version: ${{needs.default_versions.outputs.occt_version}} | |
openexr_version: ${{needs.default_versions.outputs.openexr_version}} | |
openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} | |
pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} | |
python_version: ${{needs.default_versions.outputs.python_version}} | |
usd_version: ${{needs.default_versions.outputs.usd_version}} | |
java_version: ${{needs.default_versions.outputs.java_version}} | |
- build_type: exclude_deprecated | |
vtk_version: commit | |
raytracing_label: raytracing | |
optional_deps_label: optional-deps | |
exclude_deprecated_label: exclude-deprecated | |
rendering_backend: auto | |
static_label: no-static | |
alembic_version: ${{needs.default_versions.outputs.alembic_version}} | |
assimp_version: ${{needs.default_versions.outputs.assimp_version}} | |
draco_version: ${{needs.default_versions.outputs.draco_version}} | |
occt_version: ${{needs.default_versions.outputs.occt_version}} | |
openexr_version: ${{needs.default_versions.outputs.openexr_version}} | |
openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} | |
pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} | |
python_version: ${{needs.default_versions.outputs.python_version}} | |
usd_version: ${{needs.default_versions.outputs.usd_version}} | |
java_version: ${{needs.default_versions.outputs.java_version}} | |
- build_type: no_optional_deps | |
vtk_version: commit | |
raytracing_label: no-raytracing | |
optional_deps_label: no-optional-deps | |
exclude_deprecated_label: no-exclude-deprecated | |
rendering_backend: auto | |
static_label: no-static | |
alembic_version: ${{needs.default_versions.outputs.alembic_version}} | |
assimp_version: ${{needs.default_versions.outputs.assimp_version}} | |
draco_version: ${{needs.default_versions.outputs.draco_version}} | |
occt_version: ${{needs.default_versions.outputs.occt_version}} | |
openexr_version: ${{needs.default_versions.outputs.openexr_version}} | |
openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} | |
pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} | |
python_version: ${{needs.default_versions.outputs.python_version}} | |
usd_version: ${{needs.default_versions.outputs.usd_version}} | |
java_version: ${{needs.default_versions.outputs.java_version}} | |
- build_type: static_libs | |
vtk_version: commit | |
raytracing_label: no-raytracing | |
optional_deps_label: optional-deps | |
exclude_deprecated_label: no-exclude-deprecated | |
rendering_backend: auto | |
static_label: static | |
alembic_version: ${{needs.default_versions.outputs.alembic_version}} | |
assimp_version: ${{needs.default_versions.outputs.assimp_version}} | |
draco_version: ${{needs.default_versions.outputs.draco_version}} | |
occt_version: ${{needs.default_versions.outputs.occt_version}} | |
openexr_version: ${{needs.default_versions.outputs.openexr_version}} | |
openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} | |
pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} | |
python_version: ${{needs.default_versions.outputs.python_version}} | |
usd_version: ${{needs.default_versions.outputs.usd_version}} | |
java_version: ${{needs.default_versions.outputs.java_version}} | |
- build_type: mindeps | |
vtk_version: commit | |
raytracing_label: raytracing | |
optional_deps_label: optional-deps | |
exclude_deprecated_label: no-exclude-deprecated | |
rendering_backend: auto | |
static_label: no-static | |
alembic_version: ${{needs.default_versions.outputs.alembic_min_version}} | |
assimp_version: ${{needs.default_versions.outputs.assimp_min_version}} | |
draco_version: ${{needs.default_versions.outputs.draco_min_version}} | |
occt_version: ${{needs.default_versions.outputs.occt_min_version}} | |
openexr_version: ${{needs.default_versions.outputs.openexr_min_version}} | |
openvdb_version: ${{needs.default_versions.outputs.openvdb_min_version}} | |
pybind11_version: ${{needs.default_versions.outputs.pybind11_min_version}} | |
python_version: ${{needs.default_versions.outputs.python_min_version}} | |
usd_version: ${{needs.default_versions.outputs.usd_min_version}} | |
java_version: ${{needs.default_versions.outputs.java_min_version}} | |
runs-on: ubuntu-22.04 | |
container: ghcr.io/f3d-app/f3d-ci | |
env: | |
DISPLAY: :0 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: 'source' | |
fetch-depth: 0 | |
lfs: false | |
- name: Generic CI | |
uses: ./source/.github/actions/generic-ci | |
with: | |
build_type: ${{matrix.build_type}} | |
vtk_version: ${{matrix.vtk_version}} | |
raytracing_label: ${{matrix.raytracing_label}} | |
rendering_backend: ${{matrix.rendering_backend}} | |
optional_deps_label: ${{matrix.optional_deps_label}} | |
exclude_deprecated_label: ${{matrix.exclude_deprecated_label}} | |
static_label: ${{matrix.static_label}} | |
lfs_sha: ${{ needs.cache_lfs.outputs.lfs_sha}} | |
alembic_version: ${{matrix.alembic_version}} | |
assimp_version: ${{matrix.assimp_version}} | |
draco_version: ${{matrix.draco_version}} | |
occt_version: ${{matrix.occt_version}} | |
openexr_version: ${{matrix.openexr_version}} | |
openvdb_version: ${{matrix.openvdb_version}} | |
pybind11_version: ${{matrix.pybind11_version}} | |
python_version: ${{matrix.python_version}} | |
usd_version: ${{matrix.usd_version}} | |
java_version: ${{matrix.java_version}} | |
#---------------------------------------------------------------------------- | |
# MacOS CI: Build and test, cross-vtk build matrix | |
#---------------------------------------------------------------------------- | |
macos: | |
if: github.event.pull_request.draft == false | |
needs: [cache_lfs, cache_dependencies, default_versions] | |
strategy: | |
fail-fast: false | |
matrix: | |
vtk_version: [commit, v9.4.1, v9.3.1, v9.2.6] | |
runs-on: macos-13 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: 'source' | |
fetch-depth: 0 | |
lfs: false | |
- name: Generic CI | |
uses: ./source/.github/actions/generic-ci | |
with: | |
vtk_version: ${{matrix.vtk_version}} | |
raytracing_label: raytracing | |
cpu: x86_64 | |
lfs_sha: ${{ needs.cache_lfs.outputs.lfs_sha}} | |
alembic_version: ${{needs.default_versions.outputs.alembic_version}} | |
assimp_version: ${{needs.default_versions.outputs.assimp_version}} | |
draco_version: ${{needs.default_versions.outputs.draco_version}} | |
occt_version: ${{needs.default_versions.outputs.occt_version}} | |
openexr_version: ${{needs.default_versions.outputs.openexr_version}} | |
openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} | |
pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} | |
python_version: ${{needs.default_versions.outputs.python_version}} | |
usd_version: ${{needs.default_versions.outputs.usd_version}} | |
java_version: ${{needs.default_versions.outputs.java_version}} | |
#---------------------------------------------------------------------------- | |
# MacOS ARM CI: Build and test, cross-vtk build matrix with a few optional builds | |
#---------------------------------------------------------------------------- | |
macos_arm: | |
if: github.event.pull_request.draft == false | |
needs: [cache_lfs, cache_dependencies, default_versions] | |
strategy: | |
fail-fast: false | |
matrix: | |
vtk_version: [commit, v9.4.1, v9.3.1] # VTK 9.2.6 not compatible with recent clang version on macOS | |
bundle_label: [no-bundle] | |
static_label: [no-static] | |
include: | |
- vtk_version: commit | |
bundle_label: bundle | |
static_label: no-static | |
- vtk_version: commit | |
bundle_label: no-bundle | |
static_label: static | |
runs-on: macos-14 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: 'source' | |
fetch-depth: 0 | |
lfs: false | |
- name: Generic CI | |
uses: ./source/.github/actions/generic-ci | |
with: | |
vtk_version: ${{matrix.vtk_version}} | |
raytracing_label: raytracing | |
bundle_label: ${{matrix.bundle_label}} | |
static_label: ${{matrix.static_label}} | |
cpu: arm64 | |
lfs_sha: ${{ needs.cache_lfs.outputs.lfs_sha}} | |
alembic_version: ${{needs.default_versions.outputs.alembic_version}} | |
assimp_version: ${{needs.default_versions.outputs.assimp_version}} | |
draco_version: ${{needs.default_versions.outputs.draco_version}} | |
occt_version: ${{needs.default_versions.outputs.occt_version}} | |
openexr_version: ${{needs.default_versions.outputs.openexr_version}} | |
openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} | |
pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} | |
python_version: ${{needs.default_versions.outputs.python_version}} | |
usd_version: ${{needs.default_versions.outputs.usd_version}} | |
java_version: ${{needs.default_versions.outputs.java_version}} | |
#---------------------------------------------------------------------------- | |
# Python packaging: Build and test the Python wheel | |
#---------------------------------------------------------------------------- | |
python-packaging: | |
if: github.event.pull_request.draft == false | |
needs: [cache_lfs, cache_dependencies, default_versions] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22.04, windows-latest, macos-13] | |
python_version: ['3.11'] | |
include: | |
- os: ubuntu-22.04 | |
python_version: '3.9' | |
- os: ubuntu-22.04 | |
python_version: '3.10' | |
- os: ubuntu-22.04 | |
python_version: '3.11' | |
- os: ubuntu-22.04 | |
python_version: '3.12' | |
- os: ubuntu-22.04 | |
python_version: '3.13' | |
runs-on: ${{matrix.os}} | |
container: ${{ matrix.os == 'ubuntu-22.04' && 'ghcr.io/f3d-app/f3d-ci' || null }} | |
env: | |
DISPLAY: :0 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: 'source' | |
fetch-depth: 0 | |
lfs: false | |
- name: Python CI | |
uses: ./source/.github/actions/python-ci | |
with: | |
lfs_sha: ${{ needs.cache_lfs.outputs.lfs_sha}} | |
python_version: ${{matrix.python_version}} | |
alembic_version: ${{needs.default_versions.outputs.alembic_version}} | |
assimp_version: ${{needs.default_versions.outputs.assimp_version}} | |
draco_version: ${{needs.default_versions.outputs.draco_version}} | |
occt_version: ${{needs.default_versions.outputs.occt_version}} | |
openexr_version: ${{needs.default_versions.outputs.openexr_version}} | |
openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} | |
pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} | |
usd_version: ${{needs.default_versions.outputs.usd_version}} | |
#---------------------------------------------------------------------------- | |
# Coverage: Build and test on linux with last VTK with coverage option | |
#---------------------------------------------------------------------------- | |
coverage: | |
needs: [cache_lfs, cache_dependencies, default_versions] | |
if: github.event.pull_request.draft == false | |
runs-on: ubuntu-22.04 | |
container: ghcr.io/f3d-app/f3d-ci | |
# Add dummy F3D_PLUGINS_PATH for coverage | |
env: | |
DISPLAY: :0 | |
F3D_PLUGINS_PATH: /dummy1:/dummy2 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: 'source' | |
fetch-depth: 0 | |
lfs: false | |
- name: Coverage CI | |
uses: ./source/.github/actions/coverage-ci | |
with: | |
lfs_sha: ${{ needs.cache_lfs.outputs.lfs_sha}} | |
codecov_token: ${{secrets.CODECOV_TOKEN}} | |
alembic_version: ${{needs.default_versions.outputs.alembic_version}} | |
assimp_version: ${{needs.default_versions.outputs.assimp_version}} | |
draco_version: ${{needs.default_versions.outputs.draco_version}} | |
occt_version: ${{needs.default_versions.outputs.occt_version}} | |
openexr_version: ${{needs.default_versions.outputs.openexr_version}} | |
openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} | |
pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} | |
usd_version: ${{needs.default_versions.outputs.usd_version}} | |
#---------------------------------------------------------------------------- | |
# Sanitizer: Build and test on linux with last VTK with sanitizer options | |
#---------------------------------------------------------------------------- | |
# "leak" is run by default with "address" so we do not need to run it in CI | |
# "memory" returns false positives in VTK: | |
# https://stackoverflow.com/questions/60097307/memory-sanitizer-reports-use-of-uninitialized-value-in-global-object-constructio | |
sanitizer: | |
needs: [cache_lfs, cache_dependencies, default_versions] | |
if: github.event.pull_request.draft == false | |
strategy: | |
fail-fast: false | |
matrix: | |
sanitizer_type: [address, thread, undefined] | |
runs-on: ubuntu-22.04 | |
container: ghcr.io/f3d-app/f3d-ci | |
env: | |
DISPLAY: :0 | |
CC: clang | |
CXX: clang++ | |
VTK_SMP_BACKEND_IN_USE: Sequential | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: 'source' | |
fetch-depth: 0 | |
lfs: false | |
- name: Sanitizer CI | |
uses: ./source/.github/actions/sanitizer-ci | |
with: | |
sanitizer_type: ${{matrix.sanitizer_type}} | |
lfs_sha: ${{ needs.cache_lfs.outputs.lfs_sha}} | |
alembic_version: ${{needs.default_versions.outputs.alembic_version}} | |
assimp_version: ${{needs.default_versions.outputs.assimp_version}} | |
draco_version: ${{needs.default_versions.outputs.draco_version}} | |
occt_version: ${{needs.default_versions.outputs.occt_version}} | |
openexr_version: ${{needs.default_versions.outputs.openexr_version}} | |
openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} | |
pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} | |
usd_version: ${{needs.default_versions.outputs.usd_version}} | |
#---------------------------------------------------------------------------- | |
# static-analysis: Run static analysis on linux | |
#---------------------------------------------------------------------------- | |
static-analysis: | |
needs: [cache_lfs, cache_dependencies, default_versions] | |
if: github.event.pull_request.draft == false | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-22.04 | |
container: ghcr.io/f3d-app/f3d-ci | |
env: | |
CC: clang | |
CXX: clang++ | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: 'source' | |
fetch-depth: 0 | |
lfs: false | |
- name: Static analysis CI | |
uses: ./source/.github/actions/static-analysis-ci | |
with: | |
lfs_sha: ${{ needs.cache_lfs.outputs.lfs_sha}} | |
alembic_version: ${{needs.default_versions.outputs.alembic_version}} | |
assimp_version: ${{needs.default_versions.outputs.assimp_version}} | |
draco_version: ${{needs.default_versions.outputs.draco_version}} | |
occt_version: ${{needs.default_versions.outputs.occt_version}} | |
openexr_version: ${{needs.default_versions.outputs.openexr_version}} | |
openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} | |
pybind11_version: ${{needs.default_versions.outputs.pybind11_version}} | |
usd_version: ${{needs.default_versions.outputs.usd_version}} | |
#---------------------------------------------------------------------------- | |
# external-build: Check build of F3D as sub-project | |
#---------------------------------------------------------------------------- | |
external-build: | |
needs: [cache_dependencies, default_versions] | |
if: github.event.pull_request.draft == false | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-22.04 | |
container: ghcr.io/f3d-app/f3d-ci | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: 'source/f3d' | |
fetch-depth: 0 | |
lfs: false | |
- name: External build CI | |
uses: ./source/f3d/.github/actions/external-build-ci | |
with: | |
openvdb_version: ${{needs.default_versions.outputs.openvdb_version}} | |
#---------------------------------------------------------------------------- | |
# android: Check build of F3D for android | |
#---------------------------------------------------------------------------- | |
android: | |
if: github.event.pull_request.draft == false | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [armeabi-v7a, arm64-v8a, x86, x86_64] | |
runs-on: ubuntu-22.04 | |
container: ghcr.io/f3d-app/f3d-ci | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: 'source' | |
fetch-depth: 0 | |
lfs: false | |
- name: Android CI | |
uses: ./source/.github/actions/android-ci | |
with: | |
arch: ${{matrix.arch}} |