Skip to content

Cache preheating

Cache preheating #1151

name: Cache preheating
on:
workflow_dispatch:
inputs:
repo:
description: "Repository to build caches from"
required: true
branch:
description: "Branch of repository to build caches from"
required: true
jobs:
#----------------------------------------------------------------------------
# Cache preheating all dependencies
#----------------------------------------------------------------------------
cache_preheating_dependencies:
name: Preheat dependency caches
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, windows-2022, macos-15, macos-15-intel]
build_type: [standard]
include:
- mindeps_label: no-mindeps
- build_type: mindeps
os: ubuntu-24.04
mindeps_label: mindeps
runs-on: ${{matrix.os}}
container: ${{ matrix.os == 'ubuntu-24.04' && 'ghcr.io/f3d-app/f3d-ci' || null }}
env:
CMAKE_POLICY_VERSION_MINIMUM: 3.5
steps:
- uses: actions/checkout@v7
with:
ref: ${{ github.event.inputs.branch }}
repository: ${{ github.event.inputs.repo }}
path: "source"
fetch-depth: 1
lfs: false
- name: Generic Dependencies
uses: ./source/.github/actions/generic-dependencies
with:
versions_file: ./source/.github/workflows/versions.json
mindeps_label: ${{matrix.mindeps_label}}
cpu: ${{ matrix.os == 'macos-15' && 'arm64' || 'x86_64' }}
#----------------------------------------------------------------------------
# Recover vtk matrix
#----------------------------------------------------------------------------
recover_vtk_matrix:
name: Recover VTK matrix
runs-on: ubuntu-24.04
outputs:
vtk_matrix: ${{steps.vtk_matrix.outputs.extract}}
steps:
- uses: actions/checkout@v7
with:
ref: ${{ github.event.inputs.branch }}
repository: ${{ github.event.inputs.repo }}
path: "source"
fetch-depth: 1
lfs: false
- name: Extract VTK matrix
id: vtk_matrix
uses: f3d-app/extract-version-action@main
with:
file: ./source/.github/workflows/versions.json
special_name: vtk_matrix
#----------------------------------------------------------------------------
# Cache preheating VTK
#----------------------------------------------------------------------------
cache_preheating_vtk:
needs: [cache_preheating_dependencies, recover_vtk_matrix]
name: Preheat VTK dependency caches
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, windows-2022, macos-15, macos-15-intel]
vtk_version: ${{fromJSON(needs.recover_vtk_matrix.outputs.vtk_matrix)}}
build_type: [standard]
include:
- optdeps_label: optdeps
- mindeps_label: no-mindeps
- gles_label: no-gles
- build_type: mindeps
os: ubuntu-24.04
vtk_version: commit
gles_label: no-gles
optdeps_label: optdeps
mindeps_label: mindeps
- build_type: no-optdeps
os: ubuntu-24.04
vtk_version: commit
gles_label: no-gles
optdeps_label: no-optdeps
mindeps_label: no-mindeps
- build_type: gles
os: ubuntu-24.04
vtk_version: commit
gles_label: gles
optdeps_label: optdeps
mindeps_label: no-mindeps
runs-on: ${{matrix.os}}
container: ${{ matrix.os == 'ubuntu-24.04' && 'ghcr.io/f3d-app/f3d-ci' || null }}
env:
CMAKE_POLICY_VERSION_MINIMUM: 3.5
steps:
- uses: actions/checkout@v7
with:
ref: ${{ github.event.inputs.branch }}
repository: ${{ github.event.inputs.repo }}
path: "source"
fetch-depth: 1
lfs: false
- name: VTK Dependencies (already cached)
uses: ./source/.github/actions/vtk-dependencies
with:
versions_file: ./source/.github/workflows/versions.json
optdeps_label: ${{matrix.optdeps_label}}
mindeps_label: ${{matrix.mindeps_label}}
cpu: ${{ matrix.os == 'macos-15' && 'arm64' || 'x86_64' }}
- name: Cache VTK
uses: ./source/.github/actions/vtk-install-dep
with:
versions_file: ./source/.github/workflows/versions.json
optdeps_label: ${{matrix.optdeps_label}}
mindeps_label: ${{matrix.mindeps_label}}
gles_label: ${{matrix.gles_label}}
cpu: ${{ matrix.os == 'macos-15' && 'arm64' || 'x86_64' }}
vtk_version: ${{matrix.vtk_version}}