@@ -45,7 +45,7 @@ concurrency:
4545jobs :
4646
4747 aswf-old :
48- if : ${{ ! contains(github.ref, 'windows-only') && ! contains(github.ref, 'macos-only') }}
48+ if : ${{ ! contains(github.ref, 'windows-only') && ! contains(github.ref, 'macos-only') && ! contains(github.ref, 'gpu-only') }}
4949 name : " VFX${{matrix.vfxyear}} ${{matrix.desc}}"
5050 strategy :
5151 fail-fast : false
@@ -208,7 +208,7 @@ jobs:
208208
209209
210210 linux :
211- if : ${{ ! contains(github.ref, 'windows-only') && ! contains(github.ref, 'macos-only') }}
211+ if : ${{ ! contains(github.ref, 'windows-only') && ! contains(github.ref, 'macos-only') && ! contains(github.ref, 'gpu-only') }}
212212 name : " ${{matrix.desc}}"
213213 uses : ./.github/workflows/build-steps.yml
214214 with :
@@ -268,7 +268,7 @@ jobs:
268268 setenvs : export OSL_CMAKE_FLAGS="-DOSL_USE_OPTIX=1"
269269 OPTIX_VERSION=7.0.0
270270 OPENIMAGEIO_CMAKE_FLAGS=-DBUILD_FMT_VERSION=9.1.0
271- - desc : VP2024 gcc11/C++17 llvm17 py3.11 boost1.82 oiio-rel avx2
271+ - desc : VP2024 gcc11/C++17 llvm17 py3.11 oiio-rel avx2
272272 nametag : linux-vfx2024
273273 runner : ubuntu-latest
274274 container : aswftesting/ci-osl:2024-clang17
@@ -490,8 +490,77 @@ jobs:
490490 CLANG_FORMAT_EXE=clang-format-17
491491
492492
493+ # linux-optix:
494+ # if: ${{ ! contains(github.ref, 'windows-only') && ! contains(github.ref, 'macos-only') }}
495+ # name: "${{matrix.desc}}"
496+ # uses: ./.github/workflows/build-steps.yml
497+ # with:
498+ # nametag: ${{ matrix.nametag || 'unnamed!' }}
499+ # runner: ${{ matrix.runner || 'ubuntu-latest' }}
500+ # container: ${{ matrix.container }}
501+ # container_args: ${{ matrix.container_args }}
502+ # cc_compiler: ${{ matrix.cc_compiler || 'gcc' }}
503+ # cxx_compiler: ${{ matrix.cxx_compiler || 'g++' }}
504+ # cxx_std: ${{ matrix.cxx_std || '17' }}
505+ # build_type: ${{ matrix.build_type || 'Release' }}
506+ # depcmds: ${{ matrix.depcmds }}
507+ # extra_artifacts: ${{ matrix.extra_artifacts }}
508+ # fmt_ver: ${{ matrix.fmt_ver }}
509+ # opencolorio_ver: ${{ matrix.opencolorio_ver }}
510+ # openexr_ver: ${{ matrix.openexr_ver }}
511+ # openimageio_ver: ${{ matrix.openimageio_ver }}
512+ # pybind11_ver: ${{ matrix.pybind11_ver }}
513+ # python_ver: ${{ matrix.python_ver }}
514+ # setenvs: ${{ matrix.setenvs }}
515+ # simd: ${{ matrix.simd }}
516+ # batched: ${{ matrix.batched }}
517+ # skip_build: ${{ matrix.skip_build }}
518+ # skip_tests: ${{ matrix.skip_tests }}
519+ # abi_check: ${{ matrix.abi_check }}
520+ # build_docs: ${{ matrix.build_docs }}
521+ # generator: ${{ matrix.generator }}
522+ # ctest_args: ${{ matrix.ctest_args }}
523+ # ctest_test_timeout: ${{ matrix.ctest_test_timeout || '800' }}
524+ # coverage: ${{ matrix.coverage || 0 }}
525+ # sonar: ${{ matrix.sonar || 0 }}
526+ # llvm_action_ver: ${{ matrix.llvm_action_ver }}
527+ # clang_format: ${{ matrix.clang_format }}
528+ # strategy:
529+ # fail-fast: false
530+ # matrix:
531+ # include:
532+ # # - desc: VP2023 GPU Cuda11 gcc11/C++17 llvm15 py3.10 OIIO-main avx2
533+ # # nametag: linux-optix7-2023
534+ # # runner: ubuntu-latest
535+ # # container: aswftesting/ci-osl:2023-clang15
536+ # # cxx_std: 17
537+ # # openimageio_ver: main
538+ # # python_ver: "3.10"
539+ # # pybind11_ver: v2.10.0
540+ # # simd: avx2,f16c
541+ # # skip_tests: 1
542+ # # setenvs: export OSL_CMAKE_FLAGS="-DOSL_USE_OPTIX=1"
543+ # # OPTIX_VERSION=7.0.0
544+ # # OPENIMAGEIO_CMAKE_FLAGS=-DBUILD_FMT_VERSION=9.1.0
545+ # - desc: VP2025 gcc11/C++17 llvm19 py3.11 oiio-rel avx2
546+ # nametag: linux-optix-vfx2025
547+ # runner: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-20.04-gpu-t4-4c-16g-176h') || 'ubuntu-latest' }}
548+ # # runner: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-22.04-8c-32g-300h') || 'ubuntu-latest' }}
549+ # container: aswf/ci-osl:2025
550+ # # container_options: --gpus all,capabilities=compute,utility
551+ # cxx_std: 17
552+ # # openimageio_ver: release
553+ # python_ver: "3.11"
554+ # pybind11_ver: v2.11.1
555+ # simd: avx2,f16c
556+ # setenvs: export OSL_CMAKE_FLAGS="-DOSL_USE_OPTIX=1"
557+ # OPTIX_VERSION=9.0.0
558+ # OPENIMAGEIO_CMAKE_FLAGS=-DBUILD_FMT_VERSION=9.1.0
559+ # # setenvs: export CONAN_PACKAGES="ptex/2.4.2@aswf/vfx2024"
560+
561+
493562 macos :
494- if : ${{ ! contains(github.ref, 'windows-only') && ! contains(github.ref, 'linux-only') }}
563+ if : ${{ ! contains(github.ref, 'windows-only') && ! contains(github.ref, 'linux-only') && ! contains(github.ref, 'gpu-only') }}
495564 name : " ${{matrix.desc}}"
496565 uses : ./.github/workflows/build-steps.yml
497566 with :
@@ -560,7 +629,7 @@ jobs:
560629
561630
562631 windows :
563- if : ${{ ! contains(github.ref, 'linux-only') && ! contains(github.ref, 'macos-only') }}
632+ if : ${{ ! contains(github.ref, 'linux-only') && ! contains(github.ref, 'macos-only') && ! contains(github.ref, 'gpu-only') }}
564633 name : " ${{matrix.desc}}"
565634 uses : ./.github/workflows/build-steps.yml
566635 with :
@@ -639,3 +708,259 @@ jobs:
639708 OSL_CMAKE_FLAGS="-DUSE_LLVM_BTCODE=ON"
640709 PUGIXML_VERSION=v1.14
641710 OpenImageIO_BUILD_MISSING_DEPS="Freetype;TIFF;libdeflate;libjpeg-turbo"
711+
712+
713+
714+
715+ linux-optix :
716+ if : ${{ ! contains(github.ref, 'windows-only') && ! contains(github.ref, 'macos-only') }}
717+ name : " ${{matrix.desc}}"
718+ # name: "${{matrix.cxx_compiler}} c++${{matrix.cxx_std}} py${{matrix.python_ver}}"
719+ strategy :
720+ fail-fast : false
721+ matrix :
722+ include :
723+ # - desc: VP2023 GPU Cuda11 gcc11/C++17 llvm15 py3.10 OIIO-main avx2
724+ # nametag: linux-optix7-2023
725+ # runner: ubuntu-latest
726+ # container: aswftesting/ci-osl:2023-clang15
727+ # cxx_std: 17
728+ # openimageio_ver: main
729+ # python_ver: "3.10"
730+ # pybind11_ver: v2.10.0
731+ # simd: avx2,f16c
732+ # skip_tests: 1
733+ # setenvs: export OSL_CMAKE_FLAGS="-DOSL_USE_OPTIX=1"
734+ # OPTIX_VERSION=7.0.0
735+ # OPENIMAGEIO_CMAKE_FLAGS=-DBUILD_FMT_VERSION=9.1.0
736+
737+ # runner: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-22.04-8c-32g-300h') || 'ubuntu-latest' }}
738+
739+ # Failures so far:
740+
741+ # with 'ubuntu-20.04-gpu-t4-4c-16g-176h'
742+ # 1 container_options: --gpus all,"capabilities=compute,utility"
743+ # invalid argument "all,capabilities=compute,utility" for "--gpus" flag: invalid count (utility): value must be either "all" or an integer: invalid syntax
744+ # 2 container_options: --gpus 'all,"capabilities=compute,utility"'
745+ # invalid argument "'all,capabilities=compute,utility'" for "--gpus" flag: invalid count ('all): value must be either "all" or an integer: invalid syntax
746+ # 3 container_options: --gpus 'all,\"capabilities=compute,utility\"'
747+ # invalid argument "all,capabilities=compute,utility" for "--gpus" flag: invalid count (utility): value must be either "all" or an integer: invalid syntax
748+ # same with ubuntu-22.04-8c-32g-300h
749+
750+ # 1 container_options: --gpus "all,\"capabilities=compute,utility\""
751+ # Error response from daemon: could not select device driver "" with capabilities: [[compute utility gpu]]
752+ # 2 container_options: --gpus all,\"capabilities=compute,utility\"
753+ # Error response from daemon: could not select device driver "" with capabilities: [[compute utility gpu]]
754+ # 3 --gpus all
755+ # Error response from daemon: could not select device driver "" with capabilities: [[gpu]]
756+
757+ - desc : 0 VP2025 gcc11/C++17 llvm19 py3.11 oiio-rel avx2
758+ nametag : linux-optix-vfx2025
759+ # runner: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-20.04-gpu-t4-4c-16g-176h') || 'ubuntu-latest' }}
760+ container : aswf/ci-osl:2025
761+ # container_options: --gpus "all,\"capabilities=compute,utility\""
762+ cxx_std : 17
763+ python_ver : " 3.11"
764+ pybind11_ver : v2.11.1
765+ simd : avx2,f16c
766+ setenvs : export OSL_CMAKE_FLAGS="-DOSL_USE_OPTIX=1"
767+ OPTIX_VERSION=7.0.0
768+ OPENIMAGEIO_CMAKE_FLAGS=-DBUILD_FMT_VERSION=9.1.0
769+ - desc : 1 VP2025 gcc11/C++17 llvm19 py3.11 oiio-rel avx2
770+ nametag : linux-optix-vfx2025
771+ # runner: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-20.04-gpu-t4-4c-16g-176h') || 'ubuntu-latest' }}
772+ container : aswf/ci-osl:2025
773+ # container_options: --gpus "all,\"capabilities=compute,utility\""
774+ cxx_std : 17
775+ python_ver : " 3.11"
776+ pybind11_ver : v2.11.1
777+ simd : avx2,f16c
778+ setenvs : export OSL_CMAKE_FLAGS="-DOSL_USE_OPTIX=1"
779+ OPTIX_VERSION=8.0.0
780+ OPENIMAGEIO_CMAKE_FLAGS=-DBUILD_FMT_VERSION=9.1.0
781+ # - desc: 1 VP2025 gcc11/C++17 llvm19 py3.11 oiio-rel avx2
782+ # nametag: linux-optix-vfx2025
783+ # # runner: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-20.04-gpu-t4-4c-16g-176h') || 'ubuntu-latest' }}
784+ # container: aswf/ci-osl:2025
785+ # container_options: --gpus "all,\"capabilities=compute,utility\""
786+ # cxx_std: 17
787+ # python_ver: "3.11"
788+ # pybind11_ver: v2.11.1
789+ # simd: avx2,f16c
790+ # setenvs: export OSL_CMAKE_FLAGS="-DOSL_USE_OPTIX=1"
791+ # OPTIX_VERSION=9.0.0
792+ # OPENIMAGEIO_CMAKE_FLAGS=-DBUILD_FMT_VERSION=9.1.0
793+ # - desc: 2 VP2025 gcc11/C++17 llvm19 py3.11 oiio-rel avx2
794+ # nametag: linux-optix-vfx2025
795+ # # runner: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-20.04-gpu-t4-4c-16g-176h') || 'ubuntu-latest' }}
796+ # container: aswf/ci-osl:2025
797+ # container_options: --gpus all,\"capabilities=compute,utility\"
798+ # cxx_std: 17
799+ # python_ver: "3.11"
800+ # pybind11_ver: v2.11.1
801+ # simd: avx2,f16c
802+ # setenvs: export OSL_CMAKE_FLAGS="-DOSL_USE_OPTIX=1"
803+ # OPTIX_VERSION=9.0.0
804+ # OPENIMAGEIO_CMAKE_FLAGS=-DBUILD_FMT_VERSION=9.1.0
805+ # - desc: 3 VP2025 gcc11/C++17 llvm19 py3.11 oiio-rel avx2
806+ # nametag: linux-optix-vfx2025
807+ # # runner: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-20.04-gpu-t4-4c-16g-176h') || 'ubuntu-latest' }}
808+ # container: aswf/ci-osl:2025
809+ # container_options: --gpus all
810+ # cxx_std: 17
811+ # python_ver: "3.11"
812+ # pybind11_ver: v2.11.1
813+ # simd: avx2,f16c
814+ # setenvs: export OSL_CMAKE_FLAGS="-DOSL_USE_OPTIX=1"
815+ # OPTIX_VERSION=9.0.0
816+ # OPENIMAGEIO_CMAKE_FLAGS=-DBUILD_FMT_VERSION=9.1.0
817+
818+ # runs-on: ${{ matrix.runner }}
819+ runs-on : ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-20.04-gpu-t4-4c-16g-176h') || 'ubuntu-latest' }}
820+ # runs-on: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-22.04-8c-32g-300h') || 'ubuntu-latest' }}
821+ container :
822+ image : ${{ matrix.container }}
823+ # options: ${{ matrix.container_options }}
824+ # options: --gpus 'all,"capabilities=compute,utility"'
825+ options : -e NVIDIA_DRIVER_CAPABILITIES=compute,graphics,utility --gpus all
826+
827+ env :
828+ CXX : ${{matrix.cxx_compiler}}
829+ CC : ${{matrix.cc_compiler}}
830+ CMAKE_BUILD_TYPE : ${{matrix.build_type}}
831+ CMAKE_CXX_STANDARD : ${{matrix.cxx_std}}
832+ CMAKE_GENERATOR : ${{matrix.generator}}
833+ CTEST_ARGS : ${{matrix.ctest_args}}
834+ CTEST_TEST_TIMEOUT : ${{matrix.ctest_test_timeout}}
835+ USE_SIMD : ${{matrix.simd}}
836+ FMT_VERSION : ${{matrix.fmt_ver}}
837+ OPENCOLORIO_VERSION : ${{matrix.opencolorio_ver}}
838+ OPENEXR_VERSION : ${{matrix.openexr_ver}}
839+ OPENIMAGEIO_VERSION : ${{matrix.openimageio_ver}}
840+ PYBIND11_VERSION : ${{matrix.pybind11_ver}}
841+ PYTHON_VERSION : ${{matrix.python_ver}}
842+ USE_BATCHED : ${{matrix.batched}}
843+ ABI_CHECK : ${{matrix.abi_check}}
844+ ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION : node16
845+ ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION : true
846+
847+ steps :
848+ - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
849+ with :
850+ fetch-depth : ' 0'
851+ - name : Prepare ccache timestamp
852+ id : ccache_cache_keys
853+ shell : bash
854+ run : echo "date=`date -u +'%Y-%m-%dT%H:%M:%SZ'`" >> $GITHUB_OUTPUT
855+ - name : ccache-restore
856+ id : ccache-restore
857+ uses : actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
858+ with :
859+ path : ./ccache
860+ key : ${{github.job}}-${{matrix.nametag}}-${{steps.ccache_cache_keys.outputs.date}}
861+ restore-keys : ${{github.job}}-
862+ - name : Build setup
863+ shell : bash
864+ run : |
865+ ${{matrix.setenvs}}
866+ src/build-scripts/ci-startup.bash
867+ - name : Install LLVM and Clang
868+ if : matrix.llvm_action_ver != ''
869+ uses : KyleMayes/install-llvm-action@6ba6e2cd3813def9879be378609d87cb3ef3bac3 # v2.0.6
870+ with :
871+ version : ${{ matrix.llvm_action_ver }}
872+ - name : Dependencies
873+ shell : bash
874+ run : |
875+ ${{matrix.depcmds}}
876+ if [[ "$RUNNER_OS" == "Linux" ]]; then
877+ src/build-scripts/gh-installdeps.bash
878+ elif [[ "$RUNNER_OS" == "macOS" ]]; then
879+ src/build-scripts/install_homebrew_deps.bash
880+ if [[ "$OPENIMAGEIO_VERSION" != "" ]] ; then \
881+ OPENIMAGEIO_CMAKE_FLAGS="-DOIIO_BUILD_TESTS=0 -DUSE_OPENGL=0 -DCMAKE_UNITY_BUILD=ON" ; \
882+ source src/build-scripts/build_openimageio.bash ; \
883+ else \
884+ brew install --display-times -q openimageio ; \
885+ PYTHONPATH=$PYTHONPATH:/usr/local/lib/python${PYTHON_VERSION}/site-packages ; \
886+ fi
887+ src/build-scripts/save-env.bash
888+ elif [[ "$RUNNER_OS" == "Windows" ]]; then
889+ src/build-scripts/gh-win-installdeps.bash
890+ fi
891+ - name : Install sonar-scanner and build-wrapper
892+ if : matrix.sonar == '1'
893+ uses : sonarsource/sonarcloud-github-c-cpp@e4882e1621ad2fb48dddfa48287411bed34789b1 # v2.0.2
894+ - name : Build
895+ if : matrix.skip_build != '1'
896+ shell : bash
897+ run : src/build-scripts/ci-build.bash
898+ - name : Testsuite
899+ if : matrix.skip_tests != '1'
900+ shell : bash
901+ run : src/build-scripts/ci-test.bash
902+ - name : clang-format
903+ if : matrix.clang_format == '1'
904+ shell : bash
905+ run : src/build-scripts/run-clang-format.bash
906+ - name : Code coverage
907+ if : matrix.coverage == '1'
908+ run : src/build-scripts/ci-coverage.bash
909+ - name : Sonar-scanner
910+ if : matrix.sonar == 1
911+ env :
912+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
913+ SONAR_TOKEN : ${{ secrets.SONAR_TOKEN }}
914+ run : |
915+ which sonar-scanner
916+ ls -l /__w/OpenShadingLanguage/OpenShadingLanguage/bw_output
917+ echo "BUILD_OUTPUT_DIR is " "${{ env.BUILD_WRAPPER_OUT_DIR }}"
918+ find . -name "*.gcov" -print
919+ # sonar-scanner --define sonar.cfamily.build-wrapper-output="${{ env.BUILD_WRAPPER_OUT_DIR }}"
920+ time sonar-scanner --define sonar.host.url="${{ env.SONAR_SERVER_URL }}" --define sonar.cfamily.build-wrapper-output="$BUILD_WRAPPER_OUT_DIR" --define sonar.cfamily.gcov.reportsPath="_coverage" --define sonar.cfamily.threads="$PARALLEL"
921+ # Consult https://docs.sonarcloud.io/advanced-setup/ci-based-analysis/sonarscanner-cli/ for more information and options
922+ - name : Check out ABI standard
923+ if : matrix.abi_check != ''
924+ uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
925+ with :
926+ ref : ${{matrix.abi_check}}
927+ path : abi_standard
928+ - name : Build ABI standard
929+ if : matrix.abi_check != ''
930+ shell : bash
931+ run : |
932+ mkdir -p abi_standard/build
933+ pushd abi_standard
934+ src/build-scripts/ci-build.bash
935+ popd
936+ - name : Check ABI
937+ if : matrix.abi_check != ''
938+ shell : bash
939+ run : |
940+ src/build-scripts/ci-abicheck.bash ./build abi_standard/build \
941+ liboslexec liboslcomp liboslquery liboslnoise
942+ - name : Build Docs
943+ if : matrix.build_docs == '1'
944+ shell : bash
945+ run : |
946+ cd src/doc
947+ time make doxygen
948+ time make sphinx
949+ - uses : actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
950+ if : ${{ failure() || matrix.build_docs == '1'}}
951+ with :
952+ name : osl-${{github.job}}-${{matrix.nametag}}
953+ path : |
954+ build/cmake-save
955+ build/compat_reports
956+ build/sphinx
957+ build/*.cmake
958+ build/CMake*
959+ build/testsuite/*/*.*
960+ ${{ matrix.extra_artifacts }}
961+ - name : ccache-save
962+ id : ccache-save
963+ uses : actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
964+ with :
965+ path : ./ccache
966+ key : ${{github.job}}-${{matrix.nametag}}-${{steps.ccache_cache_keys.outputs.date}}
0 commit comments