Skip to content

CI

CI #1044

Workflow file for this run

# 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 (it has its own workflow
# - changes to the python bindings (they have their own workflow)
# - 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
# NOTE: All jobs have a "build" number that appears in the "jobs"
# listing on the GitHub actions page. This build number also
# identifies the reference install manifest in
# share/ci/install_manifest. The validate_install.py script compares
# the job's generated install_manifest.txt to the reference file to
# validate that the proper files have been installed.
#
# If you add jobs, you must add a corresponding
# share/ci/install_manifest file.
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
# build: ${{ matrix.build }}
# # DockerHub: https://hub.docker.com/u/aswf
# # Source: https://github.com/AcademySoftwareFoundation/aswf-docker
# container: aswf/ci-openexr:${{ matrix.vfx-cy || '2024' }}
# cxx-standard: ${{ matrix.cxx-standard || '17' }}
# cxx-compiler: ${{ matrix.cxx-compiler || 'g++' }}
# cc-compiler: ${{ matrix.cc-compiler || 'gcc' }}
# 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_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' }}
# namespace: ${{ matrix.namespace }}
# validate_install: ${{ matrix.validate_install || 'ON' }}
# strategy:
# matrix:
# include:
#
# - build: 1
# label: Release
#
# - build: 2
# label: Debug
# build-type: Debug
#
# - 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: custom namespace
# namespace: 'TEST_NAMESPACE'
#
# - build: 7
# label: clang
# cxx-compiler: clang++
# cc-compiler: clang
#
# - build: 8
# label: vfx2023
# vfx-cy: 2023
#
# 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' }}
# build: ${{ matrix.build }}
# 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_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' }}
# validate_install: ${{ matrix.validate_install || 'ON' }}
# strategy:
# matrix:
# include:
#
# - build: 1
# label: Release
#
# - build: 2
# label: Debug
# build-type: Debug
#
# - 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
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: ${{ matrix.os || 'windows-2022' }}
build: ${{ matrix.build }}
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_FORCE_INTERNAL_IMATH: ${{ matrix.OPENEXR_FORCE_INTERNAL_IMATH || 'OFF' }}
OPENEXR_FORCE_INTERNAL_DEFLATE: ${{ matrix.OPENEXR_FORCE_INTERNAL_DEFLATE || 'OFF' }}
msystem: ${{ matrix.msystem }}
BUILD_TESTING: ${{ matrix.BUILD_TESTING || 'ON' }}
validate_install: ${{ matrix.validate_install || 'ON' }}
strategy:
matrix:
include:
# - build: 1
# label: Release
#
# - build: 2
# label: Debug
# build-type: Debug
#
# - build: 3
# label: static
# BUILD_SHARED_LIBS: 'OFF'
#
# - build: 4
# label: threads=OFF
# # TODO: this currently fails to compile; switch to OFF once the fix is in.
# OPENEXR_ENABLE_THREADING: 'ON'
#
# - 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: vfx2022
# os: windows-2019
- build: 7
label: msys2-mingw32
msystem: MINGW32
validate_install: OFF
- build: 8
label: msys2-mingw32
msystem: MINGW32
BUILD_SHARED_LIBS: 'OFF'
validate_install: OFF
- build: 9
label: msys2-ucrt64
msystem: UCRT64
validate_install: OFF
- build: 10
label: msys2-ucrt64
msystem: UCRT64
BUILD_SHARED_LIBS: 'OFF'
validate_install: OFF