diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a1db62ce2b..c5cb2b7e32 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,8 @@ on: paths-ignore: - '**.md' - '**.rst' - - '**.analysis.yml' + - '**/analysis.yml' + - '**/docs.yml' - '**.properties' - 'docs/**' pull_request: @@ -230,13 +231,17 @@ jobs: # 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 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 + # Note: can't upgrade to actions/checkout 4.0 because it needs newer + # glibc than these containers have. - name: Prepare ccache timestamp id: ccache_cache_keys run: echo "date=`date -u +'%Y-%m-%dT%H:%M:%SZ'`" >> $GITHUB_OUTPUT - name: ccache id: ccache - uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d # v3.0.4 + uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3.3.3 + # Note: can't upgrade to actions/cache 4.0 because it needs newer + # glibc than these containers have. with: path: /tmp/ccache key: ${{github.job}}-${{matrix.nametag}}-${{steps.ccache_cache_keys.outputs.date}} @@ -250,13 +255,14 @@ jobs: ${{matrix.depcmds}} src/build-scripts/gh-installdeps.bash - name: Build + if: matrix.skip_build != '1' run: src/build-scripts/ci-build.bash - name: Testsuite if: matrix.skip_tests != '1' run: src/build-scripts/ci-test.bash - name: Check out ABI standard if: matrix.abi_check != '' - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: ref: ${{matrix.abi_check}} path: abi_standard @@ -278,6 +284,7 @@ jobs: path: | build/cmake-save build/compat_reports + build/sphinx build/testsuite/*/*.* !build/testsuite/oiio-images !build/testsuite/openexr-images @@ -291,26 +298,27 @@ jobs: fail-fast: false matrix: include: - - desc: latest releases gcc13 C++17 avx2 exr3.3 ocio2.4 + - desc: latest releases gcc13 C++20 py3.12 avx2 exr3.3 ocio2.4 nametag: linux-latest-releases - runner: ubuntu-22.04 + runner: ubuntu-24.04 cc_compiler: gcc-13 cxx_compiler: g++-13 - cxx_std: 17 + cxx_std: 20 fmt_ver: 11.0.2 + opencolorio_ver: v2.4.0 openexr_ver: v3.3.0 pybind11_ver: v2.13.5 - python_ver: "3.10" + python_ver: "3.12" simd: avx2,f16c - setenvs: export LIBJPEGTURBO_VERSION=3.0.1 + setenvs: export LIBJPEGTURBO_VERSION=3.0.3 LIBRAW_VERSION=0.21.2 - LIBTIFF_VERSION=v4.6.0 - OPENCOLORIO_VERSION=v2.4.0 - OPENJPEG_VERSION=v2.4.0 - PTEX_VERSION=v2.4.2 + LIBTIFF_VERSION=v4.7.0 + OPENJPEG_VERSION=v2.5.2 + PTEX_VERSION=v2.4.3 PUGIXML_VERSION=v1.14 + WEBP_VERSION=v1.4.0 + FREETYPE_VERSION=VER-2-13-3 USE_OPENVDB=0 - WEBP_VERSION=v1.3.0 # The installed OpenVDB has a TLS conflict with Python 3.8 - desc: bleeding edge gcc14 C++20 py3.12 OCIO/libtiff/exr-main boost1.74 avx2 nametag: linux-bleeding-edge @@ -432,13 +440,13 @@ jobs: # 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 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Prepare ccache timestamp id: ccache_cache_keys run: echo "date=`date -u +'%Y-%m-%dT%H:%M:%SZ'`" >> $GITHUB_OUTPUT - name: ccache id: ccache - uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d # v3.0.4 + uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0 with: path: /tmp/ccache key: ${{github.job}}-${{matrix.nametag}}-${{ steps.ccache_cache_keys.outputs.date }} @@ -457,7 +465,7 @@ jobs: - name: Testsuite if: matrix.skip_tests != '1' run: src/build-scripts/ci-test.bash - - uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + - uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0 if: failure() with: name: oiio-${{github.job}}-${{matrix.nametag}} @@ -512,13 +520,13 @@ jobs: USE_SIMD: ${{matrix.simd}} CTEST_TEST_TIMEOUT: 600 steps: - - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Prepare ccache timestamp id: ccache_cache_keys run: echo "date=`date -u +'%Y-%m-%dT%H:%M:%SZ'`" >> $GITHUB_OUTPUT - name: ccache id: ccache - uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d # v3.0.4 + uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0 with: path: /Users/runner/.ccache key: ${{github.job}}-${{matrix.nametag}}-${{ steps.ccache_cache_keys.outputs.date }} @@ -538,7 +546,7 @@ jobs: src/build-scripts/ci-build.bash - name: Testsuite run: src/build-scripts/ci-test.bash - - uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + - uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0 if: failure() with: name: oiio-${{github.job}}-${{matrix.nametag}} @@ -579,7 +587,7 @@ jobs: USE_SIMD: ${{matrix.simd}} CTEST_ARGS: "--timeout 180 --repeat after-timeout:6" steps: - - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Nuget.exe uses: nuget/setup-nuget@a21f25cd3998bf370fde17e3f1b4c12c175172f9 # v2.0.0 - name: Build setup @@ -596,13 +604,14 @@ jobs: - name: Testsuite shell: bash run: src/build-scripts/ci-test.bash - - uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + - uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0 if: failure() with: name: oiio-${{github.job}}-VS${{matrix.vsver}} path: | build/cmake-save build/testsuite/*/*.* + build/deps/dist/*/*.cmake !build/testsuite/oiio-images !build/testsuite/openexr-images !build/testsuite/fits-images diff --git a/src/build-scripts/gh-installdeps.bash b/src/build-scripts/gh-installdeps.bash index beb32c2e15..b8e4e50e8d 100755 --- a/src/build-scripts/gh-installdeps.bash +++ b/src/build-scripts/gh-installdeps.bash @@ -20,19 +20,25 @@ if [[ "$ASWF_ORG" != "" ]] ; then if [[ "$ASWF_VFXPLATFORM_VERSION" == "2021" || "$ASWF_VFXPLATFORM_VERSION" == "2022" ]] ; then # CentOS 7 based containers need the now-nonexistant centos repo to be # excluded or all the subsequent yum install commands will fail. - yum-config-manager --disable centos-sclo-rh && true + yum-config-manager --disable centos-sclo-rh || true sed -i 's,^mirrorlist=,#,; s,^#baseurl=http://mirror\.centos\.org/centos/$releasever,baseurl=https://vault.centos.org/7.9.2009,' /etc/yum.repos.d/CentOS-Base.repo fi - sudo yum install -y giflib giflib-devel && true + sudo yum install -y giflib giflib-devel || true if [[ "${USE_OPENCV}" != "0" ]] ; then - sudo yum install -y opencv opencv-devel && true + sudo yum install -y opencv opencv-devel || true fi if [[ "${USE_FFMPEG}" != "0" ]] ; then - sudo yum install -y ffmpeg ffmpeg-devel && true + sudo yum install -y ffmpeg ffmpeg-devel || true + fi + if [[ "${USE_FREETYPE:-1}" != "0" ]] ; then + sudo yum install -y freetype freetype-devel || true fi if [[ "${EXTRA_DEP_PACKAGES}" != "" ]] ; then - time sudo yum install -y ${EXTRA_DEP_PACKAGES} + time sudo yum install -y ${EXTRA_DEP_PACKAGES} || true + fi + if [[ "${PIP_INSTALLS}" != "" ]] ; then + time pip3 install ${PIP_INSTALLS} || true fi if [[ "${CONAN_LLVM_VERSION}" != "" ]] ; then