@@ -239,9 +239,9 @@ jobs:
239
239
240
240
241
241
#
242
- # Linux Tests
242
+ # Linux Tests using ASWF-docker containers
243
243
#
244
- linux :
244
+ linux-aswf :
245
245
if : ${{ ! contains(github.ref, 'windows-only') && ! contains(github.ref, 'macos-only') }}
246
246
name : " ${{matrix.desc}}"
247
247
uses : ./.github/workflows/build-steps.yml
@@ -273,6 +273,10 @@ jobs:
273
273
ctest_test_timeout : ${{ matrix.ctest_test_timeout }}
274
274
coverage : ${{ matrix.coverage || 0 }}
275
275
sonar : ${{ matrix.sonar || 0 }}
276
+ # Override required_deps to be 'all' and explicitly list as optional
277
+ # only the ones we are intentionally not testing for those jobs.
278
+ required_deps : ${{ matrix.required_deps || 'all' }}
279
+ optional_deps : ${{ matrix.optional_deps || 'DCMTK;JXL;Libheif;Nuke;OpenCV;openjph;OpenVDB;Qt5;R3DSDK;'}}${{matrix.optional_deps_append}}
276
280
strategy :
277
281
fail-fast : false
278
282
matrix :
@@ -287,6 +291,7 @@ jobs:
287
291
fmt_ver : 10.1.1
288
292
pybind11_ver : v2.10.0
289
293
setenvs : export PUGIXML_VERSION=v1.13
294
+ optional_deps_append : ' LibRaw;Ptex;Qt6'
290
295
- desc : VFX2023 icc/C++17 py3.10 exr3.1 ocio2.3 qt5.15
291
296
nametag : linux-vfx2023.icc
292
297
runner : ubuntu-latest
@@ -303,6 +308,7 @@ jobs:
303
308
DISABLE_libuhdr=1
304
309
# For icc, use fp-model precise to eliminate needless LSB errors
305
310
# that make test results differ from other platforms.
311
+ optional_deps_append : " LibRaw;Ptex;Qt6"
306
312
- desc : VFX2023 icx/C++17 py3.10 exr3.1 ocio2.3 qt5.15
307
313
nametag : linux-vfx2023.icx
308
314
runner : ubuntu-latest
@@ -319,6 +325,7 @@ jobs:
319
325
UHDR_CMAKE_CXX_COMPILER=g++
320
326
# Building libuhdr with icx results in test failures
321
327
# so we force using gcc/g++.
328
+ optional_deps_append : " LibRaw;Ptex;Qt6"
322
329
- desc : VFX2024 gcc11/C++17 py3.11 exr3.2 ocio2.3
323
330
nametag : linux-vfx2024
324
331
runner : ubuntu-latest
@@ -330,6 +337,7 @@ jobs:
330
337
pybind11_ver : v2.12.0
331
338
benchmark : 1
332
339
setenvs : export PUGIXML_VERSION=v1.14
340
+ optional_deps_append : " LibRaw"
333
341
- desc : VFX2024 clang/C++17 py3.11 exr3.2 ocio2.3
334
342
nametag : linux-vfx2024.clang
335
343
runner : ubuntu-latest
@@ -343,6 +351,7 @@ jobs:
343
351
pybind11_ver : v2.12.0
344
352
benchmark : 1
345
353
setenvs : export PUGIXML_VERSION=v1.14
354
+ optional_deps_append : " LibRaw"
346
355
- desc : VFX2025 gcc11/C++17 py3.11 exr3.3 ocio2.4
347
356
nametag : linux-vfx2025
348
357
runner : ubuntu-latest
@@ -354,6 +363,7 @@ jobs:
354
363
pybind11_ver : v2.13.6
355
364
benchmark : 1
356
365
setenvs : export PUGIXML_VERSION=v1.15
366
+ optional_deps_append : " openjph;Qt6"
357
367
- desc : VFX2026 gcc14/C++20 py3.13 exr3.4 ocio2.4
358
368
nametag : linux-vfx2026
359
369
runner : ubuntu-latest
@@ -364,6 +374,7 @@ jobs:
364
374
pybind11_ver : v3.0.0
365
375
benchmark : 1
366
376
# setenvs: export
377
+ optional_deps_append : " Qt5;Qt6"
367
378
- desc : Sanitizers
368
379
nametag : sanitizer
369
380
runner : ubuntu-latest
@@ -378,6 +389,7 @@ jobs:
378
389
OIIO_CMAKE_FLAGS="-DSANITIZE=address,undefined -DOIIO_HARDENING=3 -DUSE_PYTHON=0"
379
390
CTEST_EXCLUSIONS="broken|png-damaged"
380
391
OpenImageIO_BUILD_LOCAL_DEPS=PNG
392
+ optional_deps_append : " LibRaw"
381
393
382
394
# Test ABI stability. `abi_check` is the version or commit that we
383
395
# believe is the current standard against which we don't want to
@@ -397,7 +409,52 @@ jobs:
397
409
abi_check : 9bfcce725a3806a3f70c7e838d9d98d6d95c917a
398
410
setenvs : export OIIO_CMAKE_FLAGS="-DOIIO_BUILD_TOOLS=0 -DOIIO_BUILD_TESTS=0 -DUSE_PYTHON=0"
399
411
USE_OPENCV=0 USE_FFMPEG=0 USE_PYTHON=0 USE_FREETYPE=0
412
+ optional_deps_append : " openjph;Qt6"
400
413
414
+
415
+ #
416
+ # Linux Tests using GHA Ubuntu runners directly
417
+ #
418
+ linux-ubuntu :
419
+ if : ${{ ! contains(github.ref, 'windows-only') && ! contains(github.ref, 'macos-only') }}
420
+ name : " ${{matrix.desc}}"
421
+ uses : ./.github/workflows/build-steps.yml
422
+ with :
423
+ nametag : ${{ matrix.nametag || 'unnamed!' }}
424
+ runner : ${{ matrix.runner || 'ubuntu-latest' }}
425
+ container : ${{ matrix.container }}
426
+ cc_compiler : ${{ matrix.cc_compiler }}
427
+ cxx_compiler : ${{ matrix.cxx_compiler }}
428
+ cxx_std : ${{ matrix.cxx_std || '17' }}
429
+ build_type : ${{ matrix.build_type || 'Release' }}
430
+ depcmds : ${{ matrix.depcmds }}
431
+ extra_artifacts : ${{ matrix.extra_artifacts }}
432
+ fmt_ver : ${{ matrix.fmt_ver }}
433
+ opencolorio_ver : ${{ matrix.opencolorio_ver }}
434
+ openexr_ver : ${{ matrix.openexr_ver }}
435
+ pybind11_ver : ${{ matrix.pybind11_ver }}
436
+ python_ver : ${{ matrix.python_ver }}
437
+ setenvs : ${{ matrix.setenvs }}
438
+ simd : ${{ matrix.simd }}
439
+ skip_build : ${{ matrix.skip_build }}
440
+ skip_tests : ${{ matrix.skip_tests }}
441
+ abi_check : ${{ matrix.abi_check }}
442
+ benchmark : ${{ matrix.benchmark }}
443
+ build_docs : ${{ matrix.build_docs }}
444
+ clang_format : ${{ matrix.clang_format }}
445
+ generator : ${{ matrix.generator }}
446
+ ctest_args : ${{ matrix.ctest_args }}
447
+ ctest_test_timeout : ${{ matrix.ctest_test_timeout }}
448
+ coverage : ${{ matrix.coverage || 0 }}
449
+ sonar : ${{ matrix.sonar || 0 }}
450
+ # Override required_deps to be 'all' and explicitly list as optional
451
+ # only the ones we are intentionally not testing for those jobs.
452
+ required_deps : ${{ matrix.required_deps || 'all' }}
453
+ optional_deps : ${{ matrix.optional_deps || 'CUDAToolkit;DCMTK;JXL;Nuke;OpenGL;openjph;OpenVDB;Ptex;pystring;Qt5;R3DSDK;' }}${{matrix.optional_deps_append}}
454
+ strategy :
455
+ fail-fast : false
456
+ matrix :
457
+ include :
401
458
# Test formatting. This test entry doesn't build at all, it
402
459
# just runs clang-format on everything, and passes if nothing is
403
460
# misformatted. Upon failure, the build artifact will be the full
@@ -440,6 +497,10 @@ jobs:
440
497
WEBP_VERSION=v1.6.0
441
498
FREETYPE_VERSION=VER-2-14-0
442
499
USE_OPENVDB=0
500
+ # Ensure we are testing all the deps we think we are. We would
501
+ # like this test to have minimal missing dependencies.
502
+ required_deps : all
503
+ optional_deps : ' CUDAToolkit;DCMTK;JXL;Nuke;OpenCV;OpenGL;OpenVDB;R3DSDK'
443
504
- desc : bleeding edge gcc14 C++23 py3.12 OCIO/libtiff/exr-main avx2
444
505
nametag : linux-bleeding-edge
445
506
runner : ubuntu-24.04
@@ -467,6 +528,10 @@ jobs:
467
528
FREETYPE_VERSION=master
468
529
QT_VERSION=0 INSTALL_OPENCV=0
469
530
# The installed OpenVDB has a TLS conflict with Python 3.8
531
+ # Ensure we are testing all the deps we think we are. We would
532
+ # like this test to have minimal missing dependencies.
533
+ required_deps : all
534
+ optional_deps : ' CUDAToolkit;DCMTK;JXL;Nuke;OpenCV;OpenGL;OpenVDB;R3DSDK'
470
535
- desc : all local builds gcc12 C++17 avx2 exr3.2 ocio2.3
471
536
nametag : linux-local-builds
472
537
runner : ubuntu-22.04
@@ -482,7 +547,6 @@ jobs:
482
547
PTEX_VERSION=v2.4.2
483
548
PUGIXML_VERSION=v1.14
484
549
WEBP_VERSION=v1.4.0
485
-
486
550
- desc : clang15 C++17 avx2 exr3.1 ocio2.3
487
551
nametag : linux-clang15
488
552
runner : ubuntu-22.04
@@ -597,6 +661,11 @@ jobs:
597
661
ctest_test_timeout : ${{ matrix.ctest_test_timeout || '800' }}
598
662
coverage : ${{ matrix.coverage || 0 }}
599
663
sonar : ${{ matrix.sonar || 0 }}
664
+ # We're able to use Homebrew to install ALMOST every dependency, so the
665
+ # only optional ones in our Mac CI tests are commercial things we can't
666
+ # test in GHA CI.
667
+ required_deps : ${{ matrix.required_deps || 'all' }}
668
+ optional_deps : ${{ matrix.optional_deps || 'Nuke;R3DSDK;' }}${{matrix.optional_deps_append}}
600
669
strategy :
601
670
fail-fast : false
602
671
matrix :
@@ -663,6 +732,11 @@ jobs:
663
732
ctest_test_timeout : ${{ matrix.ctest_test_timeout }}
664
733
coverage : ${{ matrix.coverage || 0 }}
665
734
sonar : ${{ matrix.sonar || 0 }}
735
+ # Windows is a PITA, so we expect very few dependencies to be present or
736
+ # built. But we would like to add more dependencies and reduce this list
737
+ # of exceptions in the future.
738
+ required_deps : ${{ matrix.required_deps || 'all' }}
739
+ optional_deps : ${{ matrix.optional_deps || 'CUDAToolkit;DCMTK;FFmpeg;GIF;JXL;Libheif;LibRaw;Nuke;OpenCV;OpenGL;OpenJPEG;openjph;OpenCV;OpenVDB;Ptex;pystring;Qt5;Qt6;TBB;R3DSDK;${{matrix.optional_deps_append}}' }}
666
740
strategy :
667
741
fail-fast : false
668
742
matrix :
0 commit comments