Consolidate release CI workflows into one #1
Workflow file for this run
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
| name: CI | |
| on: | |
| pull_request: | |
| branches: | |
| - 4.x | |
| - 5.x | |
| release: | |
| types: [published, edited] | |
| schedule: | |
| - cron: '0 3 * * 6' | |
| workflow_dispatch: | |
| jobs: | |
| Build-manylinux: | |
| runs-on: ${{ matrix.platform == 'aarch64' && 'opencv-cn-lin-arm64' || 'ubuntu-22.04' }} | |
| defaults: | |
| run: | |
| shell: bash | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ['3.9'] | |
| platform: [x86_64, aarch64] | |
| manylinux: [2014, 2_28] | |
| with_contrib: [0, 1] | |
| without_gui: [0, 1] | |
| build_sdist: [0] | |
| include: | |
| - platform: aarch64 | |
| manylinux: 2014 | |
| DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64:20260102 | |
| - platform: x86_64 | |
| manylinux: 2014 | |
| DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20260102 | |
| - platform: x86_64 | |
| manylinux: 2_28 | |
| DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux_2_28-x86-64:20260102 | |
| - platform: aarch64 | |
| manylinux: 2_28 | |
| DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux_2_28-aarch64:20260102 | |
| env: | |
| ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
| REPO_DIR: . | |
| PROJECT_SPEC: opencv-python | |
| MB_PYTHON_VERSION: ${{ matrix.python-version }} | |
| TRAVIS_PYTHON_VERSION: ${{ matrix.python-version }} | |
| MB_ML_VER: ${{ matrix.manylinux }} | |
| TRAVIS_BUILD_DIR: ${{ github.workspace }} | |
| CONFIG_PATH: travis_config.sh | |
| DOCKER_IMAGE: ${{ matrix.DOCKER_IMAGE }} | |
| USE_CCACHE: 0 | |
| UNICODE_WIDTH: 32 | |
| PLAT: ${{ matrix.platform }} | |
| SDIST: ${{ matrix.build_sdist || 0 }} | |
| ENABLE_HEADLESS: ${{ matrix.without_gui }} | |
| ENABLE_CONTRIB: ${{ matrix.with_contrib }} | |
| steps: | |
| - name: Cleanup | |
| run: find . -mindepth 1 -delete | |
| working-directory: ${{ github.workspace }} | |
| - name: Setup environment | |
| run: | | |
| if [[ "${{ github.event_name }}" == "schedule" || "${{ github.event_name }}" == "workflow_dispatch" ]]; then | |
| echo "ENABLE_ROLLING=1" >> $GITHUB_ENV | |
| fi | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: false | |
| fetch-depth: 0 | |
| - name: Build a package | |
| run: source scripts/build.sh | |
| - name: Saving a wheel accordingly to matrix | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheel-${{ matrix.platform }}-${{ matrix.manylinux }}-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }} | |
| path: wheelhouse/opencv*.whl | |
| Build-windows: | |
| runs-on: windows-2025 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ['3.9'] | |
| platform: [x86, x64] | |
| with_contrib: [0, 1] | |
| without_gui: [0, 1] | |
| build_sdist: [0] | |
| env: | |
| ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
| SDIST: ${{ matrix.build_sdist || 0 }} | |
| ENABLE_HEADLESS: ${{ matrix.without_gui }} | |
| ENABLE_CONTRIB: ${{ matrix.with_contrib }} | |
| OPENCV_TEST_DATA_PATH: ${{ github.workspace }}\opencv_extra\testdata | |
| steps: | |
| - name: Cleanup | |
| shell: bash | |
| run: | | |
| rm -rf ./* || true | |
| rm -rf ./.??* || true | |
| working-directory: ${{ github.workspace }} | |
| - name: Setup environment | |
| shell: bash | |
| run: | | |
| if [[ "${{ github.event_name }}" == "schedule" || "${{ github.event_name }}" == "workflow_dispatch" ]]; then | |
| echo "ENABLE_ROLLING=1" >> $GITHUB_ENV | |
| fi | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: false | |
| fetch-depth: 0 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| architecture: ${{ matrix.platform }} | |
| - name: Setup MSBuild.exe | |
| uses: microsoft/setup-msbuild@v1.1 | |
| - name: Setup NASM | |
| uses: ilammy/setup-nasm@v1 | |
| - name: Build a package | |
| # CMake 3.25 regression fix. See https://stackoverflow.com/questions/74162633/problem-compiling-from-source-opencv-with-mvsc2019-in-64-bit-version | |
| run: | | |
| python --version | |
| python -m pip install --upgrade pip | |
| python -m pip install --upgrade setuptools | |
| python -m pip install cmake==3.24.2 | |
| python -m pip install toml && python -c "import toml; c = toml.load('pyproject.toml'); print('\n'.join(c['build-system']['requires']))" >> requirements.txt | python -m pip install -r requirements.txt | |
| set "CI_BUILD=1" && python setup.py bdist_wheel --py-limited-api=cp37 --dist-dir=%cd%\wheelhouse -v | |
| shell: cmd | |
| - name: Saving all wheels | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }}-${{ matrix.platform }} | |
| path: wheelhouse/opencv* | |
| Build-macosm1: | |
| runs-on: python-macos12-m1 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ['3.9'] | |
| platform: [x64] | |
| with_contrib: [0, 1] | |
| without_gui: [0, 1] | |
| build_sdist: [0] | |
| env: | |
| CI_BUILD: 1 | |
| SDIST: ${{ matrix.build_sdist || 0 }} | |
| ENABLE_HEADLESS: ${{ matrix.without_gui }} | |
| ENABLE_CONTRIB: ${{ matrix.with_contrib }} | |
| PIP_INDEX_URL: https://pypi.tuna.tsinghua.edu.cn/simple | |
| steps: | |
| - name: Cleanup | |
| run: find . -mindepth 1 -delete | |
| working-directory: ${{ github.workspace }} | |
| - name: Setup environment | |
| run: | | |
| if [[ "${{ github.event_name }}" == "schedule" || "${{ github.event_name }}" == "workflow_dispatch" ]]; then | |
| echo "ENABLE_ROLLING=1" >> $GITHUB_ENV | |
| fi | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: false | |
| fetch-depth: 0 | |
| - name: Build a package | |
| run: | | |
| git submodule update --init multibuild | |
| echo $ENABLE_CONTRIB > contrib.enabled | |
| echo $ENABLE_HEADLESS > headless.enabled | |
| export MACOSX_DEPLOYMENT_TARGET=13.0 | |
| python${{ matrix.python-version }} -m pip install toml && python${{ matrix.python-version }} -c 'import toml; c = toml.load("pyproject.toml"); print("\n".join(c["build-system"]["requires"]))' | python${{ matrix.python-version }} -m pip install -r /dev/stdin | |
| python${{ matrix.python-version }} setup.py bdist_wheel --py-limited-api=cp37 --dist-dir=wheelhouse -v | |
| delocate-wheel ${{ github.workspace }}/wheelhouse/opencv* | |
| - name: Saving a wheel accordingly to matrix | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }} | |
| path: wheelhouse/opencv*.whl | |
| Build-macos: | |
| runs-on: python-macos-intel | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ['3.9'] | |
| platform: [x64] | |
| with_contrib: [0, 1] | |
| without_gui: [0, 1] | |
| build_sdist: [0] | |
| env: | |
| CI_BUILD: 1 | |
| ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
| REPO_DIR: . | |
| PROJECT_SPEC: opencv-python | |
| MB_PYTHON_VERSION: ${{ matrix.python-version }} | |
| TRAVIS_PYTHON_VERSION: ${{ matrix.python-version }} | |
| MB_ML_VER: 2014 | |
| TRAVIS_BUILD_DIR: ${{ github.workspace }} | |
| TRAVIS_OS_NAME: osx | |
| CONFIG_PATH: travis_config.sh | |
| USE_CCACHE: 1 | |
| UNICODE_WIDTH: 32 | |
| PLAT: x86_64 | |
| SDIST: ${{ matrix.build_sdist || 0 }} | |
| ENABLE_HEADLESS: ${{ matrix.without_gui }} | |
| ENABLE_CONTRIB: ${{ matrix.with_contrib }} | |
| PIP_INDEX_URL: https://pypi.tuna.tsinghua.edu.cn/simple | |
| steps: | |
| - name: Cleanup | |
| run: find . -mindepth 1 -delete | |
| working-directory: ${{ github.workspace }} | |
| - name: Setup environment | |
| run: | | |
| if [[ "${{ github.event_name }}" == "schedule" || "${{ github.event_name }}" == "workflow_dispatch" ]]; then | |
| echo "ENABLE_ROLLING=1" >> $GITHUB_ENV | |
| fi | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: false | |
| fetch-depth: 0 | |
| - name: Build a package | |
| run: | | |
| git submodule update --init multibuild | |
| echo $ENABLE_CONTRIB > contrib.enabled | |
| echo $ENABLE_HEADLESS > headless.enabled | |
| export MACOSX_DEPLOYMENT_TARGET=14.0 | |
| python${{ matrix.python-version }} -m pip install toml && python${{ matrix.python-version }} -c 'import toml; c = toml.load("pyproject.toml"); print("\n".join(c["build-system"]["requires"]))' | python${{ matrix.python-version }} -m pip install -r /dev/stdin | |
| python${{ matrix.python-version }} setup.py bdist_wheel --py-limited-api=cp37 --dist-dir=wheelhouse -v | |
| delocate-wheel ${{ github.workspace }}/wheelhouse/opencv* | |
| - name: Saving a wheel accordingly to matrix | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }} | |
| path: wheelhouse/opencv*.whl | |
| Test-manylinux: | |
| needs: [Build-manylinux] | |
| runs-on: ${{ matrix.platform == 'aarch64' && 'opencv-cn-lin-arm64' || 'ubuntu-22.04' }} | |
| defaults: | |
| run: | |
| shell: bash | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13'] | |
| platform: [x86_64, aarch64] | |
| manylinux: [2014, 2_28] | |
| with_contrib: [0, 1] | |
| without_gui: [0, 1] | |
| build_sdist: [0] | |
| env: | |
| ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
| MB_PYTHON_VERSION: ${{ matrix.python-version }} | |
| NP_TEST_DEP: numpy==1.19.4 | |
| NP_TEST_DEP_LATEST: numpy==2.2.6 | |
| CONFIG_PATH: travis_config.sh | |
| PLAT: ${{ matrix.platform }} | |
| SDIST: ${{ matrix.build_sdist || 0 }} | |
| ENABLE_HEADLESS: ${{ matrix.without_gui }} | |
| ENABLE_CONTRIB: ${{ matrix.with_contrib }} | |
| DOCKER_TEST_IMAGE: ${{ matrix.platform == 'aarch64' && 'quay.io/opencv-ci/multibuild-focal_arm64v8:2025-11-13' || '' }} | |
| steps: | |
| - name: Cleanup | |
| run: find . -mindepth 1 -delete | |
| working-directory: ${{ github.workspace }} | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: true | |
| fetch-depth: 0 | |
| - name: Setup Environment variables | |
| run: if [ "3.10" == "${{ matrix.python-version }}" -o "3.11" == "${{ matrix.python-version }}" -o "3.12" == "${{ matrix.python-version }}" -o "3.13" == "${{ matrix.python-version }}" -o "3.14" == "${{ matrix.python-version }}" ]; then echo "TEST_DEPENDS=$(echo $NP_TEST_DEP_LATEST)" >> $GITHUB_ENV; else echo "TEST_DEPENDS=$(echo $NP_TEST_DEP)" >> $GITHUB_ENV; fi | |
| - name: Download a wheel accordingly to matrix | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: wheel-${{ matrix.platform }}-${{ matrix.manylinux }}-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }} | |
| path: wheelhouse/ | |
| - name: Package installation and run tests | |
| run: source scripts/install.sh | |
| Test-windows: | |
| needs: [Build-windows] | |
| runs-on: windows-2025 | |
| defaults: | |
| run: | |
| shell: cmd | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13'] | |
| platform: [x86, x64] | |
| with_contrib: [0, 1] | |
| without_gui: [0, 1] | |
| build_sdist: [0] | |
| env: | |
| ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
| OPENCV_TEST_DATA_PATH: ${{ github.workspace }}\opencv_extra\testdata | |
| PYLINT_TEST_FILE: ${{ github.workspace }}\opencv\samples\python\squares.py | |
| PlatformToolset: v143 | |
| steps: | |
| - name: Cleanup | |
| shell: bash | |
| run: | | |
| rm -rf ./* || true | |
| rm -rf ./.??* || true | |
| working-directory: ${{ github.workspace }} | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| fetch-depth: 0 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| architecture: ${{ matrix.platform }} | |
| - name: Download a wheel accordingly to matrix | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }}-${{ matrix.platform }} | |
| path: wheelhouse/ | |
| - name: Package installation | |
| run: | | |
| cd ${{ github.workspace }}/tests | |
| &python -m pip install --user --no-warn-script-location (ls "../wheelhouse/opencv*.whl") | |
| if ($LastExitCode -ne 0) {throw $LastExitCode} | |
| python get_build_info.py | |
| shell: powershell | |
| - name: Run tests | |
| run: | | |
| cd ${{ github.workspace }}/opencv | |
| python modules\python\test\test.py -v --repo . | |
| - name: Pylint test | |
| run: | | |
| python -m pip install pylint==2.15.9 | |
| cd ${{ github.workspace }}\tests | |
| python -m pylint $PYLINT_TEST_FILE | |
| Test-macosm1: | |
| needs: [Build-macosm1] | |
| runs-on: python-macos12-m1 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] | |
| platform: [x64] | |
| with_contrib: [0, 1] | |
| without_gui: [0, 1] | |
| build_sdist: [0] | |
| env: | |
| OPENCV_TEST_DATA_PATH: ${{ github.workspace }}/opencv_extra/testdata | |
| PYLINT_TEST_FILE: ${{ github.workspace }}/opencv/samples/python/squares.py | |
| PIP_INDEX_URL: https://pypi.tuna.tsinghua.edu.cn/simple | |
| steps: | |
| - name: Cleanup | |
| run: find . -mindepth 1 -delete | |
| working-directory: ${{ github.workspace }} | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: true | |
| fetch-depth: 0 | |
| - name: Download a wheel accordingly to matrix | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }} | |
| path: wheelhouse/ | |
| - name: Create Venv for test | |
| run: | | |
| test -d "${{ github.workspace }}/opencv_test" && rm -rf "${{ github.workspace }}/opencv_test" | |
| python${{ matrix.python-version }} -m venv ${{ github.workspace }}/opencv_test | |
| - name: Package installation | |
| run: | | |
| source ${{ github.workspace }}/opencv_test/bin/activate | |
| python${{ matrix.python-version }} -m pip install --upgrade pip | |
| python${{ matrix.python-version }} -m pip install --no-cache --force-reinstall wheelhouse/opencv*.whl | |
| cd ${{ github.workspace }}/tests | |
| python${{ matrix.python-version }} get_build_info.py | |
| - name: Run tests | |
| run: | | |
| source ${{ github.workspace }}/opencv_test/bin/activate | |
| cd ${{ github.workspace }}/opencv | |
| python${{ matrix.python-version }} modules/python/test/test.py -v --repo . | |
| - name: Pylint test | |
| run: | | |
| source ${{ github.workspace }}/opencv_test/bin/activate | |
| python${{ matrix.python-version }} -m pip install pylint==2.15.9 | |
| cd ${{ github.workspace }}/tests | |
| python${{ matrix.python-version }} -m pylint $PYLINT_TEST_FILE | |
| Test-macos: | |
| needs: [Build-macos] | |
| runs-on: python-macos-intel | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] | |
| platform: [x64] | |
| with_contrib: [0, 1] | |
| without_gui: [0, 1] | |
| build_sdist: [0] | |
| env: | |
| ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
| MB_PYTHON_VERSION: ${{ matrix.python-version }} | |
| NP_TEST_DEP: numpy==1.19.4 | |
| NP_TEST_DEP_LATEST: numpy==2.2.6 | |
| CONFIG_PATH: travis_config.sh | |
| PLAT: x86_64 | |
| OPENCV_TEST_DATA_PATH: ${{ github.workspace }}/opencv_extra/testdata | |
| PYLINT_TEST_FILE: ${{ github.workspace }}/opencv/samples/python/squares.py | |
| PIP_INDEX_URL: https://pypi.tuna.tsinghua.edu.cn/simple | |
| steps: | |
| - name: Cleanup | |
| run: find . -mindepth 1 -delete | |
| working-directory: ${{ github.workspace }} | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: true | |
| fetch-depth: 0 | |
| - name: Download a wheel accordingly to matrix | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }} | |
| path: wheelhouse/ | |
| - name: Create Venv for test | |
| run: | | |
| test -d "${{ github.workspace }}/opencv_test" && rm -rf "${{ github.workspace }}/opencv_test" | |
| python${{ matrix.python-version }} -m venv ${{ github.workspace }}/opencv_test | |
| - name: Package installation | |
| run: | | |
| source ${{ github.workspace }}/opencv_test/bin/activate | |
| python${{ matrix.python-version }} -m pip install --upgrade pip | |
| python${{ matrix.python-version }} -m pip install --no-cache --force-reinstall wheelhouse/opencv*.whl | |
| cd ${{ github.workspace }}/tests | |
| python${{ matrix.python-version }} get_build_info.py | |
| - name: Run tests | |
| run: | | |
| source ${{ github.workspace }}/opencv_test/bin/activate | |
| cd ${{ github.workspace }}/opencv | |
| python${{ matrix.python-version }} modules/python/test/test.py -v --repo . | |
| - name: Pylint test | |
| run: | | |
| source ${{ github.workspace }}/opencv_test/bin/activate | |
| python${{ matrix.python-version }} -m pip install pylint==2.15.9 | |
| cd ${{ github.workspace }}/tests | |
| python${{ matrix.python-version }} -m pylint $PYLINT_TEST_FILE | |
| Build_sdist: | |
| runs-on: ubuntu-22.04 | |
| defaults: | |
| run: | |
| shell: bash | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: [3.8] | |
| platform: [x64] | |
| with_contrib: [0, 1] | |
| without_gui: [0, 1] | |
| build_sdist: [1] | |
| env: | |
| ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
| REPO_DIR: . | |
| PROJECT_SPEC: opencv-python | |
| PLAT: x86_64 | |
| MB_PYTHON_VERSION: ${{ matrix.python-version }} | |
| TRAVIS_PYTHON_VERSION: ${{ matrix.python-version }} | |
| MB_ML_VER: 2014 | |
| NP_TEST_DEP: numpy==1.19.4 | |
| TRAVIS_BUILD_DIR: ${{ github.workspace }} | |
| CONFIG_PATH: travis_config.sh | |
| DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20260102 | |
| USE_CCACHE: 1 | |
| UNICODE_WIDTH: 32 | |
| SDIST: ${{ matrix.build_sdist || 0 }} | |
| ENABLE_HEADLESS: ${{ matrix.without_gui || 0 }} | |
| ENABLE_CONTRIB: ${{ matrix.with_contrib || 0 }} | |
| steps: | |
| - name: Cleanup | |
| run: find . -mindepth 1 -delete | |
| working-directory: ${{ github.workspace }} | |
| - name: Setup environment | |
| run: | | |
| if [[ "${{ github.event_name }}" == "schedule" || "${{ github.event_name }}" == "workflow_dispatch" ]]; then | |
| echo "ENABLE_ROLLING=1" >> $GITHUB_ENV | |
| fi | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: false | |
| fetch-depth: 0 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| architecture: ${{ matrix.platform }} | |
| - name: Build a package | |
| run: | | |
| set -e | |
| # Build and package | |
| set -x | |
| python -m pip install --upgrade pip | |
| python -m pip install scikit-build | |
| python setup.py sdist --formats=gztar | |
| set +x | |
| # Install and run tests | |
| set -x | |
| echo "skipping tests because of sdist" | |
| - name: saving artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }} | |
| path: dist/opencv*.tar.gz | |
| Release_rolling: | |
| if: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} | |
| needs: | |
| - Build-manylinux | |
| - Build-windows | |
| - Build-macosm1 | |
| - Build-macos | |
| - Test-manylinux | |
| - Test-windows | |
| - Test-macosm1 | |
| - Test-macos | |
| runs-on: ubuntu-22.04 | |
| environment: opencv-python-rolling-release | |
| defaults: | |
| run: | |
| shell: bash | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| path: wheelhouse/ | |
| - name: Upload wheels for opencv_python_rolling | |
| run: | | |
| python -m pip install twine | |
| python -m twine upload -u ${{ secrets.OPENCV_PYTHON_ROLLING_USERNAME }} -p ${{ secrets.OPENCV_PYTHON_ROLLING_PASSWORD }} --skip-existing wheelhouse/wheel-*/opencv_python_rolling-* | |
| - name: Upload wheels for opencv_contrib_python_rolling | |
| run: | | |
| python -m pip install twine | |
| python -m twine upload -u ${{ secrets.OPENCV_CONTRIB_PYTHON_ROLLING_USERNAME }} -p ${{ secrets.OPENCV_CONTRIB_PYTHON_ROLLING_PASSWORD }} --skip-existing wheelhouse/wheel-*/opencv_contrib_python_rolling-* | |
| - name: Upload wheels for opencv_python_headless_rolling | |
| run: | | |
| python -m pip install twine | |
| python -m twine upload -u ${{ secrets.OPENCV_PYTHON_HEADLESS_ROLLING_USERNAME }} -p ${{ secrets.OPENCV_PYTHON_HEADLESS_ROLLING_PASSWORD }} --skip-existing wheelhouse/wheel-*/opencv_python_headless_rolling-* | |
| - name: Upload wheels for opencv_contrib_python_headless_rolling | |
| run: | | |
| python -m pip install twine | |
| python -m twine upload -u ${{ secrets.OPENCV_CONTRIB_PYTHON_HEADLESS_ROLLING_USERNAME }} -p ${{ secrets.OPENCV_CONTRIB_PYTHON_HEADLESS_ROLLING_PASSWORD }} --skip-existing wheelhouse/wheel-*/opencv_contrib_python_headless_rolling-* | |
| Pre-release: | |
| if: github.event_name == 'release' && github.event.release.prerelease | |
| needs: | |
| - Build-manylinux | |
| - Build-windows | |
| - Build-macosm1 | |
| - Build-macos | |
| - Build_sdist | |
| - Test-manylinux | |
| - Test-windows | |
| - Test-macosm1 | |
| - Test-macos | |
| runs-on: ubuntu-22.04 | |
| environment: test-opencv-python-release | |
| defaults: | |
| run: | |
| shell: bash | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| path: wheelhouse/ | |
| - name: Upload all wheels | |
| run: | | |
| tree | |
| python -m pip install twine | |
| python -m twine upload --repository testpypi -u ${{ secrets.PYPI_USERNAME }} -p ${{ secrets.PYPI_PASSWORD }} --skip-existing wheelhouse/wheel-*/opencv_* wheelhouse/wheel-*/opencv-* | |
| Release: | |
| if: github.event_name == 'release' && !github.event.release.prerelease | |
| needs: | |
| - Build-manylinux | |
| - Build-windows | |
| - Build-macosm1 | |
| - Build-macos | |
| - Build_sdist | |
| - Test-manylinux | |
| - Test-windows | |
| - Test-macosm1 | |
| - Test-macos | |
| runs-on: ubuntu-22.04 | |
| environment: opencv-python-release | |
| defaults: | |
| run: | |
| shell: bash | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| path: wheelhouse/ | |
| - name: Upload wheels for opencv_python | |
| run: | | |
| python -m pip install twine | |
| python -m twine upload -u ${{ secrets.OPENCV_PYTHON_USERNAME }} -p ${{ secrets.OPENCV_PYTHON_PASSWORD }} --skip-existing wheelhouse/wheel-*/opencv_python-* wheelhouse/wheel-*/opencv-python-[^h]* | |
| - name: Upload wheels for opencv_contrib_python | |
| run: | | |
| python -m pip install twine | |
| python -m twine upload -u ${{ secrets.OPENCV_CONTRIB_PYTHON_USERNAME }} -p ${{ secrets.OPENCV_CONTRIB_PYTHON_PASSWORD }} --skip-existing wheelhouse/wheel-*/opencv_contrib_python-* wheelhouse/wheel-*/opencv-contrib-python-[^h]* | |
| - name: Upload wheels for opencv_python_headless | |
| run: | | |
| python -m pip install twine | |
| python -m twine upload -u ${{ secrets.OPENCV_PYTHON_HEADLESS_USERNAME }} -p ${{ secrets.OPENCV_PYTHON_HEADLESS_PASSWORD }} --skip-existing wheelhouse/wheel-*/opencv_python_headless-* wheelhouse/wheel-*/opencv-python-headless-* | |
| - name: Upload wheels for opencv_contrib_python_headless | |
| run: | | |
| python -m pip install twine | |
| python -m twine upload -u ${{ secrets.OPENCV_CONTRIB_PYTHON_HEADLESS_USERNAME }} -p ${{ secrets.OPENCV_CONTRIB_PYTHON_HEADLESS_PASSWORD }} --skip-existing wheelhouse/wheel-*/opencv_contrib_python_headless-* wheelhouse/wheel-*/opencv-contrib-python-headless-* |