Use std::optional for options #6326
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: | |
#---------------------------------------------------------------------------- | |
# Cache LFS: Checkout LFS data and update the cache to limit LFS bandwidth | |
#---------------------------------------------------------------------------- | |
cache_lfs: | |
runs-on: ubuntu-latest | |
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 | |
#---------------------------------------------------------------------------- | |
# Windows CI: Build and test, cross-vtk build matrix | |
#---------------------------------------------------------------------------- | |
windows: | |
if: github.event.pull_request.draft == false | |
needs: cache_lfs | |
strategy: | |
fail-fast: false | |
matrix: | |
vtk_version: [commit, 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}} | |
#---------------------------------------------------------------------------- | |
# Linux CI: Build and test, cross-vtk build matrix | |
#---------------------------------------------------------------------------- | |
linux: | |
if: github.event.pull_request.draft == false | |
needs: cache_lfs | |
strategy: | |
fail-fast: false | |
matrix: | |
vtk_version: [commit, v9.3.1, v9.2.6] | |
build_type: [standard] | |
include: | |
- raytracing_label: raytracing | |
- exclude_deprecated_label: no-exclude-deprecated | |
- optional_deps_label: optional-deps | |
- egl_label: no-egl | |
- static_label: no-static | |
- build_type: headless | |
vtk_version: commit | |
raytracing_label: raytracing | |
optional_deps_label: optional-deps | |
exclude_deprecated_label: no-exclude-deprecated | |
egl_label: egl | |
static_label: no-static | |
- build_type: exclude_deprecated | |
vtk_version: commit | |
raytracing_label: raytracing | |
optional_deps_label: optional-deps | |
exclude_deprecated_label: exclude-deprecated | |
egl_label: no-egl | |
static_label: no-static | |
- build_type: no_optional_deps | |
vtk_version: commit | |
raytracing_label: no-raytracing | |
optional_deps_label: no-optional-deps | |
exclude_deprecated_label: no-exclude-deprecated | |
egl_label: no-egl | |
static_label: no-static | |
- build_type: static_libs | |
vtk_version: commit | |
raytracing_label: no-raytracing | |
optional_deps_label: optional-deps | |
exclude_deprecated_label: no-exclude-deprecated | |
egl_label: no-egl | |
static_label: static | |
runs-on: ubuntu-latest | |
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}} | |
optional_deps_label: ${{matrix.optional_deps_label}} | |
exclude_deprecated_label: ${{matrix.exclude_deprecated_label}} | |
egl_label: ${{matrix.egl_label}} | |
static_label: ${{matrix.static_label}} | |
lfs_sha: ${{ needs.cache_lfs.outputs.lfs_sha}} | |
#---------------------------------------------------------------------------- | |
# MacOS CI: Build and test, cross-vtk build matrix | |
#---------------------------------------------------------------------------- | |
macos: | |
if: github.event.pull_request.draft == false | |
needs: cache_lfs | |
strategy: | |
fail-fast: false | |
matrix: | |
vtk_version: [commit, 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}} | |
#---------------------------------------------------------------------------- | |
# 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 | |
strategy: | |
fail-fast: false | |
matrix: | |
vtk_version: [commit, v9.3.1, v9.2.6] | |
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}} | |
#---------------------------------------------------------------------------- | |
# Python packaging: Build and test the Python wheel | |
#---------------------------------------------------------------------------- | |
python-packaging: | |
if: github.event.pull_request.draft == false | |
needs: cache_lfs | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-13] | |
runs-on: ${{matrix.os}} | |
container: ${{ matrix.os == 'ubuntu-latest' && '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}} | |
#---------------------------------------------------------------------------- | |
# Coverage: Build and test on linux with last VTK with coverage option | |
#---------------------------------------------------------------------------- | |
coverage: | |
needs: cache_lfs | |
if: github.event.pull_request.draft == false | |
runs-on: ubuntu-latest | |
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}} | |
#---------------------------------------------------------------------------- | |
# 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 | |
if: github.event.pull_request.draft == false | |
strategy: | |
fail-fast: false | |
matrix: | |
sanitizer_type: [address, thread, undefined] | |
runs-on: ubuntu-latest | |
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}} | |
#---------------------------------------------------------------------------- | |
# static-analysis: Run static analysis on linux | |
#---------------------------------------------------------------------------- | |
static-analysis: | |
needs: cache_lfs | |
if: github.event.pull_request.draft == false | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-latest | |
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}} | |
#---------------------------------------------------------------------------- | |
# external-build: Check build of F3D as sub-project | |
#---------------------------------------------------------------------------- | |
external-build: | |
if: github.event.pull_request.draft == false | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-latest | |
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 | |
#---------------------------------------------------------------------------- | |
# 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-latest | |
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}} |