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
# SPDX-License-Identifier: BSD-3-Clause | ||
# Copyright (c) Contributors to the OpenEXR Project. | ||
# The CI workflow uses steps defined in ci_steps.yml, via the "uses:" | ||
# directive. Linux, macOS, and Windows all share a common set of | ||
# configure/build/validate steps. | ||
name: CI | ||
# Run on all changes except: | ||
# - markdown/doc changes | ||
# - changes to the website, *except* for "website/src", since that | ||
# code needs validation. The website has a separate workflow | ||
# - changes to the bazel config, since it has its own workflow | ||
# - changes to the python bindings | ||
# - changes to workflows other than this one | ||
on: | ||
push: | ||
paths: | ||
- '**' | ||
- '!**.md' | ||
- '!website/**' | ||
- 'website/src/**' | ||
- '!bazel/**' | ||
- '!src/wrappers/**' | ||
- '!.github/workflows/**' | ||
- '.github/workflows/ci_workflow.yml' | ||
- '.github/workflows/ci_steps.yml' | ||
pull_request: | ||
paths: | ||
- '**' | ||
- '!**.md' | ||
- '!website/**' | ||
- 'website/src/**' | ||
- '!bazel/**' | ||
- '!src/wrappers/**' | ||
- '!.github/workflows/**' | ||
- '.github/workflows/ci_workflow.yml' | ||
- '.github/workflows/ci_steps.yml' | ||
permissions: | ||
contents: read | ||
jobs: | ||
linux: | ||
name: 'Linux.${{ matrix.build}}: ${{ matrix.label }}' | ||
uses: ./.github/workflows/ci_steps.yml | ||
with: | ||
# Set values for the "inputs:" as defined in ci_steps.yml | ||
# Note the defaults provided here for the builds that don't specify | ||
# values. | ||
os: ubuntu-latest | ||
container: 'aswf/ci-openexr:${{ matrix.vfx-cy }}' | ||
vfx-cy: ${{ matrix.vfx-cy || '2024' }} | ||
cxx-compiler: ${{ matrix.cxx-compiler || 'g++' }} | ||
cc-compiler: ${{ matrix.cc-compiler || 'gcc' }} | ||
cxx-standard: ${{ matrix.cxx-standard || '17' }} | ||
build-type: ${{ matrix.build-type || 'Release' }} | ||
BUILD_SHARED_LIBS: ${{ matrix.BUILD_SHARED_LIBS || 'ON' }} | ||
OPENEXR_ENABLE_THREADING: ${{ matrix.OPENEXR_ENABLE_THREADING || 'ON' }} | ||
OPENEXR_INSTALL_PKG_CONFIG: ${{ matrix.OPENEXR_INSTALL_PKG_CONFIG || 'ON' }} | ||
OPENEXR_INSTALL_DOCS: ${{ matrix.OPENEXR_INSTALL_DOCS || 'ON' }} | ||
OPENEXR_BUILD_EXAMPLES: ${{ matrix.OPENEXR_BUILD_EXAMPLES || 'ON' }} | ||
OPENEXR_BUILD_TOOLS: ${{ matrix.OPENEXR_BUILD_TOOLS || 'ON' }} | ||
OPENEXR_BUILD_PYTHON: ${{ matrix.OPENEXR_BUILD_PYTHON || 'OFF' }} | ||
OPENEXR_FORCE_INTERNAL_IMATH: ${{ matrix.OPENEXR_FORCE_INTERNAL_IMATH || 'OFF' }} | ||
OPENEXR_FORCE_INTERNAL_DEFLATE: ${{ matrix.OPENEXR_FORCE_INTERNAL_DEFLATE || 'OFF' }} | ||
BUILD_TESTING: ${{ matrix.BUILD_TESTING || 'ON' }} | ||
strategy: | ||
matrix: | ||
include: | ||
- build: 1 | ||
label: Debug | ||
build-type: Debug | ||
- build: 2 | ||
label: Release | ||
- build: 3 | ||
label: Static | ||
BUILD_SHARED_LIBS: 'OFF' | ||
- build: 4 | ||
label: threads=OFF | ||
OPENEXR_ENABLE_THREADING: 'OFF' | ||
- build: 5 | ||
label: pkgconfig=OFF, examples=OFF, tools=OFF, docs=OFF, internal deflate | ||
OPENEXR_INSTALL_PKG_CONFIG: 'OFF' | ||
OPENEXR_INSTALL_DOCS: 'OFF' | ||
OPENEXR_BUILD_EXAMPLES: 'OFF' | ||
OPENEXR_BUILD_TOOLS: 'OFF' | ||
OPENEXR_FORCE_INTERNAL_IMATH: 'ON' | ||
OPENEXR_FORCE_INTERNAL_DEFLATE: 'ON' | ||
BUILD_TESTING: 'OFF' | ||
- build: 6 | ||
label: clang15.0 | ||
cxx-compiler: clang++ | ||
cc-compiler: clang | ||
- build: 7 | ||
label: clang14.0 | ||
cxx-compiler: clang++ | ||
cc-compiler: clang | ||
- build: 8 | ||
label: vfx2023 | ||
vfx-cy: 2023 | ||
- build: 9 | ||
label: vfx2022 | ||
vfx-cy: 2022 | ||
- build: 10 | ||
label: vfx2021 | ||
vfx-cy: 2021 | ||
macOS: | ||
name: 'macOS.${{ matrix.build}}: ${{ matrix.label }}' | ||
uses: ./.github/workflows/ci_steps.yml | ||
with: | ||
# Set values for the "inputs:" as defined in ci_steps.yml | ||
# Note the defaults provided here for the builds that don't specify | ||
# values. | ||
os: ${{ matrix.os || 'macos-14' }} | ||
vfx-cy: ${{ matrix.vfx-cy || '2024' }} | ||
cxx-compiler: ${{ matrix.cxx-compiler || 'clang++' }} | ||
cc-compiler: ${{ matrix.cc-compiler || 'clang' }} | ||
cxx-standard: ${{ matrix.cxx-standard || '17' }} | ||
build-type: ${{ matrix.build-type || 'Release' }} | ||
BUILD_SHARED_LIBS: ${{ matrix.BUILD_SHARED_LIBS || 'ON' }} | ||
OPENEXR_ENABLE_THREADING: ${{ matrix.OPENEXR_ENABLE_THREADING || 'ON' }} | ||
OPENEXR_INSTALL_PKG_CONFIG: ${{ matrix.OPENEXR_INSTALL_PKG_CONFIG || 'ON' }} | ||
OPENEXR_INSTALL_DOCS: ${{ matrix.OPENEXR_INSTALL_DOCS || 'ON' }} | ||
OPENEXR_BUILD_EXAMPLES: ${{ matrix.OPENEXR_BUILD_EXAMPLES || 'ON' }} | ||
OPENEXR_BUILD_TOOLS: ${{ matrix.OPENEXR_BUILD_TOOLS || 'ON' }} | ||
OPENEXR_BUILD_PYTHON: ${{ matrix.OPENEXR_BUILD_PYTHON || 'OFF' }} | ||
OPENEXR_FORCE_INTERNAL_IMATH: ${{ matrix.OPENEXR_FORCE_INTERNAL_IMATH || 'OFF' }} | ||
OPENEXR_FORCE_INTERNAL_DEFLATE: ${{ matrix.OPENEXR_FORCE_INTERNAL_DEFLATE || 'OFF' }} | ||
BUILD_TESTING: ${{ matrix.BUILD_TESTING || 'ON' }} | ||
strategy: | ||
matrix: | ||
include: | ||
- build: 1 | ||
label: Debug | ||
build-type: Debug | ||
- build: 2 | ||
label: Release | ||
- build: 3 | ||
label: Static | ||
BUILD_SHARED_LIBS: 'OFF' | ||
- build: 4 | ||
label: threads=OFF | ||
OPENEXR_ENABLE_THREADING: 'OFF' | ||
- build: 5 | ||
label: pkgconfig=OFF, examples=OFF, tools=OFF, docs=OFF, internal imath+deflate | ||
OPENEXR_INSTALL_PKG_CONFIG: 'OFF' | ||
OPENEXR_INSTALL_DOCS: 'OFF' | ||
OPENEXR_BUILD_EXAMPLES: 'OFF' | ||
OPENEXR_BUILD_TOOLS: 'OFF' | ||
OPENEXR_FORCE_INTERNAL_IMATH: 'ON' | ||
OPENEXR_FORCE_INTERNAL_DEFLATE: 'ON' | ||
BUILD_TESTING: 'OFF' | ||
- build: 6 | ||
label: macos-13 | ||
os: macos-13 | ||
- build: 7 | ||
label: macos-12 | ||
os: macos-12 | ||
windows: | ||
name: 'Windows.${{ matrix.build}}: ${{ matrix.label }}' | ||
uses: ./.github/workflows/ci_steps.yml | ||
with: | ||
# Set values for the "inputs:" as defined in ci_steps.yml | ||
# Note the defaults provided here for the builds that don't specify | ||
# values. | ||
os: windows-2022 | ||
vfx-cy: ${{ matrix.vfx-cy || '2024' }} | ||
cxx-compiler: ${{ matrix.cxx-compiler }} | ||
cc-compiler: ${{ matrix.cc-compiler }} | ||
cxx-standard: ${{ matrix.cxx-standard || '17' }} | ||
build-type: ${{ matrix.build-type || 'Release' }} | ||
BUILD_SHARED_LIBS: ${{ matrix.BUILD_SHARED_LIBS || 'ON' }} | ||
OPENEXR_ENABLE_THREADING: ${{ matrix.OPENEXR_ENABLE_THREADING || 'ON' }} | ||
OPENEXR_INSTALL_PKG_CONFIG: ${{ matrix.OPENEXR_INSTALL_PKG_CONFIG || 'ON' }} | ||
OPENEXR_INSTALL_DOCS: ${{ matrix.OPENEXR_INSTALL_DOCS || 'OFF' }} | ||
OPENEXR_BUILD_EXAMPLES: ${{ matrix.OPENEXR_BUILD_EXAMPLES || 'ON' }} | ||
OPENEXR_BUILD_TOOLS: ${{ matrix.OPENEXR_BUILD_TOOLS || 'ON' }} | ||
OPENEXR_BUILD_PYTHON: ${{ matrix.OPENEXR_BUILD_PYTHON || 'OFF' }} | ||
OPENEXR_FORCE_INTERNAL_IMATH: ${{ matrix.OPENEXR_FORCE_INTERNAL_IMATH || 'OFF' }} | ||
OPENEXR_FORCE_INTERNAL_DEFLATE: ${{ matrix.OPENEXR_FORCE_INTERNAL_DEFLATE || 'OFF' }} | ||
BUILD_TESTING: ${{ matrix.BUILD_TESTING || 'ON' }} | ||
strategy: | ||
matrix: | ||
include: | ||
- build: 1 | ||
build-type: Debug | ||
label: Debug | ||
- build: 2 | ||
label: Release | ||
- build: 3 | ||
label: Static | ||
BUILD_SHARED_LIBS: 'OFF' | ||
- build: 4 | ||
label: threads=OFF | ||
OPENEXR_ENABLE_THREADING: 'OFF' | ||
- build: 5 | ||
label: pkgconfig=OFF, examples=OFF, tools=OFF, docs=OFF, internal imath+deflate | ||
OPENEXR_INSTALL_PKG_CONFIG: 'OFF' | ||
OPENEXR_INSTALL_DOCS: 'OFF' | ||
OPENEXR_BUILD_EXAMPLES: 'OFF' | ||
OPENEXR_BUILD_TOOLS: 'OFF' | ||
OPENEXR_FORCE_INTERNAL_IMATH: 'ON' | ||
OPENEXR_FORCE_INTERNAL_DEFLATE: 'ON' | ||
BUILD_TESTING: 'OFF' | ||
- build: 6 | ||
label: windows-2019 | ||
os: windows-2019 | ||