Rs fmt specification #2727
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
# 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 | |
paths-ignore: | |
- '**.md' | |
- '**.rst' | |
- '**.tex' | |
pull_request: | |
paths-ignore: | |
- '**.md' | |
- '**.rst' | |
- '**.tex' | |
schedule: | |
# Full nightly build, for the main project repo (not for forks) | |
- cron: "0 6 * * *" | |
if: github.repository == 'AcademySoftwareFoundation/OpenShadingLanguage' | |
permissions: read-all | |
jobs: | |
aswf: | |
name: "VFX${{matrix.vfxyear}} ${{matrix.desc}}" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- desc: gcc6/C++14 llvm9 py2.7 boost1.66 exr2.3 oiio2.3 sse2 | |
nametag: linux-vfx2019 | |
os: ubuntu-latest | |
container: aswftesting/ci-osl:2019-clang9 | |
vfxyear: 2019 | |
cxx_std: 14 | |
openimageio_ver: v2.3.17.0 | |
python_ver: 2.7 | |
pybind11_ver: v2.4.2 | |
- desc: clang9/C++14 llvm9 oiio-release boost1.66 avx2 exr2.3 py2.7 | |
nametag: linux-clang9-llvm9 | |
os: ubuntu-20.04 | |
container: aswftesting/ci-osl:2019-clang9 | |
vfxyear: 2019 | |
cc_compiler: clang | |
cxx_compiler: clang++ | |
cxx_std: 14 | |
openimageio_ver: release | |
python_ver: 2.7 | |
# pybind11_ver: v2.9.0 | |
simd: avx | |
- desc: GPU Cuda10 gcc6/C++14 llvm10 py2.7 boost-1.70 exr-2.3 OIIO-master avx2 | |
nametag: linux-optix7-2019 | |
os: ubuntu-latest | |
container: aswftesting/ci-osl:2019-clang10 | |
vfxyear: 2019 | |
cxx_std: 14 | |
openimageio_ver: master | |
python_ver: 2.7 | |
# pybind11_ver: v2.9.0 | |
simd: avx2,f16c | |
skip_tests: 1 | |
setenvs: export OSL_CMAKE_FLAGS="-DUSE_OPTIX=1" OPTIX_VERSION=7.0 | |
OPENIMAGEIO_CMAKE_FLAGS=-DBUILD_FMT_VERSION=8.1.1 | |
- desc: gcc6/C++14 llvm10 py3.7 boost1.70 exr2.4 oiio2.2 sse4 | |
nametag: linux-vfx2020 | |
os: ubuntu-latest | |
container: aswftesting/ci-osl:2020 | |
vfxyear: 2020 | |
cxx_std: 14 | |
openimageio_ver: v2.3.17.0 | |
python_ver: 3.7 | |
pybind11_ver: v2.5.0 | |
simd: sse4.2 | |
setenvs: export CONAN_LLVM_VERSION=10.0.1 | |
- desc: gcc9/C++17 llvm11 py3.7 boost1.73 exr2.5 oiio2.3 avx2 batch-b8avx2 | |
nametag: linux-vfx2021 | |
os: ubuntu-latest | |
container: aswftesting/ci-osl:2021-clang11 | |
vfxyear: 2021 | |
cxx_std: 17 | |
openimageio_ver: v2.3.21.0 | |
python_ver: 3.7 | |
pybind11_ver: v2.7.0 | |
simd: avx2,f16c | |
batched: b8_AVX2_noFMA | |
- desc: gcc9/C++17 llvm13 py3.9 boost1.76 exr3.1 oiio-rel avx2 | |
nametag: linux-vfx2022 | |
os: ubuntu-latest | |
container: aswftesting/ci-osl:2022-clang13 | |
vfxyear: 2022 | |
cxx_std: 17 | |
openimageio_ver: release | |
python_ver: 3.9 | |
pybind11_ver: v2.9.0 | |
simd: avx2,f16c | |
batched: b8_AVX2 | |
- desc: clang12/C++17 llvm12 oiio-master boost1.73 exr3.1 py3.9 avx2 batch-avx512 | |
nametag: linux-clang12-llvm12-batch | |
os: ubuntu-latest | |
container: aswftesting/ci-osl:2022-clang12 | |
vfxyear: 2022 | |
cxx_std: 17 | |
openimageio_ver: master | |
python_ver: 3.9 | |
pybind11_ver: v2.6.2 | |
simd: avx2,f16c | |
batched: b8_AVX2,b8_AVX512,b16_AVX512 | |
setenvs: USE_OPENVDB=0 | |
- desc: icc/C++17 llvm14 py3.9 boost1.76 exr3.1 oiio-master avx2 | |
nametag: linux-icc | |
os: ubuntu-latest | |
container: aswftesting/ci-osl:2022-clang14 | |
vfxyear: 2022 | |
cc_compiler: icc | |
cxx_compiler: icpc | |
cxx_std: 17 | |
fmt_ver: 7.1.3 | |
openimageio_ver: master | |
python_ver: 3.9 | |
pybind11_ver: v2.9.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 | |
- desc: icx/C++17 llvm14 py3.9 boost1.76 exr3.1 oiio2.3 avx2 | |
nametag: linux-icx | |
os: ubuntu-latest | |
container: aswftesting/ci-osl:2022-clang14 | |
vfxyear: 2022 | |
cc_compiler: icx | |
cxx_compiler: icpx | |
cxx_std: 17 | |
fmt_ver: 7.1.3 | |
openimageio_ver: master | |
python_ver: 3.9 | |
pybind11_ver: v2.9.0 | |
simd: avx2,f16c | |
batched: b8_AVX2_noFMA | |
setenvs: export OSL_CMAKE_FLAGS="-DSTOP_ON_WARNING=OFF" USE_OPENVDB=0 | |
- desc: gcc11/C++17 llvm15 py3.10 boost1.80 exr3.1 oiio-rel avx2 | |
nametag: linux-vfx2023 | |
os: ubuntu-latest | |
container: aswftesting/ci-osl:2023-clang15 | |
vfxyear: 2023 | |
cxx_std: 17 | |
openimageio_ver: release | |
python_ver: "3.10" | |
pybind11_ver: v2.9.0 | |
simd: avx2,f16c | |
batched: b8_AVX2 | |
- desc: oldest everything gcc6/C++14 llvm9 py2.7 boost1.66 oiio2.3 no-simd exr2.3 | |
nametag: linux-oldest | |
os: ubuntu-latest | |
container: aswftesting/ci-osl:2019-clang9 | |
vfxyear: 2019 | |
cxx_std: 14 | |
openimageio_ver: v2.3.17.0 | |
python_ver: 2.7 | |
pybind11_ver: v2.6.2 | |
simd: 0 | |
setenvs: export PUGIXML_VERSION=v1.8 | |
# Address and leak sanitizers | |
- desc: sanitizers | |
nametag: sanitizer | |
os: ubuntu-latest | |
container: aswftesting/ci-osl:2022-clang13 | |
vfxyear: 2022 | |
cc_compiler: clang | |
cxx_compiler: clang++ | |
cxx_std: 17 | |
openimageio_ver: master | |
python_ver: 3.9 | |
pybind11_ver: v2.9.0 | |
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 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 | |
os: ubuntu-latest | |
container: aswftesting/ci-osl:2022-clang14 | |
vfxyear: 2022 | |
cxx_std: 17 | |
openimageio_ver: release | |
python_ver: 3.9 | |
simd: avx2,f16c | |
batched: b8_AVX2 | |
skip_tests: 1 | |
setenvs: export BUILDTARGET=clang-format | |
OPENIMAGEIO_CMAKE_FLAGS=-DUSE_PYTHON=0 | |
runs-on: ${{matrix.os}} | |
container: | |
image: ${{ matrix.container }} | |
env: | |
CXX: ${{matrix.cxx_compiler}} | |
CC: ${{matrix.cc_compiler}} | |
CMAKE_CXX_STANDARD: ${{matrix.cxx_std}} | |
FMT_VERSION: ${{matrix.fmt_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}} | |
steps: | |
# 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 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@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 | |
if: failure() | |
with: | |
name: osl-${{github.job}}-${{matrix.nametag}} | |
path: | | |
build/*.cmake | |
build/CMake* | |
build/testsuite/*/*.* | |
ubuntu: | |
name: "Ubuntu ${{matrix.desc}}" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- desc: Debug gcc7/C++14 llvm9 py2.7 oiio2.3 exr2.4 sse4 boost1.65 exr2.4 | |
nametag: linux-debug-gcc7-llvm9 | |
os: ubuntu-20.04 | |
cxx_compiler: g++-7 | |
cxx_std: 14 | |
openexr_ver: v2.4.3 | |
openimageio_ver: v2.3.21.0 | |
pybind11_ver: v2.6.2 | |
python_ver: 2.7 | |
simd: sse4.2 | |
setenvs: export CMAKE_BUILD_TYPE=Debug | |
LLVM_VERSION=9.0.0 | |
PUGIXML_VERSION=v1.9 | |
CTEST_TEST_TIMEOUT=240 | |
- desc: gcc10/C++17 llvm10 oiio-release boost1.65 exr2.5 avx2 | |
nametag: linux-2021ish-gcc10-llvm10 | |
os: ubuntu-20.04 | |
cxx_compiler: g++-10 | |
cxx_std: 17 | |
fmt_ver: 7.0.1 | |
openexr_ver: v2.5.6 | |
openimageio_ver: release | |
pybind11_ver: v2.8.1 | |
# python_ver: 2.7 FIXME | |
simd: avx2,f16c | |
setenvs: export LLVM_VERSION=10.0.0 | |
OPENIMAGEIO_CMAKE_FLAGS="-DBUILD_FMT_VERSION=7.0.1" | |
PUGIXML_VERSION=v1.10 | |
- desc: latest releases gcc11/C++17 llvm13 boost1.71 exr3.1 py3.9 avx2 batch-b16avx512 | |
nametag: linux-latest-releases | |
os: ubuntu-22.04 | |
cxx_compiler: g++-11 | |
cxx_std: 17 | |
fmt_ver: 9.1.0 | |
openexr_ver: v3.1.7 | |
openimageio_ver: master | |
pybind11_ver: v2.10.0 | |
python_ver: "3.10" | |
simd: avx2,f16c | |
batched: b8_AVX2,b8_AVX512,b16_AVX512 | |
setenvs: export LLVM_VERSION=13.0.0 | |
LLVM_DISTRO_NAME=ubuntu-20.04 | |
OPENCOLORIO_VERSION=v2.2.0 | |
PUGIXML_VERSION=v1.13 | |
- desc: bleeding edge gcc12/C++17 llvm14 oiio/ocio/exr/pybind-master boost1.71 py3.10 avx2 batch-b16avx512 | |
nametag: linux-bleeding-edge | |
os: ubuntu-22.04 | |
cxx_compiler: g++-12 | |
cxx_std: 17 | |
fmt_ver: master | |
openexr_ver: main | |
openimageio_ver: master | |
pybind11_ver: master | |
python_ver: "3.10" | |
simd: avx2,f16c | |
batched: b8_AVX2,b8_AVX512,b16_AVX512 | |
setenvs: export LLVM_VERSION=14.0.0 | |
LLVM_DISTRO_NAME=ubuntu-18.04 | |
OPENCOLORIO_VERSION=main | |
PUGIXML_VERSION=master | |
- desc: clang14/C++17 llvm14 boost1.71 exr3.1 py3.8 avx2 batch-b16avx512 | |
nametag: linux-latest-releases-clang | |
os: ubuntu-20.04 | |
cxx_compiler: clang++ | |
cc_compiler: clang | |
cxx_std: 17 | |
fmt_ver: 8.1.1 | |
openexr_ver: v3.1.7 | |
openimageio_ver: master | |
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 | |
OPENCOLORIO_VERSION=v2.1.2 | |
PUGIXML_VERSION=v1.11.4 | |
runs-on: ${{matrix.os}} | |
env: | |
CXX: ${{matrix.cxx_compiler}} | |
CC: ${{matrix.cc_compiler}} | |
CMAKE_CXX_STANDARD: ${{matrix.cxx_std}} | |
FMT_VERSION: ${{matrix.fmt_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}} | |
steps: | |
# 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: 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@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 | |
if: failure() | |
with: | |
name: osl-${{github.job}}-${{matrix.nametag}} | |
path: | | |
build/*.cmake | |
build/CMake* | |
build/testsuite/*/*.* | |
macos: | |
name: "${{matrix.os}} appleclang${{matrix.aclang}}/C++${{matrix.cxx_std}} py${{matrix.python_ver}} ${{matrix.desc}}" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- desc: MacOS-11 | |
os: macos-11 | |
nametag: macos11-py39 | |
cc_compiler: /usr/local/opt/llvm@14/bin/clang | |
cxx_compiler: /usr/local/opt/llvm@14/bin/clang++ | |
cxx_std: 17 | |
python_ver: "3.10" | |
aclang: 13 | |
setenvs: export LLVMBREWVER="@14" DO_BREW_UPDATE=1 | |
OPENIMAGEIO_VERSION=release | |
QT_BREW_VERSION="@5" | |
- desc: MacOS-12 | |
os: macos-12 | |
nametag: macos12-p310 | |
cc_compiler: /usr/local/opt/llvm@15/bin/clang | |
cxx_compiler: /usr/local/opt/llvm@15/bin/clang++ | |
cxx_std: 17 | |
python_ver: "3.10" | |
aclang: 13 | |
setenvs: export LLVMBREWVER="@15" DO_BREW_UPDATE=1 | |
OPENIMAGEIO_VERSION=master | |
- desc: MacOS-13 | |
os: macos-13 | |
nametag: macos13-p311 | |
cc_compiler: /usr/local/opt/llvm@15/bin/clang | |
cxx_compiler: /usr/local/opt/llvm@15/bin/clang++ | |
cxx_std: 17 | |
python_ver: "3.11" | |
aclang: 14 | |
setenvs: export LLVMBREWVER="@15" DO_BREW_UPDATE=1 | |
OPENIMAGEIO_VERSION=master | |
runs-on: ${{matrix.os}} | |
env: | |
CXX: ${{matrix.cxx_compiler}} | |
CC: ${{matrix.cc_compiler}} | |
CMAKE_CXX_STANDARD: ${{matrix.cxx_std}} | |
PYTHON_VERSION: ${{matrix.python_ver}} | |
OPENIMAGEIO_VERSION: ${{matrix.openimageio_ver}} | |
steps: | |
- 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: /Users/runner/.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: Dependencies | |
run: | | |
source src/build-scripts/install_homebrew_deps.bash | |
if [[ "$OPENIMAGEIO_VERSION" != "" ]] ; then \ | |
OPENIMAGEIO_CMAKE_FLAGS="-DOIIO_BUILD_TESTS=0 -DUSE_OPENGL=0" ; \ | |
source src/build-scripts/build_openimageio.bash ; \ | |
else \ | |
brew install --display-times -q openimageio ; \ | |
PYTHONPATH=$PYTHONPATH:/usr/local/python${PYTHON_VERSION}/site-packages ; \ | |
fi | |
src/build-scripts/save-env.bash | |
- name: Build | |
run: | | |
src/build-scripts/ci-build.bash | |
- name: Testsuite | |
run: src/build-scripts/ci-test.bash | |
- uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 | |
if: failure() | |
with: | |
name: osl-${{github.job}}-${{matrix.nametag}} | |
path: | | |
build/*.cmake | |
build/CMake* | |
build/testsuite/*/*.* |