diff --git a/.github/workflows/analysis_workflow.yml b/.github/workflows/analysis_workflow.yml deleted file mode 100644 index 7a7bfbbbe..000000000 --- a/.github/workflows/analysis_workflow.yml +++ /dev/null @@ -1,84 +0,0 @@ -# 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: Analysis - -on: - pull_request: - branches-ignore: - - RB-0.* - - RB-1.* - - gh-pages - tags-ignore: - - v0.* - - v1.* - paths: - - .github/workflows/analysis_workflow.yml - schedule: - # Nightly build - - cron: "0 0 * * *" - -jobs: - # --------------------------------------------------------------------------- - # SonarCloud static analysis - # --------------------------------------------------------------------------- - - linux_sonarcloud: - name: 'Linux VFX CY2023 SonarCloud' - # 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-ocio:2023 - env: - CXX: g++ - CC: gcc - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 50 - - name: Install sonar-scanner and build-wrapper - uses: sonarsource/sonarcloud-github-c-cpp@v2 - - name: Install docs env - run: share/ci/scripts/linux/yum/install_docs_env.sh - - name: Install tests env - run: share/ci/scripts/linux/yum/install_tests_env.sh - - name: Create build directories - run: | - mkdir _install - mkdir _build - - name: Configure - run: | - cmake ../. \ - -DCMAKE_INSTALL_PREFIX=../_install \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_STANDARD=14 \ - -DCMAKE_CXX_FLAGS="-g -O0 -fprofile-arcs -ftest-coverage" \ - -DCMAKE_CXX_OUTPUT_EXTENSION_REPLACE=ON \ - -DCMAKE_EXE_LINKER_FLAGS="-lgcov" \ - -DOCIO_BUILD_DOCS=ON \ - -DOCIO_BUILD_GPU_TESTS=OFF \ - -DOCIO_INSTALL_EXT_PACKAGES=ALL \ - -DOCIO_WARNING_AS_ERROR=ON \ - -DPython_EXECUTABLE=$(which python) - working-directory: _build - - name: Build OCIO with build-wrapper - run: build-wrapper-linux-x86-64 --out-dir bw_output make clean all - working-directory: _build - - name: Test - run: ctest -V -C Release - working-directory: _build - - name: Generate code coverage report - run: share/ci/scripts/linux/run_gcov.sh - - name: Run sonar-scanner - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: sonar-scanner diff --git a/.github/workflows/ci_workflow.yml b/.github/workflows/ci_workflow.yml index f292ff7d6..fc2d289f6 100644 --- a/.github/workflows/ci_workflow.yml +++ b/.github/workflows/ci_workflow.yml @@ -26,583 +26,6 @@ on: - v1.* jobs: - # Linux jobs run in Docker containers, so the latest OS version is OK. macOS - # and Windows jobs need to be locked to specific virtual environment - # versions to mitigate issues from OS updates, and will require maintenance - # as OS versions are retired. - # - # GH Actions (Free plan) supports 20 concurrent jobs, with 5 concurrent macOS - # jobs. This workflow tries to utilize (but not exceed) that budget to - # promote timely CI. - - # --------------------------------------------------------------------------- - # Linux - # --------------------------------------------------------------------------- - - linux: - name: 'Linux CentOS 7 VFX CY${{ matrix.vfx-cy }} - <${{ matrix.compiler-desc }} - config=${{ matrix.build-type }}, - shared=${{ matrix.build-shared }}, - simd=${{ matrix.use-simd }}, - cxx=${{ matrix.cxx-standard }}, - docs=${{ matrix.build-docs }}, - oiio=${{ matrix.use-oiio }}>' - # Avoid duplicated checks when a pull_request is opened from a local branch. - if: | - github.event_name == 'push' || - github.event.pull_request.head.repo.full_name != github.repository - # GH-hosted VM. The build runs in CentOS 7 '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-ocio:${{ matrix.vfx-cy }} - strategy: - fail-fast: true - matrix: - build: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] - include: - # ------------------------------------------------------------------- - # VFX CY2023 (Python 3.10) - # ------------------------------------------------------------------- - - build: 12 - build-type: Debug - build-shared: 'ON' - build-docs: 'OFF' - build-openfx: 'ON' - use-simd: 'ON' - use-oiio: 'ON' - cxx-standard: 17 - cxx-compiler: clang++ - cc-compiler: clang - compiler-desc: Clang - vfx-cy: 2023 - install-ext-packages: MISSING - - build: 11 - build-type: Release - build-shared: 'ON' - build-docs: 'ON' - build-openfx: 'ON' - use-simd: 'OFF' - use-oiio: 'OFF' - cxx-standard: 17 - cxx-compiler: g++ - cc-compiler: gcc - compiler-desc: GCC - vfx-cy: 2023 - install-ext-packages: ALL - - build: 10 - build-type: Release - build-shared: 'OFF' - build-docs: 'OFF' - build-openfx: 'OFF' - use-simd: 'ON' - use-oiio: 'OFF' - cxx-standard: 11 - cxx-compiler: g++ - cc-compiler: gcc - compiler-desc: GCC - vfx-cy: 2023 - install-ext-packages: ALL - # ------------------------------------------------------------------- - # VFX CY2022 (Python 3.9) - # ------------------------------------------------------------------- - - build: 9 - build-type: Debug - build-shared: 'ON' - build-docs: 'OFF' - build-openfx: 'ON' - use-simd: 'ON' - use-oiio: 'ON' - cxx-standard: 17 - cxx-compiler: clang++ - cc-compiler: clang - compiler-desc: Clang - vfx-cy: 2022 - install-ext-packages: ALL - - build: 8 - build-type: Release - build-shared: 'ON' - build-docs: 'ON' - build-openfx: 'ON' - use-simd: 'OFF' - use-oiio: 'OFF' - cxx-standard: 17 - cxx-compiler: g++ - cc-compiler: gcc - compiler-desc: GCC - vfx-cy: 2022 - install-ext-packages: MISSING - - build: 7 - build-type: Release - build-shared: 'OFF' - build-docs: 'OFF' - build-openfx: 'OFF' - use-simd: 'ON' - use-oiio: 'OFF' - cxx-standard: 11 - cxx-compiler: g++ - cc-compiler: gcc - compiler-desc: GCC - vfx-cy: 2022 - install-ext-packages: ALL - # ------------------------------------------------------------------- - # VFX CY2021 (Python 3.7) - # ------------------------------------------------------------------- - - build: 6 - build-type: Release - build-shared: 'ON' - build-docs: 'OFF' - build-openfx: 'OFF' - use-simd: 'ON' - use-oiio: 'ON' - cxx-standard: 17 - cxx-compiler: clang++ - cc-compiler: clang - compiler-desc: Clang - vfx-cy: 2021 - install-ext-packages: MISSING - - build: 5 - build-type: Release - build-shared: 'OFF' - build-docs: 'OFF' - build-openfx: 'ON' - use-simd: 'OFF' - use-oiio: 'OFF' - cxx-standard: 14 - cxx-compiler: clang++ - cc-compiler: clang - compiler-desc: Clang - vfx-cy: 2021 - install-ext-packages: ALL - - build: 4 - build-type: Debug - build-shared: 'ON' - build-docs: 'OFF' - build-openfx: 'OFF' - use-simd: 'ON' - use-oiio: 'OFF' - cxx-standard: 11 - cxx-compiler: g++ - cc-compiler: gcc - compiler-desc: GCC - vfx-cy: 2021 - install-ext-packages: ALL - # ------------------------------------------------------------------- - # VFX CY2020 (Python 3.7) - # ------------------------------------------------------------------- - - build: 3 - build-type: Release - build-shared: 'ON' - build-docs: 'OFF' - build-openfx: 'ON' - use-simd: 'OFF' - use-oiio: 'OFF' - cxx-standard: 14 - cxx-compiler: clang++ - cc-compiler: clang - compiler-desc: Clang - vfx-cy: 2020 - install-ext-packages: MISSING - - build: 2 - build-type: Debug - build-shared: 'OFF' - build-docs: 'OFF' - build-openfx: 'ON' - use-simd: 'ON' - use-oiio: 'ON' - cxx-standard: 14 - cxx-compiler: g++ - cc-compiler: gcc - compiler-desc: GCC - vfx-cy: 2020 - install-ext-packages: ALL - - build: 1 - build-type: Release - build-shared: 'ON' - build-docs: 'OFF' - build-openfx: 'OFF' - use-simd: 'ON' - use-oiio: 'OFF' - cxx-standard: 11 - cxx-compiler: g++ - cc-compiler: gcc - compiler-desc: GCC - vfx-cy: 2020 - install-ext-packages: ALL - env: - CXX: ${{ matrix.cxx-compiler }} - CC: ${{ matrix.cc-compiler }} - ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16 - ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Install docs env - run: share/ci/scripts/linux/yum/install_docs_env.sh - if: matrix.build-docs == 'ON' - - name: Install tests env - run: share/ci/scripts/linux/yum/install_tests_env.sh - - name: Create build directories - run: | - mkdir _install - mkdir _build - - name: Configure - run: | - cmake ../. \ - -DCMAKE_INSTALL_PREFIX=../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ - -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ - -DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \ - -DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \ - -DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \ - -DOCIO_BUILD_GPU_TESTS=OFF \ - -DOCIO_USE_SIMD=${{ matrix.use-simd }} \ - -DOCIO_USE_OIIO_FOR_APPS=${{ matrix.use-oiio }} \ - -DOCIO_INSTALL_EXT_PACKAGES=${{ matrix.install-ext-packages }} \ - -DOCIO_WARNING_AS_ERROR=ON \ - -DPython_EXECUTABLE=$(which python) - working-directory: _build - - name: Build - run: | - cmake --build . \ - --target install \ - --config ${{ matrix.build-type }} \ - -- -j$(nproc) - echo "ocio_build_path=$(pwd)" >> $GITHUB_ENV - working-directory: _build - - name: Test - run: ctest -V -C ${{ matrix.build-type }} - working-directory: _build - - name: Test CMake Consumer with shared OCIO - if: matrix.build-shared == 'ON' - run: | - cmake . \ - -DCMAKE_PREFIX_PATH=../../../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} - cmake --build . \ - --config ${{ matrix.build-type }} - ./consumer - working-directory: _build/tests/cmake-consumer-dist - - name: Test CMake Consumer with static OCIO - if: matrix.build-shared == 'OFF' - # The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to - # extract it from the headers, like the other modules. - # - # Prefer the static version of each dependencies by using _STATIC_LIBRARY. - # Alternatively, this can be done by setting _LIBRARY and _INCLUDE_DIR to - # the static version of the package. - run: | - cmake . \ - -DCMAKE_PREFIX_PATH=../../../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ - -Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dexpat_STATIC_LIBRARY=ON \ - -DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -DImath_STATIC_LIBRARY=ON \ - -Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dyaml-cpp_STATIC_LIBRARY=ON \ - -Dyaml-cpp_VERSION=0.7.0 \ - -DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -DZLIB_STATIC_LIBRARY=ON \ - -Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dminizip-ng_STATIC_LIBRARY=ON - cmake --build . \ - --config ${{ matrix.build-type }} - ./consumer - working-directory: _build/tests/cmake-consumer-dist - - # --------------------------------------------------------------------------- - # macOS - # --------------------------------------------------------------------------- - - macos: - name: 'macOS 12 - ' - # Avoid duplicated checks when a pull_request is opened from a local branch. - if: | - github.event_name == 'push' || - github.event.pull_request.head.repo.full_name != github.repository - runs-on: macos-12 - strategy: - matrix: - build: [1, 2, 3, 4] - include: - - build: 5 - arch-type: "x86_64" - build-type: Release - build-shared: 'ON' - build-docs: 'OFF' - build-openfx: 'ON' - use-simd: 'ON' - use-oiio: 'ON' - cxx-standard: 17 - python-version: '3.11' - # Keeping one universal build - - build: 4 - arch-type: "x86_64;arm64" - build-type: Release - build-shared: 'ON' - build-docs: 'OFF' - build-openfx: 'OFF' - use-simd: 'ON' - use-oiio: 'OFF' - cxx-standard: 11 - python-version: '3.10' - - build: 3 - arch-type: "x86_64" - build-type: Release - build-shared: 'ON' - build-docs: 'ON' - build-openfx: 'OFF' - use-simd: 'OFF' - use-oiio: 'OFF' - cxx-standard: 11 - python-version: '3.10' - - build: 2 - arch-type: "x86_64" - build-type: Debug - build-shared: 'ON' - build-docs: 'OFF' - build-openfx: 'ON' - use-simd: 'ON' - use-oiio: 'OFF' - cxx-standard: 11 - python-version: '3.9' - - build: 1 - arch-type: "x86_64" - build-type: Release - build-shared: 'OFF' - build-docs: 'OFF' - build-openfx: 'ON' - use-simd: 'ON' - use-oiio: 'OFF' - cxx-standard: 14 - python-version: '3.7' - 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: Create build directories - run: | - mkdir _install - mkdir _build - - name: Configure - run: | - cmake ../. \ - -DCMAKE_INSTALL_PREFIX=../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ - -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ - -DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \ - -DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \ - -DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \ - -DOCIO_BUILD_GPU_TESTS=OFF \ - -DOCIO_USE_SIMD=${{ matrix.use-simd }} \ - -DOCIO_USE_OIIO_FOR_APPS=${{ matrix.use-oiio }} \ - -DOCIO_INSTALL_EXT_PACKAGES=ALL \ - -DOCIO_WARNING_AS_ERROR=ON \ - -DPython_EXECUTABLE=$(which python) \ - -DCMAKE_OSX_ARCHITECTURES="${{ matrix.arch-type }}" - working-directory: _build - - name: Build - run: | - cmake --build . \ - --target install \ - --config ${{ matrix.build-type }} \ - -- -j$(sysctl -n hw.ncpu) - echo "ocio_build_path=$(pwd)" >> $GITHUB_ENV - working-directory: _build - - name: Test - run: ctest -V -C ${{ matrix.build-type }} - working-directory: _build - - name: Test CMake Consumer with shared OCIO - if: matrix.build-shared == 'ON' - run: | - cmake . \ - -DCMAKE_PREFIX_PATH=../../../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} - cmake --build . \ - --config ${{ matrix.build-type }} - ./consumer - working-directory: _build/tests/cmake-consumer-dist - - name: Test CMake Consumer with static OCIO - if: matrix.build-shared == 'OFF' - # The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to - # extract it from the headers, like the other modules. - # - # Prefer the static version of each dependencies by using _STATIC_LIBRARY. - # Alternatively, this can be done by setting _LIBRARY and _INCLUDE_DIR to - # the static version of the package. - run: | - cmake . \ - -DCMAKE_PREFIX_PATH=../../../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ - -Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dexpat_STATIC_LIBRARY=ON \ - -DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -DImath_STATIC_LIBRARY=ON \ - -Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dyaml-cpp_STATIC_LIBRARY=ON \ - -Dyaml-cpp_VERSION=0.7.0 \ - -DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -DZLIB_STATIC_LIBRARY=ON \ - -Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dminizip-ng_STATIC_LIBRARY=ON - cmake --build . \ - --config ${{ matrix.build-type }} - ./consumer - working-directory: _build/tests/cmake-consumer-dist - - # --------------------------------------------------------------------------- - # macOS Arm - # --------------------------------------------------------------------------- - - macos-arm: - name: 'macOS 14 arm - ' - - runs-on: macos-14 - strategy: - matrix: - build: [1, 2] - include: - - build: 1 - arch-type: "arm64" - test-rosetta: "OFF" - build-type: Release - build-shared: 'ON' - build-docs: 'OFF' - build-openfx: 'OFF' - use-simd: 'ON' - use-oiio: 'OFF' - cxx-standard: 11 - python-version: '3.11' - - build: 2 - arch-type: "x86_64;arm64" - test-rosetta: "ON" - build-type: Release - build-shared: 'ON' - build-docs: 'OFF' - build-openfx: 'OFF' - use-simd: 'ON' - use-oiio: 'OFF' - cxx-standard: 11 - python-version: '3.11' - steps: - - name: Setup Python - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - name: Checkout - uses: actions/checkout@v3 - - 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: Create build directories - run: | - mkdir _install - mkdir _build - - name: Configure - run: | - cmake ../. \ - -DCMAKE_INSTALL_PREFIX=../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ - -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ - -DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \ - -DOCIO_BUILD_DOCS=${{ matrix.build-docs }} \ - -DOCIO_BUILD_OPENFX=${{ matrix.build-openfx }} \ - -DOCIO_BUILD_GPU_TESTS=OFF \ - -DOCIO_USE_SIMD=${{ matrix.use-simd }} \ - -DOCIO_USE_OIIO_FOR_APPS=${{ matrix.use-oiio }} \ - -DOCIO_INSTALL_EXT_PACKAGES=ALL \ - -DOCIO_WARNING_AS_ERROR=ON \ - -DPython_EXECUTABLE=$(which python) \ - -DCMAKE_OSX_ARCHITECTURES="${{ matrix.arch-type }}" - working-directory: _build - - name: Build - run: | - cmake --build . \ - --target install \ - --config ${{ matrix.build-type }} \ - -- -j$(sysctl -n hw.ncpu) - echo "ocio_build_path=$(pwd)" >> $GITHUB_ENV - working-directory: _build - - name: Test - run: ctest -V -C ${{ matrix.build-type }} - working-directory: _build - - name: Test Rosetta - if: matrix.test-rosetta == 'ON' - run: | - /usr/bin/arch -x86_64 /bin/zsh -c "ctest -V -C ${{ matrix.build-type }}" - working-directory: _build - - name: Test CMake Consumer with shared OCIO - if: matrix.build-shared == 'ON' - run: | - cmake . \ - -DCMAKE_PREFIX_PATH=../../../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} - cmake --build . \ - --config ${{ matrix.build-type }} - ./consumer - working-directory: _build/tests/cmake-consumer-dist - - name: Test CMake Consumer with static OCIO - if: matrix.build-shared == 'OFF' - # The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to - # extract it from the headers, like the other modules. - # - # Prefer the static version of each dependencies by using _STATIC_LIBRARY. - # Alternatively, this can be done by setting _LIBRARY and _INCLUDE_DIR to - # the static version of the package. - run: | - cmake . \ - -DCMAKE_PREFIX_PATH=../../../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ - -Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dexpat_STATIC_LIBRARY=ON \ - -DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -DImath_STATIC_LIBRARY=ON \ - -Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dyaml-cpp_STATIC_LIBRARY=ON \ - -Dyaml-cpp_VERSION=0.7.0 \ - -DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -DZLIB_STATIC_LIBRARY=ON \ - -Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dminizip-ng_STATIC_LIBRARY=ON - cmake --build . \ - --config ${{ matrix.build-type }} - ./consumer - working-directory: _build/tests/cmake-consumer-dist - # --------------------------------------------------------------------------- # Windows # --------------------------------------------------------------------------- diff --git a/.github/workflows/dependencies_latest.yml b/.github/workflows/dependencies_latest.yml deleted file mode 100644 index d95d732c8..000000000 --- a/.github/workflows/dependencies_latest.yml +++ /dev/null @@ -1,399 +0,0 @@ -# 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 CentOS 7 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 CentOS 7 '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: - matrix: - build: [1, 2, 3, 4] - include: - # ------------------------------------------------------------------- - # GCC - # ------------------------------------------------------------------- - - build: 1 - build-docs: 'ON' - build-openfx: 'ON' - cxx-standard: 17 - cxx-compiler: g++ - cc-compiler: gcc - compiler-desc: GCC - vfx-cy: 2022 - use-oiio: 'ON' - - build: 2 - build-docs: 'OFF' - build-openfx: 'OFF' - cxx-standard: 14 - cxx-compiler: g++ - cc-compiler: gcc - compiler-desc: GCC - vfx-cy: 2021 - use-oiio: 'OFF' - # ------------------------------------------------------------------- - # Clang - # ------------------------------------------------------------------- - - build: 3 - build-docs: 'OFF' - build-openfx: 'OFF' - cxx-standard: 17 - cxx-compiler: clang++ - cc-compiler: clang - compiler-desc: Clang - vfx-cy: 2022 - use-oiio: 'OFF' - - build: 4 - build-docs: 'ON' - build-openfx: 'ON' - cxx-standard: 14 - cxx-compiler: clang++ - cc-compiler: clang - compiler-desc: Clang - vfx-cy: 2021 - use-oiio: 'ON' - 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/yum/install_docs_env.sh - if: matrix.build-docs == 'ON' - - name: Install tests env - run: share/ci/scripts/linux/yum/install_tests_env.sh - - name: Setup ext environment - run: | - EXT_PATH=/usr/local - echo "EXT_PATH=$EXT_PATH" >> $GITHUB_ENV - - name: Install indirect dependencies - run: | - share/ci/scripts/multi/install_pugixml.sh latest - - 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.4.1 $EXT_PATH - share/ci/scripts/multi/install_lcms2.sh 2.2 $EXT_PATH - share/ci/scripts/multi/install_yaml-cpp.sh 0.7.0 $EXT_PATH - share/ci/scripts/multi/install_pystring.sh 1.1.3 $EXT_PATH - share/ci/scripts/multi/install_pybind11.sh 2.9.2 $EXT_PATH - share/ci/scripts/multi/install_zlib.sh 1.2.12 $EXT_PATH - share/ci/scripts/multi/install_minizip-ng.sh 3.0.6 $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_oiio.sh latest $EXT_PATH - share/ci/scripts/multi/install_osl.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) \ - -DOCIO_USE_OIIO_FOR_APPS=${{ matrix.use-oiio }} - 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 - ./consumer - working-directory: _build/tests/cmake-consumer-dist - - # --------------------------------------------------------------------------- - # MacOS latest ext packages - # --------------------------------------------------------------------------- - - macos-latest: - name: 'macOS latest - ' - # 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: 17 - python-version: '3.11' - use-oiio: 'ON' - - build: 2 - build-docs: 'ON' - build-openfx: 'ON' - cxx-standard: 14 - 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: 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=/usr/local - echo "EXT_PATH=$EXT_PATH" >> $GITHUB_ENV - - name: Install indirect dependencies - run: | - share/ci/scripts/macos/install_bison.sh latest - share/ci/scripts/macos/install_boost.sh latest - share/ci/scripts/multi/install_pugixml.sh latest $EXT_PATH - - 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.4.1 $EXT_PATH - share/ci/scripts/multi/install_lcms2.sh 2.2 $EXT_PATH - share/ci/scripts/multi/install_yaml-cpp.sh 0.7.0 $EXT_PATH - share/ci/scripts/multi/install_pystring.sh 1.1.3 $EXT_PATH - share/ci/scripts/multi/install_pybind11.sh 2.9.2 $EXT_PATH - share/ci/scripts/multi/install_zlib.sh 1.2.12 $EXT_PATH - share/ci/scripts/multi/install_minizip-ng.sh 3.0.6 $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_oiio.sh latest $EXT_PATH - share/ci/scripts/multi/install_osl.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) \ - -DOCIO_USE_OIIO_FOR_APPS=${{ matrix.use-oiio }} - 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 - ./consumer - working-directory: _build/tests/cmake-consumer-dist - - # --------------------------------------------------------------------------- - # Windows latest ext packages - # --------------------------------------------------------------------------- - - windows-latest: - name: 'Windows latest - ' - # 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: 17 - python-version: '3.11' - use-oiio: 'ON' - - build: 2 - build-docs: 'ON' - build-openfx: 'ON' - cxx-standard: 14 - 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 - vcpkg install boost-asio:x64-windows - vcpkg install boost-container:x64-windows - vcpkg install boost-filesystem:x64-windows - vcpkg install boost-math:x64-windows - vcpkg install boost-stacktrace:x64-windows - vcpkg install boost-system:x64-windows - vcpkg install boost-thread:x64-windows - share/ci/scripts/multi/install_pugixml.sh latest $EXT_PATH - 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.2 $EXT_PATH - share/ci/scripts/multi/install_yaml-cpp.sh 0.7.0 $EXT_PATH - share/ci/scripts/multi/install_pystring.sh 1.1.3 $EXT_PATH - share/ci/scripts/multi/install_pybind11.sh 2.9.2 $EXT_PATH - share/ci/scripts/multi/install_expat.sh 2.4.1 $EXT_PATH - share/ci/scripts/multi/install_zlib.sh 1.2.12 $EXT_PATH - share/ci/scripts/multi/install_minizip-ng.sh 3.0.6 $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_oiio.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 \ - -DOCIO_USE_OIIO_FOR_APPS=${{ matrix.use-oiio }} - 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 diff --git a/.github/workflows/gpu_workflow.yml b/.github/workflows/gpu_workflow.yml deleted file mode 100644 index 7933a2fb8..000000000 --- a/.github/workflows/gpu_workflow.yml +++ /dev/null @@ -1,45 +0,0 @@ -# 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: GPU - -on: - push: - # Versioned branches and tags are ignored for OCIO <= 1.x.x - branches-ignore: - - RB-0.* - - RB-1.* - - gh-pages - tags-ignore: - - v0.* - - v1.* - -jobs: - # --------------------------------------------------------------------------- - # Linux GPU (AWS CodeBuild) - # --------------------------------------------------------------------------- - - linux_gpu: - name: 'Linux CentOS 7 VFX CY2020 GPU ' - # Don't run on OCIO forks - if: github.repository == 'AcademySoftwareFoundation/OpenColorIO' - # GH-hosted VM. The build runs in CentOS 7 'container' hard-coded in - # AWS CodeBuild project. - # TODO: Add support for dynamic GH Action defined CodeBuild - # container choice. - runs-on: ubuntu-latest - steps: - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - aws-access-key-id: ${{ secrets.CODEBUILD_ID }} - aws-secret-access-key: ${{ secrets.CODEBUILD_SECRET }} - aws-region: us-west-2 - - name: Run CodeBuild - uses: aws-actions/aws-codebuild-run-build@v1 - with: - project-name: OpenColorIO - buildspec-override: buildspec.yml diff --git a/.github/workflows/platform_latest.yml b/.github/workflows/platform_latest.yml deleted file mode 100644 index 5270340ec..000000000 --- a/.github/workflows/platform_latest.yml +++ /dev/null @@ -1,398 +0,0 @@ -# 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: Platform latest - -on: - pull_request: - branches-ignore: - - RB-0.* - - RB-1.* - - gh-pages - tags-ignore: - - v0.* - - v1.* - paths: - - .github/workflows/platform_latest.yml - schedule: - # Nightly build - - cron: "0 0 * * *" - -jobs: - # --------------------------------------------------------------------------- - # Linux latest ext packages - # --------------------------------------------------------------------------- - - linux_latest: - name: 'Linux Ubuntu latest - <${{ matrix.compiler-desc }} - config=${{ matrix.build-type }}, - shared=${{ matrix.build-shared }}, - cxx=${{ matrix.cxx-standard }}>' - # Don't run on OCIO forks - if: github.repository == 'AcademySoftwareFoundation/OpenColorIO' - runs-on: ubuntu-latest - strategy: - matrix: - build: [1, 2] - include: - # ------------------------------------------------------------------- - # GCC - # ------------------------------------------------------------------- - - build: 1 - build-python: ON - build-type: Release - build-shared: ON - cxx-standard: 23 - cxx-compiler: g++ - cc-compiler: gcc - compiler-desc: GCC - enable-sanitizer: OFF - - build: 2 - build-python: OFF - build-type: Debug - build-shared: ON - cxx-standard: 23 - cxx-compiler: g++ - cc-compiler: gcc - compiler-desc: GCC - enable-sanitizer: ON - # ------------------------------------------------------------------- - # Clang - # ------------------------------------------------------------------- - # TODO: Re-enable clang when the following issue get fixed: - # https://github.com/actions/runner-images/issues/8659 - # - build: 3 - # build-python: ON - # build-type: Release - # build-shared: ON - # cxx-standard: 23 - # cxx-compiler: clang++ - # cc-compiler: clang - # compiler-desc: Clang - # enable-sanitizer: OFF - # - build: 4 - # build-python: OFF - # build-type: Debug - # build-shared: ON - # cxx-standard: 23 - # cxx-compiler: clang++ - # cc-compiler: clang - # compiler-desc: Clang - # enable-sanitizer: ON - env: - CXX: ${{ matrix.cxx-compiler }} - CC: ${{ matrix.cc-compiler }} - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Install tests env - run: share/ci/scripts/linux/yum/install_tests_env.sh - - name: Create build directories - run: | - mkdir _install - mkdir _build - - name: Configure - run: | - cmake ../. \ - -DCMAKE_INSTALL_PREFIX=../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ - -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ - -DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \ - -DOCIO_BUILD_DOCS=OFF \ - -DOCIO_BUILD_OPENFX=ON \ - -DOCIO_BUILD_GPU_TESTS=OFF \ - -DOCIO_BUILD_PYTHON=${{ matrix.build-python}} \ - -DOCIO_USE_SIMD=ON \ - -DOCIO_USE_OIIO_FOR_APPS=OFF \ - -DOCIO_INSTALL_EXT_PACKAGES=ALL \ - -DOCIO_WARNING_AS_ERROR=ON \ - -DOCIO_ENABLE_SANITIZER=${{ matrix.enable-sanitizer }} \ - -DPython_EXECUTABLE=$(which python) - working-directory: _build - - name: Build - run: | - cmake --build . \ - --target install \ - --config ${{ matrix.build-type }} \ - -v \ - -- -j$(nproc) - echo "ocio_build_path=$(pwd)" >> $GITHUB_ENV - working-directory: _build - - name: Test - run: ctest -V -C ${{ matrix.build-type }} - working-directory: _build - - name: Test CMake Consumer with shared OCIO - if: matrix.build-shared == 'ON' - run: | - cmake . \ - -DCMAKE_PREFIX_PATH=../../../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ - -DOCIO_ENABLE_SANITIZER=${{ matrix.enable-sanitizer }} - cmake --build . \ - --config ${{ matrix.build-type }} - ./consumer - working-directory: _build/tests/cmake-consumer-dist - - name: Test CMake Consumer with static OCIO - if: matrix.build-shared == 'OFF' - # The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to - # extract it from the headers, like the other modules. - # - # Prefer the static version of each dependencies by using _STATIC_LIBRARY. - # Alternatively, this can be done by setting _LIBRARY and _INCLUDE_DIR to - # the static version of the package. - run: | - cmake . \ - -DCMAKE_PREFIX_PATH=../../../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ - -Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dexpat_STATIC_LIBRARY=ON \ - -DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -DImath_STATIC_LIBRARY=ON \ - -Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dyaml-cpp_STATIC_LIBRARY=ON \ - -Dyaml-cpp_VERSION=0.7.0 \ - -DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -DZLIB_STATIC_LIBRARY=ON \ - -Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dminizip-ng_STATIC_LIBRARY=ON - cmake --build . \ - --config ${{ matrix.build-type }} - ./consumer - working-directory: _build/tests/cmake-consumer-dist - - # --------------------------------------------------------------------------- - # MacOS latest ext packages - # --------------------------------------------------------------------------- - - macos-latest: - name: 'macOS latest - ' - # Don't run on OCIO forks - if: github.repository == 'AcademySoftwareFoundation/OpenColorIO' - runs-on: macos-latest - strategy: - matrix: - build: [1, 2] - include: - - build: 1 - build-python: ON - build-type: Release - build-shared: ON - cxx-standard: 23 - enable-sanitizer: OFF - python-version: '3.11' - - build: 2 - build-python: OFF - build-type: Debug - build-shared: ON - cxx-standard: 23 - enable-sanitizer: ON - python-version: '3.11' - steps: - - name: Setup Python - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - name: Checkout - uses: actions/checkout@v4 - - name: Install tests env - run: share/ci/scripts/macos/install_tests_env.sh - - name: Create build directories - run: | - mkdir _install - mkdir _build - - name: Configure - run: | - cmake ../. \ - -DCMAKE_INSTALL_PREFIX=../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ - -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ - -DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \ - -DOCIO_BUILD_DOCS=OFF \ - -DOCIO_BUILD_OPENFX=ON \ - -DOCIO_BUILD_GPU_TESTS=OFF \ - -DOCIO_BUILD_PYTHON=${{ matrix.build-python}} \ - -DOCIO_USE_SIMD=ON \ - -DOCIO_USE_OIIO_FOR_APPS=OFF \ - -DOCIO_INSTALL_EXT_PACKAGES=ALL \ - -DOCIO_WARNING_AS_ERROR=ON \ - -DOCIO_ENABLE_SANITIZER=${{ matrix.enable-sanitizer }} \ - -DPython_EXECUTABLE=$(which python) - working-directory: _build - - name: Build - run: | - cmake --build . \ - --target install \ - --config ${{ matrix.build-type }} \ - -- -j$(sysctl -n hw.ncpu) - echo "ocio_build_path=$(pwd)" >> $GITHUB_ENV - working-directory: _build - - name: Test - run: ctest -V -C ${{ matrix.build-type }} - working-directory: _build - - name: Test CMake Consumer with shared OCIO - if: matrix.build-shared == 'ON' - run: | - cmake . \ - -DCMAKE_PREFIX_PATH=../../../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} - cmake --build . \ - --config ${{ matrix.build-type }} - ./consumer - working-directory: _build/tests/cmake-consumer-dist - - name: Test CMake Consumer with static OCIO - if: matrix.build-shared == 'OFF' - # The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to - # extract it from the headers, like the other modules. - # - # Prefer the static version of each dependencies by using _STATIC_LIBRARY. - # Alternatively, this can be done by setting _LIBRARY and _INCLUDE_DIR to - # the static version of the package. - run: | - cmake . \ - -DCMAKE_PREFIX_PATH=../../../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ - -Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dexpat_STATIC_LIBRARY=ON \ - -DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -DImath_STATIC_LIBRARY=ON \ - -Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dyaml-cpp_STATIC_LIBRARY=ON \ - -Dyaml-cpp_VERSION=0.7.0 \ - -DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -DZLIB_STATIC_LIBRARY=ON \ - -Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dminizip-ng_STATIC_LIBRARY=ON - cmake --build . \ - --config ${{ matrix.build-type }} - ./consumer - working-directory: _build/tests/cmake-consumer-dist - - # --------------------------------------------------------------------------- - # Windows latest ext packages - # --------------------------------------------------------------------------- - - windows-latest: - name: 'Windows latest - ' - # Don't run on OCIO forks - if: github.repository == 'AcademySoftwareFoundation/OpenColorIO' - runs-on: windows-latest - strategy: - matrix: - build: [1, 2] - include: - - build: 1 - build-python: ON - build-type: Release - build-shared: ON - cxx-standard: 23 - python-version: '3.11' - - build: 2 - build-python: ON - build-type: Debug - build-shared: ON - cxx-standard: 23 - python-version: '3.11' - steps: - - name: Setup Python - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - name: Checkout - uses: actions/checkout@v4 - - name: Install tests env - run: share/ci/scripts/windows/install_tests_env.sh - shell: bash - - name: Create build directories - run: | - mkdir _install - mkdir _build - shell: bash - - name: Configure - run: | - cmake ../. \ - -DCMAKE_INSTALL_PREFIX=../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ - -DCMAKE_CXX_STANDARD=${{ matrix.cxx-standard }} \ - -DCMAKE_GENERATOR_PLATFORM=x64 \ - -DBUILD_SHARED_LIBS=${{ matrix.build-shared }} \ - -DOCIO_BUILD_DOCS=OFF \ - -DOCIO_BUILD_OPENFX=ON \ - -DOCIO_BUILD_GPU_TESTS=OFF \ - -DOCIO_BUILD_PYTHON=${{ matrix.build-python}} \ - -DOCIO_USE_SIMD=ON \ - -DOCIO_USE_OIIO_FOR_APPS=OFF \ - -DOCIO_INSTALL_EXT_PACKAGES=ALL \ - -DOCIO_WARNING_AS_ERROR=ON \ - -DPython_EXECUTABLE=$(which python) - shell: bash - working-directory: _build - - name: Build - run: | - cmake --build . \ - --target install \ - --config ${{ matrix.build-type }} - echo "ocio_build_path=$(pwd)" >> $GITHUB_ENV - shell: bash - working-directory: _build - - name: Test - run: ctest -V -C ${{ matrix.build-type }} - shell: bash - working-directory: _build - - name: Test CMake Consumer with shared OCIO - if: matrix.build-shared == 'ON' - run: | - cmake . \ - -DCMAKE_PREFIX_PATH=../../../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} - cmake --build . \ - --config ${{ matrix.build-type }} - export PATH=../../../_install/bin:$PATH - ./${{ matrix.build-type }}/consumer - shell: bash - working-directory: _build/tests/cmake-consumer-dist - - name: Test CMake Consumer with static OCIO - if: matrix.build-shared == 'OFF' - # The yaml-cpp_VERSION is set below because Findyaml-cpp.cmake needs it but is unable to - # extract it from the headers, like the other modules. - # - # Prefer the static version of each dependencies by using _STATIC_LIBRARY. - # Alternatively, this can be done by setting _LIBRARY and _INCLUDE_DIR to - # the static version of the package. - run: | - cmake . \ - -DCMAKE_PREFIX_PATH=../../../_install \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \ - -Dexpat_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dexpat_STATIC_LIBRARY=ON \ - -DImath_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -DImath_STATIC_LIBRARY=ON \ - -Dpystring_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dyaml-cpp_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dyaml-cpp_STATIC_LIBRARY=ON \ - -Dyaml-cpp_VERSION=0.7.0 \ - -DZLIB_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -DZLIB_STATIC_LIBRARY=ON \ - -Dminizip-ng_ROOT=${{ env.ocio_build_path }}/ext/dist \ - -Dminizip-ng_STATIC_LIBRARY=ON - cmake --build . \ - --config ${{ matrix.build-type }} - export PATH=../../../_install/bin:$PATH - ./${{ matrix.build-type }}/consumer - shell: bash - working-directory: _build/tests/cmake-consumer-dist diff --git a/.github/workflows/wheel_workflow.yml b/.github/workflows/wheel_workflow.yml deleted file mode 100644 index 531cb3065..000000000 --- a/.github/workflows/wheel_workflow.yml +++ /dev/null @@ -1,314 +0,0 @@ -# SPDX-License-Identifier: BSD-3-Clause -# Copyright Contributors to the OpenColorIO Project. -# - -name: Wheel - -on: [push] - -jobs: - # Linux jobs run in Docker containers (manylinux), so the latest OS version - # is OK. macOS and Windows jobs need to be locked to specific virtual - # environment versions to mitigate issues from OS updates, and will require - # maintenance as OS versions are retired. - # - # Due to documentation build failing on manylinux2010 (maybe too old doxygen - # version), we build on manylinux2014 image, this requires pip >= 19.3. - - # --------------------------------------------------------------------------- - # Source Distribution - # --------------------------------------------------------------------------- - - sdist: - name: Build SDist - runs-on: ubuntu-latest - # Don't run on OCIO forks -# if: | -# github.event_name != 'schedule' || -# github.repository == 'AcademySoftwareFoundation/OpenColorIO' - - steps: - - - uses: actions/checkout@v4 - - - name: Build SDist - run: pipx run build --sdist - - - name: Check metadata - run: pipx run twine check dist/* - - - uses: actions/upload-artifact@v4 - with: - name: cibw-sdist - path: dist/*.tar.gz - - # --------------------------------------------------------------------------- - # Linux Wheels - # --------------------------------------------------------------------------- - - linux: - name: Build wheels on Linux - runs-on: ubuntu-latest - # Don't run on OCIO forks - if: | - github.event_name != 'schedule' || - github.repository == 'AcademySoftwareFoundation/OpenColorIO' - strategy: - matrix: - include: - # ------------------------------------------------------------------- - # CPython 64 bits manylinux_2_28 - # ------------------------------------------------------------------- - - build: CPython 3.7 64 bits manylinux_2_28 - manylinux: manylinux_2_28 - python: cp37-manylinux_x86_64 - arch: x86_64 - - build: CPython 3.8 64 bits manylinux_2_28 - manylinux: manylinux_2_28 - python: cp38-manylinux_x86_64 - arch: x86_64 - - build: CPython 3.9 64 bits manylinux_2_28 - manylinux: manylinux_2_28 - python: cp39-manylinux_x86_64 - arch: x86_64 - - build: CPython 3.10 64 bits manylinux_2_28 - manylinux: manylinux_2_28 - python: cp310-manylinux_x86_64 - arch: x86_64 - - build: CPython 3.11 64 bits manylinux_2_28 - manylinux: manylinux_2_28 - python: cp311-manylinux_x86_64 - arch: x86_64 - - build: CPython 3.12 64 bits manylinux_2_28 - manylinux: manylinux_2_28 - python: cp312-manylinux_x86_64 - arch: x86_64 - # ------------------------------------------------------------------- - # CPython 64 bits manylinux2014 - # ------------------------------------------------------------------- - - build: CPython 3.7 64 bits manylinux2014 - manylinux: manylinux2014 - python: cp37-manylinux_x86_64 - arch: x86_64 - - build: CPython 3.8 64 bits manylinux2014 - manylinux: manylinux2014 - python: cp38-manylinux_x86_64 - arch: x86_64 - - build: CPython 3.9 64 bits manylinux2014 - manylinux: manylinux2014 - python: cp39-manylinux_x86_64 - arch: x86_64 - - build: CPython 3.10 64 bits manylinux2014 - manylinux: manylinux2014 - python: cp310-manylinux_x86_64 - arch: x86_64 - - build: CPython 3.11 64 bits manylinux2014 - manylinux: manylinux2014 - python: cp311-manylinux_x86_64 - arch: x86_64 - - build: CPython 3.12 64 bits manylinux2014 - manylinux: manylinux2014 - python: cp312-manylinux_x86_64 - arch: x86_64 - # ------------------------------------------------------------------- - # CPython ARM 64 bits manylinux2014 - # ------------------------------------------------------------------- - - build: CPython 3.7 ARM 64 bits manylinux2014 - manylinux: manylinux2014 - python: cp37-manylinux_aarch64 - arch: aarch64 - - build: CPython 3.8 ARM 64 bits manylinux2014 - manylinux: manylinux2014 - python: cp38-manylinux_aarch64 - arch: aarch64 - - build: CPython 3.9 ARM 64 bits manylinux2014 - manylinux: manylinux2014 - python: cp39-manylinux_aarch64 - arch: aarch64 - - build: CPython 3.10 ARM 64 bits manylinux2014 - manylinux: manylinux2014 - python: cp310-manylinux_aarch64 - arch: aarch64 - - build: CPython 3.11 ARM 64 bits manylinux2014 - manylinux: manylinux2014 - python: cp311-manylinux_aarch64 - arch: aarch64 - - build: CPython 3.12 ARM 64 bits manylinux2014 - manylinux: manylinux2014 - python: cp312-manylinux_aarch64 - arch: aarch64 - - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-python@v5 - name: Install Python - with: - python-version: '3.8' - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - with: - platforms: all - - - name: Build wheels - uses: pypa/cibuildwheel@v2.16.5 - env: - CIBW_BUILD: ${{ matrix.python }} - CIBW_ARCHS: ${{ matrix.arch }} - CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux }} - CIBW_MANYLINUX_AARCH64_IMAGE: ${{ matrix.manylinux }} - - - uses: actions/upload-artifact@v4 - with: - name: cibw-wheels-${{ matrix.python }}-${{ matrix.manylinux }} - path: ./wheelhouse/*.whl - - # --------------------------------------------------------------------------- - # macOS Wheels - # --------------------------------------------------------------------------- - - macos: - name: Build wheels on macOS - runs-on: macos-12 - # Don't run on OCIO forks - if: | - github.event_name != 'schedule' || - github.repository == 'AcademySoftwareFoundation/OpenColorIO' - strategy: - matrix: - include: - # ------------------------------------------------------------------- - # CPython 64 bits - # ------------------------------------------------------------------- - - build: CPython 3.7 64 bits - python: cp37-macosx_x86_64 - arch: x86_64 - - build: CPython 3.8 64 bits - python: cp38-macosx_x86_64 - arch: x86_64 - - build: CPython 3.9 64 bits - python: cp39-macosx_x86_64 - arch: x86_64 - - build: CPython 3.10 64 bits - python: cp310-macosx_x86_64 - arch: x86_64 - - build: CPython 3.11 64 bits - python: cp311-macosx_x86_64 - arch: x86_64 - - build: CPython 3.12 64 bits - python: cp312-macosx_x86_64 - arch: x86_64 - # ------------------------------------------------------------------- - # CPython ARM 64 bits - # ------------------------------------------------------------------- - - build: CPython 3.8 ARM 64 bits - python: cp38-macosx_arm64 - arch: arm64 - - build: CPython 3.9 ARM 64 bits - python: cp39-macosx_arm64 - arch: arm64 - - build: CPython 3.10 ARM 64 bits - python: cp310-macosx_arm64 - arch: arm64 - - build: CPython 3.11 ARM 64 bits - python: cp311-macosx_arm64 - arch: arm64 - - build: CPython 3.12 ARM 64 bits - python: cp312-macosx_arm64 - arch: arm64 - - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-python@v5 - name: Install Python - with: - python-version: '3.8' - - - name: Build wheels - uses: pypa/cibuildwheel@v2.16.5 - env: - CIBW_BUILD: ${{ matrix.python }} - CIBW_ARCHS: ${{ matrix.arch }} - - - uses: actions/upload-artifact@v4 - with: - name: cibw-wheels-${{ matrix.python }} - path: ./wheelhouse/*.whl - - # --------------------------------------------------------------------------- - # Windows Wheels - # --------------------------------------------------------------------------- - - windows: - name: Build wheels on Windows - runs-on: windows-2022 - # Don't run on OCIO forks - if: | - github.event_name != 'schedule' || - github.repository == 'AcademySoftwareFoundation/OpenColorIO' - strategy: - matrix: - include: - # ------------------------------------------------------------------- - # CPython 64 bits - # ------------------------------------------------------------------- - - build: CPython 3.7 64 bits - python: cp37-win_amd64 - arch: AMD64 - - build: CPython 3.8 64 bits - python: cp38-win_amd64 - arch: AMD64 - - build: CPython 3.9 64 bits - python: cp39-win_amd64 - arch: AMD64 - - build: CPython 3.10 64 bits - python: cp310-win_amd64 - arch: AMD64 - - build: CPython 3.11 64 bits - python: cp311-win_amd64 - arch: AMD64 - - build: CPython 3.12 64 bits - python: cp312-win_amd64 - arch: AMD64 - - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-python@v5 - name: Install Python - with: - python-version: '3.8' - - - name: Build wheels - uses: pypa/cibuildwheel@v2.16.5 - env: - CIBW_BUILD: ${{ matrix.python }} - CIBW_ARCHS: ${{ matrix.arch }} - CIBW_TEST_SKIP: "*" - - - uses: actions/upload-artifact@v4 - with: - name: cibw-wheels-${{ matrix.python }} - path: ./wheelhouse/*.whl - - - upload_pypi: - needs: [sdist, linux, macos, windows] - runs-on: ubuntu-latest -# if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v') - steps: - - uses: actions/setup-python@v5 - - - uses: actions/download-artifact@v4 - with: - pattern: cibw-* - path: dist - merge-multiple: true - - - uses: pypa/gh-action-pypi-publish@release/v1 - with: - user: __token__ - password: ${{ secrets.PYPI_API_TOKEN }} - repository-url: https://test.pypi.org/legacy/