Dependencies latest #1061
This file contains hidden or 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
| # SPDX-License-Identifier: BSD-3-Clause | |
| # Copyright Contributors to the OpenColorIO Project. | |
| # | |
| # GitHub Actions workflow file | |
| # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions | |
| name: Dependencies latest | |
| on: | |
| pull_request: | |
| branches-ignore: | |
| - RB-0.* | |
| - RB-1.* | |
| - gh-pages | |
| tags-ignore: | |
| - v0.* | |
| - v1.* | |
| paths: | |
| - .github/workflows/dependencies_latest.yml | |
| schedule: | |
| # Nightly build | |
| - cron: "0 0 * * *" | |
| jobs: | |
| # --------------------------------------------------------------------------- | |
| # Linux latest ext packages | |
| # --------------------------------------------------------------------------- | |
| linux_latest: | |
| name: 'Linux VFX CY${{ matrix.vfx-cy }} latest | |
| <${{ matrix.compiler-desc }} | |
| cxx=${{ matrix.cxx-standard }}, | |
| docs=${{ matrix.build-docs }}>' | |
| # Don't run on OCIO forks | |
| if: github.repository == 'AcademySoftwareFoundation/OpenColorIO' | |
| # GH-hosted VM. The build runs in ASWF 'container' defined below. | |
| runs-on: ubuntu-latest | |
| container: | |
| # DockerHub: https://hub.docker.com/u/aswf | |
| # Source: https://github.com/AcademySoftwareFoundation/aswf-docker | |
| image: aswf/ci-base:${{ matrix.vfx-cy }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| build: [1, 2, 3, 4] | |
| include: | |
| # ------------------------------------------------------------------- | |
| # GCC | |
| # ------------------------------------------------------------------- | |
| - build: 1 | |
| build-docs: 'ON' | |
| build-openfx: 'ON' | |
| cxx-standard: 20 | |
| cxx-compiler: g++ | |
| cc-compiler: gcc | |
| compiler-desc: GCC | |
| vfx-cy: 2025 | |
| - build: 2 | |
| build-docs: 'OFF' | |
| build-openfx: 'OFF' | |
| cxx-standard: 17 | |
| cxx-compiler: g++ | |
| cc-compiler: gcc | |
| compiler-desc: GCC | |
| vfx-cy: 2024 | |
| # ------------------------------------------------------------------- | |
| # Clang | |
| # ------------------------------------------------------------------- | |
| - build: 3 | |
| build-docs: 'OFF' | |
| build-openfx: 'OFF' | |
| cxx-standard: 20 | |
| cxx-compiler: clang++ | |
| cc-compiler: clang | |
| compiler-desc: Clang | |
| vfx-cy: 2025 | |
| - build: 4 | |
| build-docs: 'ON' | |
| build-openfx: 'ON' | |
| cxx-standard: 17 | |
| cxx-compiler: clang++ | |
| cc-compiler: clang | |
| compiler-desc: Clang | |
| vfx-cy: 2024 | |
| env: | |
| CXX: ${{ matrix.cxx-compiler }} | |
| CC: ${{ matrix.cc-compiler }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| - name: Install docs env | |
| run: share/ci/scripts/linux/dnf/install_docs_env.sh | |
| if: matrix.build-docs == 'ON' | |
| - name: Install tests env | |
| run: share/ci/scripts/linux/dnf/install_tests_env.sh | |
| - name: Setup ext environment | |
| run: | | |
| EXT_PATH=/usr/local | |
| echo "EXT_PATH=$EXT_PATH" >> $GITHUB_ENV | |
| - name: Install fixed ext package versions | |
| # Minizip-ng depends on ZLIB. ZLIB must be installed first. | |
| run: | | |
| share/ci/scripts/multi/install_expat.sh 2.7.2 $EXT_PATH | |
| share/ci/scripts/multi/install_lcms2.sh 2.17 $EXT_PATH | |
| share/ci/scripts/multi/install_yaml-cpp.sh 0.8.0 $EXT_PATH | |
| share/ci/scripts/multi/install_pystring.sh 1.1.4 $EXT_PATH | |
| share/ci/scripts/multi/install_pybind11.sh 3.0.1 $EXT_PATH | |
| share/ci/scripts/multi/install_zlib.sh 1.3.1 $EXT_PATH | |
| share/ci/scripts/multi/install_minizip-ng.sh 4.0.10 $EXT_PATH | |
| - name: Install latest ext package versions | |
| run: | | |
| share/ci/scripts/multi/install_imath.sh latest $EXT_PATH | |
| share/ci/scripts/multi/install_openexr.sh latest $EXT_PATH | |
| share/ci/scripts/multi/install_openfx.sh latest $EXT_PATH | |
| - name: Create build directories | |
| run: | | |
| mkdir _install | |
| mkdir _build | |
| - name: Configure | |
| run: | | |
| cmake ../. \ | |
| -DCMAKE_INSTALL_PREFIX=../_install \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ | |
| -DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \ | |
| -DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \ | |
| -DOCIO_BUILD_GPU_TESTS=OFF \ | |
| -DOCIO_INSTALL_EXT_PACKAGES=NONE \ | |
| -DOCIO_WARNING_AS_ERROR=OFF \ | |
| -DPython_EXECUTABLE=$(which python) | |
| working-directory: _build | |
| - name: Build | |
| run: | | |
| cmake --build . \ | |
| --target install \ | |
| --config Release \ | |
| -- -j$(nproc) | |
| working-directory: _build | |
| - name: Test | |
| run: ctest -V -C Release | |
| working-directory: _build | |
| - name: Test CMake Consumer | |
| run: | | |
| cmake . \ | |
| -DCMAKE_PREFIX_PATH=../../../_install \ | |
| -DCMAKE_BUILD_TYPE=Release | |
| cmake --build . \ | |
| --config Release | |
| # ASWF ci-base 2025.2 is missing lib64 (2025.1 have it) | |
| export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH | |
| ./consumer | |
| working-directory: _build/tests/cmake-consumer-dist | |
| # --------------------------------------------------------------------------- | |
| # MacOS latest ext packages | |
| # --------------------------------------------------------------------------- | |
| macos-latest: | |
| name: 'macOS latest | |
| <AppleClang | |
| cxx=${{ matrix.cxx-standard }}, | |
| docs=${{ matrix.build-docs }}, | |
| python=${{ matrix.python-version }}>' | |
| # Don't run on OCIO forks | |
| if: github.repository == 'AcademySoftwareFoundation/OpenColorIO' | |
| runs-on: macos-latest | |
| strategy: | |
| matrix: | |
| build: [1, 2] | |
| include: | |
| - build: 1 | |
| build-docs: 'ON' | |
| build-openfx: 'ON' | |
| cxx-standard: 20 | |
| python-version: '3.13' | |
| - build: 2 | |
| build-docs: 'ON' | |
| build-openfx: 'ON' | |
| cxx-standard: 17 | |
| python-version: '3.9' | |
| steps: | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install docs env | |
| run: share/ci/scripts/macos/install_docs_env.sh | |
| if: matrix.build-docs == 'ON' | |
| - name: Install tests env | |
| run: share/ci/scripts/macos/install_tests_env.sh | |
| - name: Setup ext environment | |
| run: | | |
| EXT_PATH=$GITHUB_WORKSPACE/_ext | |
| echo "EXT_PATH=$EXT_PATH" >> $GITHUB_ENV | |
| echo "CMAKE_PREFIX_PATH=$EXT_PATH" >> $GITHUB_ENV | |
| - name: Install fixed ext package versions | |
| # Minizip-ng depends on ZLIB. ZLIB must be installed first. | |
| run: | | |
| share/ci/scripts/multi/install_expat.sh 2.7.2 $EXT_PATH | |
| share/ci/scripts/multi/install_lcms2.sh 2.17 $EXT_PATH | |
| share/ci/scripts/multi/install_yaml-cpp.sh 0.8.0 $EXT_PATH | |
| share/ci/scripts/multi/install_pystring.sh 1.1.4 $EXT_PATH | |
| share/ci/scripts/multi/install_pybind11.sh 3.0.1 $EXT_PATH | |
| share/ci/scripts/multi/install_zlib.sh 1.3.1 $EXT_PATH | |
| share/ci/scripts/multi/install_minizip-ng.sh 4.0.10 $EXT_PATH | |
| - name: Install latest ext package versions | |
| run: | | |
| share/ci/scripts/multi/install_imath.sh latest $EXT_PATH | |
| share/ci/scripts/multi/install_openexr.sh latest $EXT_PATH | |
| share/ci/scripts/multi/install_openfx.sh latest $EXT_PATH | |
| - name: Create build directories | |
| run: | | |
| mkdir _install | |
| mkdir _build | |
| - name: Configure | |
| run: | | |
| cmake ../. \ | |
| -DCMAKE_INSTALL_PREFIX=../_install \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ | |
| -DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \ | |
| -DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \ | |
| -DOCIO_BUILD_GPU_TESTS=OFF \ | |
| -DOCIO_INSTALL_EXT_PACKAGES=NONE \ | |
| -DOCIO_WARNING_AS_ERROR=OFF \ | |
| -DPython_EXECUTABLE=$(which python) | |
| working-directory: _build | |
| - name: Build | |
| run: | | |
| cmake --build . \ | |
| --target install \ | |
| --config Release \ | |
| -- -j$(sysctl -n hw.ncpu) | |
| working-directory: _build | |
| - name: Test | |
| run: ctest -V -C Release | |
| working-directory: _build | |
| - name: Test CMake Consumer | |
| run: | | |
| cmake . \ | |
| -DCMAKE_PREFIX_PATH=../../../_install \ | |
| -DCMAKE_BUILD_TYPE=Release | |
| cmake --build . \ | |
| --config Release | |
| export DYLD_LIBRARY_PATH=$EXT_PATH/lib:$DYLD_LIBRARY_PATH | |
| ./consumer | |
| working-directory: _build/tests/cmake-consumer-dist | |
| # --------------------------------------------------------------------------- | |
| # Windows latest ext packages | |
| # --------------------------------------------------------------------------- | |
| windows-latest: | |
| name: 'Windows latest | |
| <MSVC | |
| cxx=${{ matrix.cxx-standard }}, | |
| docs=${{ matrix.build-docs }}, | |
| python=${{ matrix.python-version }}>' | |
| # Don't run on OCIO forks | |
| if: github.repository == 'AcademySoftwareFoundation/OpenColorIO' | |
| runs-on: windows-latest | |
| strategy: | |
| matrix: | |
| build: [1, 2] | |
| include: | |
| - build: 1 | |
| build-docs: 'ON' | |
| build-openfx: 'ON' | |
| cxx-standard: 20 | |
| python-version: '3.13' | |
| use-oiio: 'ON' | |
| - build: 2 | |
| build-docs: 'ON' | |
| build-openfx: 'ON' | |
| cxx-standard: 17 | |
| python-version: '3.9' | |
| use-oiio: 'OFF' | |
| steps: | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install docs env | |
| run: | | |
| DOXYGEN_PATH=$GITHUB_WORKSPACE/doxygen | |
| share/ci/scripts/windows/install_docs_env.sh "$DOXYGEN_PATH" | |
| echo "$DOXYGEN_PATH" >> $GITHUB_PATH | |
| shell: bash | |
| if: matrix.build-docs == 'ON' | |
| - name: Install tests env | |
| run: share/ci/scripts/windows/install_tests_env.sh | |
| shell: bash | |
| - name: Setup ext environment | |
| run: | | |
| EXT_PATH=$GITHUB_WORKSPACE/_ext | |
| VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT/installed/x64-windows | |
| echo "EXT_PATH=$EXT_PATH" >> $GITHUB_ENV | |
| echo "CMAKE_PREFIX_PATH=$VCPKG_ROOT;$EXT_PATH" >> $GITHUB_ENV | |
| echo "$VCPKG_ROOT/bin" >> $GITHUB_PATH | |
| echo "$EXT_PATH/bin" >> $GITHUB_PATH | |
| mkdir $EXT_PATH | |
| shell: bash | |
| - name: Install indirect dependencies | |
| run: | | |
| vcpkg install zlib:x64-windows | |
| vcpkg install tiff:x64-windows | |
| shell: bash | |
| - name: Install fixed ext package versions | |
| # Minizip-ng depends on ZLIB. ZLIB must be installed first. | |
| run: | | |
| share/ci/scripts/multi/install_lcms2.sh 2.17 $EXT_PATH | |
| share/ci/scripts/multi/install_yaml-cpp.sh 0.8.0 $EXT_PATH | |
| share/ci/scripts/multi/install_pystring.sh 1.1.4 $EXT_PATH | |
| share/ci/scripts/multi/install_pybind11.sh 3.0.1 $EXT_PATH | |
| share/ci/scripts/multi/install_expat.sh 2.7.2 $EXT_PATH | |
| share/ci/scripts/multi/install_zlib.sh 1.3.1 $EXT_PATH | |
| share/ci/scripts/multi/install_minizip-ng.sh 4.0.10 $EXT_PATH | |
| shell: bash | |
| # OSL not installed due to LLVM compilation time. | |
| - name: Install latest ext package versions | |
| run: | | |
| share/ci/scripts/multi/install_imath.sh latest $EXT_PATH | |
| share/ci/scripts/multi/install_openexr.sh latest $EXT_PATH | |
| share/ci/scripts/multi/install_openfx.sh latest $EXT_PATH | |
| shell: bash | |
| - name: Create build directories | |
| run: | | |
| mkdir _install | |
| mkdir _build | |
| shell: bash | |
| - name: Configure | |
| run: | | |
| cmake ../. \ | |
| -DCMAKE_INSTALL_PREFIX=../_install \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ | |
| -DCMAKE_GENERATOR_PLATFORM=x64 \ | |
| -DOCIO_BUILD_DOCS=OFF \ | |
| -DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \ | |
| -DOCIO_BUILD_GPU_TESTS=OFF \ | |
| -DOCIO_INSTALL_EXT_PACKAGES=NONE \ | |
| -DOCIO_WARNING_AS_ERROR=OFF \ | |
| -DPython_EXECUTABLE=$(which python) \ | |
| -DOCIO_BUILD_PYTHON=OFF | |
| shell: bash | |
| working-directory: _build | |
| - name: Build | |
| run: | | |
| cmake --build . \ | |
| --target install \ | |
| --config Release \ | |
| --parallel | |
| shell: bash | |
| working-directory: _build | |
| - name: Test | |
| run: | | |
| ctest -V -C Release | |
| shell: bash | |
| working-directory: _build | |
| - name: Test CMake Consumer | |
| run: | | |
| cmake . \ | |
| -DCMAKE_PREFIX_PATH=../../../_install \ | |
| -DCMAKE_BUILD_TYPE=Release | |
| cmake --build . \ | |
| --config Release | |
| export PATH=../../../_install/bin:$PATH | |
| ./Release/consumer | |
| shell: bash | |
| working-directory: _build/tests/cmake-consumer-dist |