Skip to content

Merge pull request #30 from niclasr/removestarfix #73

Merge pull request #30 from niclasr/removestarfix

Merge pull request #30 from niclasr/removestarfix #73

Workflow file for this run

# borrowed this from:
# https://raw.githubusercontent.com/AcademySoftwareFoundation/Imath/main/.github/workflows/ci_workflow.yml
# with some slight simplification
name: CI
on:
push:
# Jobs are skipped when ONLY Markdown (*.md) files are changed
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
jobs:
# Linux jobs run in Docker containers, so the latest OS version is OK. macOS
# and Windows jobs need to be locked to specific virtual environment
# versions to mitigate issues from OS updates, and will require maintenance
# as OS versions are retired.
#
# GH Actions (Free plan) supports 20 concurrent jobs, with 5 concurrent macOS
# jobs. This workflow tries to utilize (but not exceed) that budget to
# promote timely CI.
# ---------------------------------------------------------------------------
# Linux
# ---------------------------------------------------------------------------
# TODO: Add ARM build. Add sanitize build.
linux:
name: 'Linux CentOS 7 VFX CY${{ matrix.vfx-cy }}
<${{ matrix.compiler-desc }} ,
config=${{ matrix.build-type }},
shared=${{ matrix.build-shared }},
cxx=${{ matrix.cxx-standard }}>'
# GH-hosted VM. The build runs in CentOS 7 'container' defined below.
runs-on: ubuntu-latest
container:
# DockerHub: https://hub.docker.com/u/aswf
# Source: https://github.com/AcademySoftwareFoundation/aswf-docker
image: aswf/ci-openexr:${{ matrix.vfx-cy }}
strategy:
matrix:
build: [1, 2, 3, 4, 9, 10, 11, 12, 13, 14, 15, 20, 21, 22]
include:
# -------------------------------------------------------------------
# GCC, VFX CY2022
# -------------------------------------------------------------------
# C++17, Python 3.9
- build: 1
build-type: Release
build-shared: 'ON'
cxx-standard: 17
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: gcc9.3.1
vfx-cy: 2022
# C++17, Python 3.9.7, Debug
- build: 2
build-type: Debug
build-shared: 'ON'
cxx-standard: 17
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: gcc9.3.1
vfx-cy: 2022
# C++17, Python 3.9.7, Static
- build: 3
build-type: Release
build-shared: 'OFF'
cxx-standard: 17
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: gcc9.3.1
vfx-cy: 2022
# C++14, Python 3.9.7, Static
- build: 4
build-type: Release
build-shared: 'ON'
cxx-standard: 14
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: gcc9.3.1
vfx-cy: 2022
# C++17, no Python
# - build: 5
# build-type: Release
# build-shared: 'ON'
# cxx-standard: 17
# cxx-compiler: g++
# cc-compiler: gcc
# compiler-desc: gcc9.3.1
# python: 'OFF'
# python-desc: no python
# vfx-cy: 2022
# -------------------------------------------------------------------
# GCC, VFX CY2021
# -------------------------------------------------------------------
# C++17, Python 3.7.9
- build: 9
build-type: Release
build-shared: 'ON'
cxx-standard: 17
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: gcc9.3.1
python: 'ON'
vfx-cy: 2021
# -------------------------------------------------------------------
# GCC, VFX CY2020
# -------------------------------------------------------------------
# C++14, Python 3.7
- build: 10
build-type: Release
build-shared: 'ON'
cxx-standard: 14
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: gcc6.3.1
vfx-cy: 2020
# -------------------------------------------------------------------
# GCC, VFX CY2019
# -------------------------------------------------------------------
# C++11, Python 2.7
- build: 11
build-type: Release
build-shared: 'ON'
cxx-standard: 11
cxx-compiler: g++
cc-compiler: gcc
compiler-desc: gcc6.3.1
vfx-cy: 2019
# -------------------------------------------------------------------
# Clang, VFX CY2022
# -------------------------------------------------------------------
# C++17, Python 3.9
- build: 12
build-type: Release
build-shared: 'ON'
cxx-standard: 17
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: clang10.4
vfx-cy: 2022
# C++17, Python 3.9.7, Debug
- build: 13
build-type: Debug
build-shared: 'ON'
cxx-standard: 17
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: clang10.4
vfx-cy: 2022
# C++17, Python 3.9.7, Static
- build: 14
build-type: Release
build-shared: 'OFF'
cxx-standard: 17
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: clang10.4
vfx-cy: 2022
# C++14, Python 3.9.7, Static
- build: 15
build-type: Release
build-shared: 'ON'
cxx-standard: 14
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: clang10.4
vfx-cy: 2022
# -------------------------------------------------------------------
# Clang, VFX CY2021
# -------------------------------------------------------------------
# C++17, Python 3.7.9
- build: 20
build-type: Release
build-shared: 'ON'
cxx-standard: 17
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: clang10.4
vfx-cy: 2021
# -------------------------------------------------------------------
# Clang, VFX CY2020
# -------------------------------------------------------------------
# C++14, Python 3.7
- build: 21
build-type: Release
build-shared: 'ON'
cxx-standard: 14
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: clang7.8
vfx-cy: 2020
# -------------------------------------------------------------------
# Clang, VFX CY2019
# -------------------------------------------------------------------
# C++11, Python 2.7
- build: 22
build-type: Release
build-shared: 'ON'
cxx-standard: 11
cxx-compiler: clang++
cc-compiler: clang
compiler-desc: clang7.8
vfx-cy: 2019
env:
CXX: ${{ matrix.cxx-compiler }}
CC: ${{ matrix.cc-compiler }}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Create build directories
run: |
mkdir _install
mkdir _build
- name: Configure
run: |
cmake .. \
-DCMAKE_INSTALL_PREFIX=../_install \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \
-DCMAKE_CXX_FLAGS=${{ matrix.cxx-flags }} \
-DCMAKE_VERBOSE_MAKEFILE:BOOL='OFF' \
-DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \
working-directory: _build
- name: Build
run: |
cmake --build . \
--target install \
--config ${{ matrix.build-type }}
working-directory: _build
- name: Test
run: |
ctest -C ${{ matrix.build_type }}
working-directory: _build
# ---------------------------------------------------------------------------
# macOS
# ---------------------------------------------------------------------------
macos_no_python:
name: 'macOS 10.15
<AppleClang 11.0
config=${{ matrix.build-type }},
shared=${{ matrix.build-shared }},
cxx=${{ matrix.cxx-standard }},
docs=${{ matrix.build-docs }}>'
runs-on: macos-10.15
strategy:
matrix:
build: [1, 2, 3, 4, 5]
include:
# C++11
- build: 1
build-type: Release
build-shared: 'ON'
build-docs: 'ON'
cxx-standard: 17
exclude-tests:
# Debug
- build: 2
build-type: Debug
build-shared: 'ON'
build-docs: 'OFF'
cxx-standard: 17
exclude-tests:
# Static
- build: 3
build-type: Debug
build-shared: 'OFF'
build-docs: 'OFF'
cxx-standard: 17
exclude-tests:
# C++14
- build: 4
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
cxx-standard: 14
exclude-tests:
# C++11
- build: 5
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
cxx-standard: 11
exclude-tests:
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Create build directories
run: |
mkdir _install
mkdir _build
- name: Configure
run: |
cmake ../. \
-DCMAKE_INSTALL_PREFIX=../_install \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \
-DCMAKE_CXX_FLAGS=${{ matrix.cxx-flags }} \
-DCMAKE_VERBOSE_MAKEFILE:BOOL='OFF' \
-DBUILD_SHARED_LIBS=${{ matrix.build-shared }}
working-directory: _build
- name: Build
run: |
cmake --build . \
--target install \
--config ${{ matrix.build-type }} \
-- -j2
working-directory: _build
- name: Test
run: |
ctest -C ${{ matrix.build_type }}
working-directory: _build
# ---------------------------------------------------------------------------
# Windows
# ---------------------------------------------------------------------------
windows:
name: 'Windows 2019
<${{ matrix.compiler-desc }},
config=${{ matrix.build-type }},
shared=${{ matrix.build-shared }},
cxx=${{ matrix.cxx-standard }},
docs=${{ matrix.build-docs }}>'
runs-on: windows-${{ matrix.osver }}
strategy:
matrix:
build: [1, 3, 4, 6, 7, 8]
include:
# -------------------------------------------------------------------
# VFX CY2022 - C++17 - Windows 2019
# -------------------------------------------------------------------
# C++17, Release Shared
- build: 1
build-type: Release
build-shared: 'ON'
build-docs: 'ON'
compiler-desc: msvc16.11
cxx-standard: 17
vfx-cy: 2022
exclude-tests:
osver: 2019
# C++17, Debug -
## - build: 2
## build-type: Debug
## build-shared: 'ON'
## build-docs: 'OFF'
## cxx-standard: 17
## exclude-tests:
# C++17, Release Static
- build: 3
build-type: Release
build-shared: 'OFF'
build-docs: 'OFF'
compiler-desc: msvc16.11
cxx-standard: 17
vfx-cy: 2022
exclude-tests:
osver: 2019
# -------------------------------------------------------------------
# VFX CY2022 - C++17 - Windows 2022
# -------------------------------------------------------------------
# C++17, Release Shared
- build: 4
build-type: Release
build-shared: 'ON'
build-docs: 'ON'
compiler-desc: msvc17.1
cxx-standard: 17
vfx-cy: 2022
exclude-tests:
osver: 2022
# C++17, Debug -
## - build: 5
## build-type: Debug
## build-shared: 'ON'
## build-docs: 'OFF'
## cxx-standard: 17
## exclude-tests:
# C++17, Release Static
- build: 6
build-type: Release
build-shared: 'OFF'
build-docs: 'OFF'
compiler-desc: msvc17.1
cxx-standard: 17
vfx-cy: 2022
exclude-tests:
osver: 2022
# -------------------------------------------------------------------
# VFX CY2020 - C++14 - Windows 2019
# -------------------------------------------------------------------
# C++14, Release Shared
- build: 7
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
compiler-desc: msvc16.11
cxx-standard: 14
vfx-cy: 2020
exclude-tests:
osver: 2019
# -------------------------------------------------------------------
# VFX CY2019 - C++11 - Windows 2019
# -------------------------------------------------------------------
# C++11, Release Shared
- build: 8
build-type: Release
build-shared: 'ON'
build-docs: 'OFF'
compiler-desc: msvc16.11
cxx-standard: 11
exclude-tests:
osver: 2019
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Create build directories
run: |
mkdir _install
mkdir _build
shell: bash
- name: Configure
# the windows build needs the -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS to work
run: |
cmake ../. \
-DCMAKE_INSTALL_PREFIX=../_install \
-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS='ON'\
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \
-DCMAKE_CXX_FLAGS=${{ matrix.cxx-flags }} \
-DCMAKE_VERBOSE_MAKEFILE:BOOL='OFF' \
-DBUILD_SHARED_LIBS=${{ matrix.build-shared }}
shell: bash
working-directory: _build
- name: Build
run: |
cmake --build . \
--target install \
--config ${{ matrix.build-type }}
shell: bash
working-directory: _build
- name: Test
run: |
ctest -C ${{ matrix.build-type }}
shell: bash
working-directory: _build