@@ -31,7 +31,7 @@ permissions: read-all
3131
3232jobs :
3333
34- aswf :
34+ aswf-old :
3535 name : " VFX${{matrix.vfxyear}} ${{matrix.desc}}"
3636 strategy :
3737 fail-fast : false
4242 runner : ubuntu-latest
4343 container : aswf/ci-osl:2021
4444 vfxyear : 2021
45+ old_node : 1
4546 cxx_std : 17
4647 openexr_ver : v3.1.13
4748 python_ver : 3.7
5556 runner : ubuntu-latest
5657 container : aswf/ci-osl:2021-clang10
5758 vfxyear : 2021
59+ old_node : 1
5860 cc_compiler : clang
5961 cxx_compiler : clang++
6062 cxx_std : 17
7072 runner : ubuntu-latest
7173 container : aswf/ci-osl:2022-clang11
7274 vfxyear : 2022
75+ old_node : 1
7376 cxx_std : 17
7477 python_ver : 3.9
7578 simd : " avx2,f16c"
8184 runner : ubuntu-latest
8285 container : aswf/ci-osl:2022-clang13
8386 vfxyear : 2022
87+ old_node : 1
8488 cc_compiler : clang
8589 cxx_compiler : clang++
8690 cxx_std : 17
9498 runner : ubuntu-latest
9599 container : aswf/ci-osl:2022
96100 vfxyear : 2022
101+ old_node : 1
97102 cxx_std : 17
98103 opencolorio_ver : v2.2.1
99104 python_ver : 3.9
@@ -112,6 +117,7 @@ jobs:
112117 runner : ubuntu-latest
113118 container : aswf/ci-osl:2022
114119 vfxyear : 2022
120+ old_node : 1
115121 cc_compiler : icx
116122 cxx_compiler : icpx
117123 cxx_std : 17
@@ -127,47 +133,13 @@ jobs:
127133 # to use g++.
128134 # Building libuhdr with icx results in test failures
129135 # so we force using gcc/g++.
130- - desc : sanitizers
131- nametag : sanitizer
132- runner : ubuntu-latest
133- container : aswf/ci-osl:2024-clang17
134- vfxyear : 2024
135- cc_compiler : clang
136- cxx_compiler : clang++
137- cxx_std : 17
138- opencolorio_ver : v2.3.2
139- python_ver : " 3.11"
140- setenvs : export SANITIZE=address,undefined
141- OIIO_CMAKE_FLAGS="-DSANITIZE=address,undefined -DUSE_PYTHON=0"
142- CMAKE_BUILD_TYPE=Debug
143- CTEST_TEST_TIMEOUT=1200
144- CTEST_EXCLUSIONS="broken|png-damaged"
145- - desc : gcc11/C++17 py3.10 exr3.1 ocio2.2
146- nametag : linux-vfx2023
147- runner : ubuntu-latest
148- container : aswftesting/ci-osl:2023-clang15
149- vfxyear : 2023
150- cxx_std : 17
151- python_ver : " 3.10"
152- simd : " avx2,f16c"
153- fmt_ver : 10.1.1
154- pybind11_ver : v2.10.0
155- - desc : gcc11/C++17 py3.11 exr3.2 ocio2.3
156- nametag : linux-vfx2024
157- runner : ubuntu-latest
158- container : aswftesting/ci-osl:2024-clang17
159- vfxyear : 2024
160- cxx_std : 17
161- python_ver : " 3.11"
162- simd : " avx2,f16c"
163- fmt_ver : 10.1.1
164- pybind11_ver : v2.12.0
165136 - desc : oldest gcc9.3/C++17 py3.7 exr-3.1
166137 # Oldest versions of the dependencies that we support.
167138 nametag : linux-oldest
168139 runner : ubuntu-latest
169140 container : aswf/ci-osl:2021
170141 vfxyear : 2021
142+ old_node : 1
171143 cxx_std : 17
172144 fmt_ver : 7.0.1
173145 opencolorio_ver : v2.2.1
@@ -186,6 +158,7 @@ jobs:
186158 runner : ubuntu-latest
187159 container : aswf/ci-osl:2021
188160 vfxyear : 2021
161+ old_node : 1
189162 cxx_std : 17
190163 fmt_ver : 7.0.1
191164 opencolorio_ver : v2.2.1
@@ -202,6 +175,148 @@ jobs:
202175 FREETYPE_VERSION=VER-2-10-0
203176 depcmds : sudo rm -rf /usr/local/include/OpenEXR
204177
178+ runs-on : ${{ matrix.runner }}
179+ container :
180+ image : ${{ matrix.container }}
181+ volumes :
182+ - /node20217:/node20217:rw,rshared
183+ - /node20217:/__e/node20:ro,rshared
184+ env :
185+ CXX : ${{matrix.cxx_compiler}}
186+ CC : ${{matrix.cc_compiler}}
187+ CMAKE_CXX_STANDARD : ${{matrix.cxx_std}}
188+ USE_SIMD : ${{matrix.simd}}
189+ FMT_VERSION : ${{matrix.fmt_ver}}
190+ OPENCOLORIO_VERSION : ${{matrix.opencolorio_ver}}
191+ OPENEXR_VERSION : ${{matrix.openexr_ver}}
192+ PYBIND11_VERSION : ${{matrix.pybind11_ver}}
193+ PYTHON_VERSION : ${{matrix.python_ver}}
194+ ABI_CHECK : ${{matrix.abi_check}}
195+ steps :
196+ # Install nodejs 20 with glibc 2.17, to work around the face that the
197+ # GHA runners are insisting on a node version that is too new for the
198+ # glibc in the ASWF containers prior to 2023.
199+ - name : install nodejs20glibc2.17
200+ if : matrix.old_node == '1'
201+ run : |
202+ 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 -
203+ # We would like to use harden-runner, but it flags too many false
204+ # positives, every time we download a dependency. We should use it only
205+ # on CI runs where we are producing artifacts that users might rely on.
206+ # - name: Harden Runner
207+ # uses: step-security/harden-runner@248ae51c2e8cc9622ecf50685c8bf7150c6e8813 # v1.4.3
208+ # with:
209+ # egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
210+ - uses : actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
211+ # Note: can't upgrade to actions/checkout 4.0 because it needs newer
212+ # glibc than these containers have.
213+ - name : Prepare ccache timestamp
214+ id : ccache_cache_keys
215+ run : echo "date=`date -u +'%Y-%m-%dT%H:%M:%SZ'`" >> $GITHUB_OUTPUT
216+ - name : ccache
217+ id : ccache
218+ uses : actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3.3.3
219+ # Note: can't upgrade to actions/cache 4.0 because it needs newer
220+ # glibc than these containers have.
221+ with :
222+ path : /tmp/ccache
223+ key : ${{github.job}}-${{matrix.nametag}}-${{steps.ccache_cache_keys.outputs.date}}
224+ restore-keys : ${{github.job}}-
225+ - name : Build setup
226+ run : |
227+ ${{matrix.setenvs}}
228+ src/build-scripts/ci-startup.bash
229+ - name : Dependencies
230+ run : |
231+ ${{matrix.depcmds}}
232+ src/build-scripts/gh-installdeps.bash
233+ - name : Build
234+ if : matrix.skip_build != '1'
235+ run : src/build-scripts/ci-build.bash
236+ - name : Testsuite
237+ if : matrix.skip_tests != '1'
238+ run : src/build-scripts/ci-test.bash
239+ - name : Check out ABI standard
240+ if : matrix.abi_check != ''
241+ uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
242+ with :
243+ ref : ${{matrix.abi_check}}
244+ path : abi_standard
245+ - name : Build ABI standard
246+ if : matrix.abi_check != ''
247+ run : |
248+ mkdir -p abi_standard/build
249+ pushd abi_standard
250+ src/build-scripts/ci-build.bash
251+ popd
252+ - name : Check ABI
253+ if : matrix.abi_check != ''
254+ run : |
255+ src/build-scripts/ci-abicheck.bash ./build abi_standard/build libOpenImageIO libOpenImageIO_Util
256+ - name : Build Docs
257+ if : matrix.build_docs == '1'
258+ run : |
259+ cd src/doc
260+ time make doxygen
261+ time make sphinx
262+ - uses : actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
263+ # Note: versions of upload-artifact >= 4.0 can't run on the ASWF
264+ # containers because they need a newer glibc than they have.
265+ if : ${{ failure() || matrix.build_docs == '1'}}
266+ with :
267+ name : oiio-${{github.job}}-${{matrix.nametag}}
268+ path : |
269+ build/cmake-save
270+ build/compat_reports
271+ build/sphinx
272+ build/testsuite/*/*.*
273+ !build/testsuite/oiio-images
274+ !build/testsuite/openexr-images
275+ !build/testsuite/fits-images
276+ !build/testsuite/j2kp4files_v1_5
277+
278+
279+ aswf :
280+ name : " VFX${{matrix.vfxyear}} ${{matrix.desc}}"
281+ strategy :
282+ fail-fast : false
283+ matrix :
284+ include :
285+ - desc : gcc11/C++17 py3.10 exr3.1 ocio2.2
286+ nametag : linux-vfx2023
287+ runner : ubuntu-latest
288+ container : aswftesting/ci-osl:2023-clang15
289+ vfxyear : 2023
290+ cxx_std : 17
291+ python_ver : " 3.10"
292+ simd : " avx2,f16c"
293+ fmt_ver : 10.1.1
294+ pybind11_ver : v2.10.0
295+ - desc : gcc11/C++17 py3.11 exr3.2 ocio2.3
296+ nametag : linux-vfx2024
297+ runner : ubuntu-latest
298+ container : aswftesting/ci-osl:2024-clang17
299+ vfxyear : 2024
300+ cxx_std : 17
301+ python_ver : " 3.11"
302+ simd : " avx2,f16c"
303+ fmt_ver : 10.1.1
304+ pybind11_ver : v2.12.0
305+ - desc : sanitizers
306+ nametag : sanitizer
307+ runner : ubuntu-latest
308+ container : aswf/ci-osl:2024-clang17
309+ vfxyear : 2024
310+ cc_compiler : clang
311+ cxx_compiler : clang++
312+ cxx_std : 17
313+ opencolorio_ver : v2.3.2
314+ python_ver : " 3.11"
315+ setenvs : export SANITIZE=address,undefined
316+ OIIO_CMAKE_FLAGS="-DSANITIZE=address,undefined -DUSE_PYTHON=0"
317+ CMAKE_BUILD_TYPE=Debug
318+ CTEST_TEST_TIMEOUT=1200
319+ CTEST_EXCLUSIONS="broken|png-damaged"
205320 # Test ABI stability. `abi_check` is the version or commit that we
206321 # believe is the current standard against which we don't want to
207322 # break the ABI. Basically, we will build that version as well as
@@ -237,8 +352,6 @@ jobs:
237352 PYBIND11_VERSION : ${{matrix.pybind11_ver}}
238353 PYTHON_VERSION : ${{matrix.python_ver}}
239354 ABI_CHECK : ${{matrix.abi_check}}
240- ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION : node16
241- ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION : true
242355 steps :
243356 # We would like to use harden-runner, but it flags too many false
244357 # positives, every time we download a dependency. We should use it only
0 commit comments