Skip to content

TRY Mac15 and Windows #4380

TRY Mac15 and Windows

TRY Mac15 and Windows #4380

Workflow file for this run

# Copyright Contributors to the Open Shading Language project.
# SPDX-License-Identifier: BSD-3-Clause
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
# GitHub Actions workflow file for CI
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
name: CI
on:
push:
# Skip jobs when only documentation files are changed
# Skip jobs when only documentation files are changed
paths:
- '**'
- '!**.md'
- '!**.rst'
- '!**.tex'
- '!**/analysis.yml'
- '!**/docs.yml'
- '!**.properties'
- '!doc/**'
pull_request:
paths:
- '**'
- '!**.md'
- '!**.rst'
- '!**.tex'
- '!doc/**'
schedule:
# Full nightly build, for the main project repo (not for forks)
- cron: "0 6 * * *"
if: github.repository == 'AcademySoftwareFoundation/OpenShadingLanguage'
workflow_dispatch:
# This allows manual triggering of the workflow from the web
permissions: read-all
jobs:
aswf-old:
if: 0
name: "VFX${{matrix.vfxyear}} ${{matrix.desc}}"
strategy:
fail-fast: false
matrix:
include:
- desc: gcc9/C++17 llvm11 py3.7 oiio2.5 sse4 batch-b8avx2
nametag: linux-vfx2021
runner: ubuntu-latest
container: aswftesting/ci-osl:2021-clang11
vfxyear: 2021
old_node: 1
cxx_std: 17
openexr_ver: v3.1.3
openimageio_ver: v2.5.4.0
python_ver: 3.7
pybind11_ver: v2.7.0
simd: sse4.2
batched: b8_AVX2_noFMA
setenvs: export USE_OPENVDB=0
- desc: gcc9/C++17 llvm13 py3.9 exr3.1 oiio-rel avx2
nametag: linux-vfx2022
runner: ubuntu-latest
container: aswftesting/ci-osl:2022-clang13
vfxyear: 2022
old_node: 1
cxx_std: 17
openimageio_ver: v2.5.17.0
python_ver: 3.9
pybind11_ver: v2.9.0
simd: avx2,f16c
batched: b8_AVX2
- desc: clang12/C++17 llvm12 oiio-main py3.9 avx2 batch-avx512
nametag: linux-clang12-llvm12-batch
runner: ubuntu-latest
container: aswftesting/ci-osl:2022-clang12
vfxyear: 2022
old_node: 1
cxx_std: 17
opencolorio_ver: v2.2.1
openimageio_ver: v3.0.2.0
python_ver: 3.9
pybind11_ver: v2.7.0
simd: avx2,f16c
batched: b8_AVX2,b8_AVX512,b16_AVX512
setenvs: USE_OPENVDB=0
- desc: gcc9/C++17 llvm11 py3.9 exr3.1 oiio3.0 sse2 batch-b4sse2
nametag: linux-vfx2021
runner: ubuntu-latest
container: aswftesting/ci-osl:2022-clang13
vfxyear: 2022
old_node: 1
cxx_std: 17
opencolorio_ver: v2.2.0
openimageio_ver: dev-3.0
python_ver: 3.9
pybind11_ver: v2.9.0
simd: sse2
batched: b4_SSE2
- desc: oldest everything gcc9/C++17 llvm9 py3.7 oiio2.5 no-simd
nametag: linux-oldest
runner: ubuntu-latest
container: aswftesting/ci-osl:2021-clang11
vfxyear: 2021
old_node: 1
cxx_std: 17
openexr_ver: v3.1.0
openimageio_ver: v2.5.4.0
python_ver: 3.7
pybind11_ver: v2.7.0
# simd: 0
setenvs: export PUGIXML_VERSION=v1.8
CMAKE_VERSION=3.19.0
ENABLE_OPENVDB=0
runs-on: ${{matrix.runner}}
container:
image: ${{ matrix.container }}
volumes:
- /node20217:/node20217:rw,rshared
- /node20217:/__e/node20:ro,rshared
env:
CXX: ${{matrix.cxx_compiler}}
CC: ${{matrix.cc_compiler}}
CMAKE_CXX_STANDARD: ${{matrix.cxx_std}}
FMT_VERSION: ${{matrix.fmt_ver}}
OPENCOLORIO_VERSION: ${{matrix.opencolorio_ver}}
OPENEXR_VERSION: ${{matrix.openexr_ver}}
OPENIMAGEIO_VERSION: ${{matrix.openimageio_ver}}
PYBIND11_VERSION: ${{matrix.pybind11_ver}}
PYTHON_VERSION: ${{matrix.python_ver}}
USE_BATCHED: ${{matrix.batched}}
USE_SIMD: ${{matrix.simd}}
ABI_CHECK: ${{matrix.abi_check}}
steps:
# Install nodejs 20 with glibc 2.17, to work around the face that the
# GHA runners are insisting on a node version that is too new for the
# glibc in the ASWF containers prior to 2023.
- name: install nodejs20glibc2.17
if: matrix.old_node == '1'
run: |
curl --silent https://unofficial-builds.nodejs.org/download/release/v20.18.1/node-v20.18.1-linux-x64-glibc-217.tar.xz | tar -xJ --strip-components 1 -C /node20217 -f -
# We would like to use harden-runner, but it flags too many false
# positives, every time we download a dependency. We should use it only
# on CI runs where we are producing artifacts that users might rely on.
# - name: Harden Runner
# uses: step-security/harden-runner@248ae51c2e8cc9622ecf50685c8bf7150c6e8813 # v1.4.3
# with:
# egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
- name: Prepare ccache timestamp
id: ccache_cache_keys
run: echo "::set-output name=date::`date -u +'%Y-%m-%dT%H:%M:%SZ'`"
- name: ccache
id: ccache
uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d # v3.0.4
with:
path: /tmp/ccache
key: ${{github.job}}-${{matrix.nametag}}-${{steps.ccache_cache_keys.outputs.date}}
restore-keys: ${{github.job}}-${{matrix.nametag}}-
- name: Build setup
run: |
${{matrix.setenvs}}
src/build-scripts/ci-startup.bash
- name: Remove existing OpenEXR
if: matrix.openexr_ver != ''
run: |
sudo rm -rf /usr/local/include/OpenEXR
sudo rm -rf /usr/local/lib*/cmake/OpenEXR
sudo rm -rf /usr/local/lib*/libOpenOpenEXR*
sudo rm -rf /usr/local/lib*/python3.9/site-packages/OpenOpenEXR*
- name: Remove existing OIIO
if: matrix.openimageio_ver != ''
run: |
sudo rm -rf /usr/local/include/OpenImageIO
sudo rm -rf /usr/local/lib*/cmake/OpenImageIO
sudo rm -rf /usr/local/lib*/libOpenImageIO*
sudo rm -rf /usr/local/lib*/python3.9/site-packages/OpenImageIO*
- name: Dependencies
run: |
${{matrix.depcmds}}
src/build-scripts/gh-installdeps.bash
- name: Build
run: |
src/build-scripts/ci-build.bash
- name: Testsuite
if: matrix.skip_tests != '1'
run: src/build-scripts/ci-test.bash
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
if: failure()
with:
name: osl-${{github.job}}-${{matrix.nametag}}
path: |
build/cmake-save
build/compat_reports
build/*.cmake
build/CMake*
build/testsuite/*/*.*
linux:
if: 0
name: "${{matrix.desc}}"
uses: ./.github/workflows/build-steps.yml
with:
nametag: ${{ matrix.nametag || 'unnamed!' }}
runner: ${{ matrix.runner || 'ubuntu-latest' }}
container: ${{ matrix.container }}
cc_compiler: ${{ matrix.cc_compiler || 'gcc' }}
cxx_compiler: ${{ matrix.cxx_compiler || 'g++' }}
cxx_std: ${{ matrix.cxx_std || '17' }}
build_type: ${{ matrix.build_type || 'Release' }}
depcmds: ${{ matrix.depcmds }}
extra_artifacts: ${{ matrix.extra_artifacts }}
fmt_ver: ${{ matrix.fmt_ver }}
opencolorio_ver: ${{ matrix.opencolorio_ver }}
openexr_ver: ${{ matrix.openexr_ver }}
openimageio_ver: ${{ matrix.openimageio_ver }}
pybind11_ver: ${{ matrix.pybind11_ver }}
python_ver: ${{ matrix.python_ver }}
setenvs: ${{ matrix.setenvs }}
simd: ${{ matrix.simd }}
batched: ${{ matrix.batched }}
skip_build: ${{ matrix.skip_build }}
skip_tests: ${{ matrix.skip_tests }}
abi_check: ${{ matrix.abi_check }}
build_docs: ${{ matrix.build_docs }}
generator: ${{ matrix.generator }}
ctest_args: ${{ matrix.ctest_args }}
ctest_test_timeout: ${{ matrix.ctest_test_timeout || '800' }}
coverage: ${{ matrix.coverage || 0 }}
sonar: ${{ matrix.sonar || 0 }}
strategy:
fail-fast: false
matrix:
include:
- desc: VP2023 gcc11/C++17 llvm15 py3.10 oiio-rel avx2
nametag: linux-vfx2023
runner: ubuntu-latest
container: aswftesting/ci-osl:2023-clang15
cxx_std: 17
openimageio_ver: release
python_ver: "3.10"
pybind11_ver: v2.9.0
simd: avx2,f16c
batched: b8_AVX2
- desc: VP2023 GPU Cuda11 gcc11/C++17 llvm15 py3.10 OIIO-main avx2
nametag: linux-optix7-2023
runner: ubuntu-latest
container: aswftesting/ci-osl:2023-clang15
cxx_std: 17
openimageio_ver: main
python_ver: "3.10"
pybind11_ver: v2.10.0
simd: avx2,f16c
skip_tests: 1
setenvs: export OSL_CMAKE_FLAGS="-DOSL_USE_OPTIX=1" OPTIX_VERSION=7.0
OPENIMAGEIO_CMAKE_FLAGS=-DBUILD_FMT_VERSION=9.1.0
- desc: VP2024 gcc11/C++17 llvm17 py3.11 boost1.82 oiio-rel avx2
nametag: linux-vfx2024
runner: ubuntu-latest
container: aswftesting/ci-osl:2024-clang17
cxx_std: 17
openimageio_ver: release
python_ver: "3.11"
pybind11_ver: v2.11.1
simd: avx2,f16c
batched: b8_AVX2
# setenvs: export CONAN_PACKAGES="ptex/2.4.2@aswf/vfx2024"
# Address and leak sanitizers
- desc: sanitizers
nametag: sanitizer
runner: ubuntu-latest
container: aswftesting/ci-osl:2024-clang17
cc_compiler: clang
cxx_compiler: clang++
cxx_std: 17
openimageio_ver: main
python_ver: "3.11"
pybind11_ver: v2.11.1
simd: avx2,f16c
batched: b8_AVX2
setenvs: export OSL_CMAKE_FLAGS="-DSANITIZE=address -DOSL_TEST_BIG_TIMEOUT=1200"
CMAKE_BUILD_TYPE=Debug
CTEST_TEST_TIMEOUT=1200
CTEST_EXCLUSIONS="broken|noise-reg.regress|noise-gabor-reg.regress|example-.*deformer|spline-reg.regress.batched|osl-imageio"
OSL_OPTIONS=llvm_debugging_symbols=1
TESTRENDER_AA=1
OSL_TESTSUITE_SKIP_DIFF=1
# Sanitizer notes:
# - There are a handful of tests we disable entirely with
# CTEST_EXCLUSIONS because they are irrelevant or just cannot be
# made to be clean (and that's ok).
# - Tests with sanitizers run slow, so we increase timeouts, and
# also set AA to 1 for render tests to speed them up.
# OSL_TESTSUITE_SKIP_DIFF prevents making the AA=1 image result
# fail, but that's ok because every other CI test is checking
# the results; here we have no reason to believe results will
# differ from other tests, we just need to run with sanitizers
# turned on.
# - In testing.cmake, we rig texture tests to disable the leak
# sanitizer, because we can't eliminate some completely benign
# leaks from the texture system, and because they are called
# from JITed code, we don't get a clean stack trace of things
# that happen in OIIO and therefore we just can't enumerate the
# allowed exceptions. So we trust that OIIO itself tests the
# texture system adequately and is able to ignore the benign
# "leaks."
# Test ABI stability. `abi_check` is the version or commit that we
# believe is the current standard against which we don't want to
# break the ABI. Basically, we will build that version as well as
# the current one, and compare the resulting libraries.
- desc: abi check
nametag: linux-vfx2023
runner: ubuntu-latest
container: aswftesting/ci-osl:2023-clang15
cc_compiler: gcc
cxx_compiler: g++
cxx_std: 17
openimageio_ver: release
python_ver: "3.10"
simd: "avx2,f16c"
batched: b8_AVX2
fmt_ver: 10.1.1
pybind11_ver: v2.10.0
skip_tests: 1
abi_check: 35b12e4420a59fc04b4fb46388e5d0a575ea8c60
setenvs: export OSL_CMAKE_FLAGS="-DOSL_BUILD_TESTS=0 -DBUILD_TESTING=OFF -DUSE_QT=0"
OPENIMAGEIO_CMAKE_FLAGS="-DUSE_PYTHON=0"
CMAKE_BUILD_TYPE=RelWithDebInfo
- desc: icc/C++17 llvm14 py3.9 oiio-main avx2
nametag: linux-icc
runner: ubuntu-latest
container: aswftesting/ci-osl:2023-clang15
cc_compiler: icc
cxx_compiler: icpc
cxx_std: 17
fmt_ver: 7.1.3
opencolorio_ver: v2.3.2
openimageio_ver: v2.5.17.0
# Changes to OIIO's simd.h starting in commit 68666db9 (from PR
# #4187) seem to trigger compiler bugs in icc and generate wrong
# SIMD code. It's probably not worth tracking down for just this
# obsolete compiler. Just lock down to OIIO 2.5 for icc builds to
# avoid the problem.
# openimageio_ver: e41ac03c0b21 # works
# openimageio_ver: 68666db994d5 # broken
python_ver: "3.10"
pybind11_ver: v2.10.0
# simd: avx2,f16c
batched: b8_AVX2_noFMA
setenvs: export OSL_CMAKE_FLAGS="-DSTOP_ON_WARNING=OFF -DEXTRA_CPP_ARGS=-fp-model=consistent"
OPENIMAGEIO_CMAKE_FLAGS=-DBUILD_FMT_VERSION=7.1.3
USE_OPENVDB=0 OPENCOLORIO_CXX=g++
- desc: icx/C++17 llvm14 py3.10 oiio-3.0 avx2
nametag: linux-icx
runner: ubuntu-latest
container: aswftesting/ci-osl:2023-clang15
cc_compiler: icx
cxx_compiler: icpx
cxx_std: 17
fmt_ver: 7.1.3
opencolorio_ver: v2.3.2
openimageio_ver: v3.0.2.0
python_ver: "3.10"
pybind11_ver: v2.10.0
simd: avx2,f16c
batched: b8_AVX2_noFMA
setenvs: export OSL_CMAKE_FLAGS="-DSTOP_ON_WARNING=OFF" USE_OPENVDB=0
OPENCOLORIO_CXX=g++
- desc: Debug gcc7/C++17 llvm11 py3.8 oiio2.5 exr3.1 sse4
nametag: linux-debug-gcc7-llvm11
runner: ubuntu-20.04
cxx_compiler: g++-9
cxx_std: 17
openexr_ver: v3.1.11
openimageio_ver: v2.5.4.0
pybind11_ver: v2.7.0
python_ver: 3.8
simd: sse4.2
setenvs: export CMAKE_BUILD_TYPE=Debug
LLVM_VERSION=11.0.0 LLVM_DISTRO_NAME=ubuntu-20.04
PUGIXML_VERSION=v1.9
CTEST_TEST_TIMEOUT=240
- desc: gcc10/C++17 llvm11 oiio-2.5 avx2
nametag: linux-2021ish-gcc10-llvm11
runner: ubuntu-20.04
cxx_compiler: g++-10
cxx_std: 17
fmt_ver: 7.0.1
openexr_ver: v3.1.11
openimageio_ver: v2.5.17.0
pybind11_ver: v2.8.1
python_ver: 3.8
simd: avx2,f16c
setenvs: export LLVM_VERSION=11.0.0 LLVM_DISTRO_NAME=ubuntu-20.04
OPENIMAGEIO_CMAKE_FLAGS="-DBUILD_FMT_VERSION=7.0.1"
PUGIXML_VERSION=v1.10
- desc: latest releases gcc11/C++17 llvm17 oiio-3.0 exr3.2 py3.12 avx2 batch-b16avx512
nametag: linux-latest-releases
runner: ubuntu-24.04
cc_compiler: gcc-13
cxx_compiler: g++-13
cxx_std: 17
fmt_ver: 11.0.2
opencolorio_ver: v2.4.0
openexr_ver: v3.3.0
openimageio_ver: release
pybind11_ver: v2.13.5
python_ver: "3.12"
simd: avx2,f16c
batched: b8_AVX2,b8_AVX512,b16_AVX512
setenvs: export LLVM_VERSION=17.0.6
LLVM_DISTRO_NAME=ubuntu-22.04
LIBTIFF_VERSION=v4.7.0
PTEX_VERSION=v2.4.3
PUGIXML_VERSION=v1.14
FREETYPE_VERSION=VER-2-13-3
- desc: bleeding edge gcc12/C++17 llvm17 oiio/ocio/exr/pybind-main py3.12 avx2 batch-b16avx512
nametag: linux-bleeding-edge
runner: ubuntu-24.04
cc_compiler: gcc-13
cxx_compiler: g++-13
cxx_std: 17
fmt_ver: master
opencolorio_ver: main
openexr_ver: main
openimageio_ver: main
pybind11_ver: master
python_ver: "3.12"
simd: avx2,f16c
batched: b8_AVX2,b8_AVX512,b16_AVX512
setenvs: export LLVM_VERSION=17.0.6
LLVM_DISTRO_NAME=ubuntu-22.04
PUGIXML_VERSION=master
- desc: clang14/C++17 llvm14 py3.8 avx2 batch-b16avx512
nametag: linux-latest-releases-clang
runner: ubuntu-20.04
cxx_compiler: clang++
cc_compiler: clang
cxx_std: 17
fmt_ver: 8.1.1
opencolorio_ver: v2.2.1
openexr_ver: v3.1.11
openimageio_ver: release
pybind11_ver: v2.9.2
python_ver: 3.8
simd: avx2,f16c
batched: b8_AVX2,b8_AVX512,b16_AVX512
setenvs: export LLVM_VERSION=14.0.0
LLVM_DISTRO_NAME=ubuntu-18.04
PUGIXML_VERSION=v1.11.4
# Test formatting. This test entry doesn't do a full build, it
# just runs clang-format on everything, and passes if nothing is
# misformatted. Upon failure, the build artifact will be the full
# source code with the formatting fixed (diffs will also appear in
# the console output).
- desc: "clang-format"
nametag: clang-format
runner: ubuntu-latest
cxx_std: 17
extra_artifacts: "src/*.*"
opencolorio_ver: v2.4.0
openexr_ver: v3.1.11
openimageio_ver: release
python_ver: "3.10"
simd: avx2,f16c
batched: b8_AVX2
skip_tests: 1
setenvs: export BUILDTARGET=clang-format
LLVM_VERSION=17.0.6
LLVM_DISTRO_NAME=ubuntu-22.04
OPENIMAGEIO_CMAKE_FLAGS=-DUSE_PYTHON=0
USE_PYTHON=0
QT_VERSION=0
macos:
name: "${{matrix.desc}}"
uses: ./.github/workflows/build-steps.yml
with:
nametag: ${{ matrix.nametag || 'unnamed!' }}
runner: ${{ matrix.runner }}
container: ${{ matrix.container }}
cc_compiler: ${{ matrix.cc_compiler || 'clang' }}
cxx_compiler: ${{ matrix.cxx_compiler || 'clang++' }}
cxx_std: ${{ matrix.cxx_std || '17' }}
batched: ${{ matrix.batched }}
build_type: ${{ matrix.build_type || 'Release' }}
depcmds: ${{ matrix.depcmds }}
extra_artifacts: ${{ matrix.extra_artifacts }}
fmt_ver: ${{ matrix.fmt_ver }}
opencolorio_ver: ${{ matrix.opencolorio_ver }}
openexr_ver: ${{ matrix.openexr_ver }}
openimageio_ver: ${{ matrix.openimageio_ver }}
pybind11_ver: ${{ matrix.pybind11_ver }}
python_ver: ${{ matrix.python_ver }}
setenvs: ${{ matrix.setenvs }}
simd: ${{ matrix.simd }}
skip_build: ${{ matrix.skip_build }}
skip_tests: ${{ matrix.skip_tests }}
abi_check: ${{ matrix.abi_check }}
build_docs: ${{ matrix.build_docs }}
generator: ${{ matrix.generator }}
ctest_args: ${{ matrix.ctest_args }}
ctest_test_timeout: ${{ matrix.ctest_test_timeout || '800' }}
coverage: ${{ matrix.coverage || 0 }}
sonar: ${{ matrix.sonar || 0 }}
strategy:
fail-fast: false
matrix:
include:
- desc: MacOS-13-Intel llvm17
runner: macos-13
nametag: macos13-p311
cc_compiler: /usr/local/opt/llvm/bin/clang
cxx_compiler: /usr/local/opt/llvm/bin/clang++
cxx_std: 17
openimageio_ver: release
python_ver: "3.11"
aclang: 14
setenvs: export DO_BREW_UPDATE=1 CTEST_TEST_TIMEOUT=120
- desc: MacOS-14-ARM llvm17
runner: macos-14
nametag: macos14-arm-p311
cc_compiler: clang
cxx_compiler: clang++
cxx_std: 17
openimageio_ver: main
python_ver: "3.11"
aclang: 15
setenvs: export DO_BREW_UPDATE=1
- desc: MacOS-15-ARM aclang16/C++20/py3.13
runner: macos-15
nametag: macos15-arm-py313
cc_compiler: clang
cxx_compiler: clang++
cxx_std: 20
python_ver: "3.13"
windows:
name: "${{matrix.desc}}"
uses: ./.github/workflows/build-steps.yml
with:
nametag: ${{ matrix.nametag || 'unnamed!' }}
runner: ${{ matrix.runner }}
container: ${{ matrix.container }}
cc_compiler: ${{ matrix.cc_compiler }}
cxx_compiler: ${{ matrix.cxx_compiler' }}

Check failure on line 558 in .github/workflows/ci.yml

View workflow run for this annotation

GitHub Actions / CI

Invalid workflow file

The workflow is not valid. .github/workflows/ci.yml (Line: 558, Col: 21): The expression is not closed. An unescaped ${{ sequence was found, but the closing }} sequence was not found.
cxx_std: ${{ matrix.cxx_std || '17' }}
batched: ${{ matrix.batched }}
build_type: ${{ matrix.build_type || 'Release' }}
depcmds: ${{ matrix.depcmds }}
extra_artifacts: ${{ matrix.extra_artifacts }}
fmt_ver: ${{ matrix.fmt_ver }}
opencolorio_ver: ${{ matrix.opencolorio_ver }}
openexr_ver: ${{ matrix.openexr_ver }}
openimageio_ver: ${{ matrix.openimageio_ver }}
pybind11_ver: ${{ matrix.pybind11_ver }}
python_ver: ${{ matrix.python_ver }}
setenvs: ${{ matrix.setenvs }}
simd: ${{ matrix.simd }}
skip_build: ${{ matrix.skip_build }}
skip_tests: ${{ matrix.skip_tests }}
abi_check: ${{ matrix.abi_check }}
build_docs: ${{ matrix.build_docs }}
generator: ${{ matrix.generator }}
ctest_args: ${{ matrix.ctest_args }}
ctest_test_timeout: ${{ matrix.ctest_test_timeout || '800' }}
coverage: ${{ matrix.coverage || 0 }}
sonar: ${{ matrix.sonar || 0 }}
strategy:
fail-fast: false
matrix:
include:
- desc: Windows-2019 VS2019
runner: windows-2019
vsver: 2019
generator: "Visual Studio 16 2019"
python_ver: 3.7
- desc: Windows-2022 VS2022
runner: windows-2022
vsver: 2022
generator: "Visual Studio 17 2022"
python_ver: "3.9"