Skip to content
53 changes: 17 additions & 36 deletions .github/workflows/build_wheels_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,18 @@ on:

jobs:
build:
runs-on: ${{ matrix.os }}
runs-on: ubuntu-20.04
defaults:
run:
shell: bash

strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ['3.6']
platform: [x64]
with_contrib: [0, 1]
without_gui: [0, 1]
build_sdist: [0]

env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
REPO_DIR: .
Expand All @@ -40,34 +37,32 @@ jobs:
MB_ML_VER: 2014
TRAVIS_BUILD_DIR: ${{ github.workspace }}
CONFIG_PATH: travis_config.sh
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014:${PLAT}
USE_CCACHE: 1
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20220628
USE_CCACHE: 0
UNICODE_WIDTH: 32
PLAT: x86_64
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: Checkout
uses: actions/checkout@v2
with:
submodules: false
fetch-depth: 0

- name: Update submodules
if: github.event_name == 'pull_request'
run: git submodule update --remote

- name: Build a package
run: source scripts/build.sh

- name: Saving all wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: wheelhouse/opencv*.whl

- name: Saving a wheel accordingly to matrix
uses: actions/upload-artifact@v2
with:
Expand All @@ -76,64 +71,57 @@ jobs:

test:
needs: [build]
runs-on: ${{ matrix.os }}
runs-on: ubuntu-20.04
defaults:
run:
shell: bash

strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ['3.6', '3.7', '3.8', '3.9', '3.10']
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==1.21.2
CONFIG_PATH: travis_config.sh
PLAT: x86_64

steps:
- name: Cleanup
run: find . -mindepth 1 -delete
working-directory: ${{ github.workspace }}
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
fetch-depth: 0

- name: Setup Environment variables
run: if [ "3.10" == "${{ 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@v2
with:
name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }}
path: wheelhouse/

- name: Package installation and run tests
run: source scripts/install.sh

build_sdist:
runs-on: ${{ matrix.os }}
runs-on: ubuntu-20.04
defaults:
run:
shell: bash

strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
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: .
Expand All @@ -146,30 +134,29 @@ jobs:
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:${PLAT}
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20220628
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: Checkout
uses: actions/checkout@v2
with:
submodules: false
fetch-depth: 0

- name: Update submodules
if: github.event_name == 'pull_request'
run: git submodule update --remote

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.platform }}

- name: Build a package
run: |
set -e
Expand All @@ -182,7 +169,6 @@ jobs:
# Install and run tests
set -x
echo "skipping tests because of sdist"

- name: saving artifacts
uses: actions/upload-artifact@v2
with:
Expand All @@ -192,7 +178,7 @@ jobs:
test_release_opencv_python:
if: github.event_name == 'release' && github.event.release.prerelease
needs: [build, build_sdist, test]
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
environment: test-opencv-python-release
defaults:
run:
Expand All @@ -202,7 +188,6 @@ jobs:
with:
name: wheels
path: wheelhouse/

- name: Upload all wheels
run: |
python -m pip install twine
Expand All @@ -211,7 +196,7 @@ jobs:
release_opencv_python:
if: github.event_name == 'release' && !github.event.release.prerelease
needs: [build, build_sdist, test]
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
environment: opencv-python-release
defaults:
run:
Expand All @@ -221,22 +206,18 @@ jobs:
with:
name: wheels
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/opencv_python-* wheelhouse/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/opencv_contrib_python-* wheelhouse/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/opencv_python_headless-* wheelhouse/opencv-python-headless-*

- name: Upload wheels for opencv_contrib_python_headless
run: |
python -m pip install twine
Expand Down
41 changes: 11 additions & 30 deletions .github/workflows/build_wheels_linux_arm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,18 @@ on:

jobs:
build_arm:
runs-on: ${{ matrix.os }}
runs-on: opencv-cn-lin-arm64
defaults:
run:
shell: bash

strategy:
fail-fast: false
matrix:
os: [ARM64]
python-version: ['3.6']
platform: [x64]
with_contrib: [0, 1]
without_gui: [0, 1]
build_sdist: [0]

env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
REPO_DIR: .
Expand All @@ -41,33 +38,30 @@ jobs:
MB_ML_VER: 2014
TRAVIS_BUILD_DIR: ${{ github.workspace }}
CONFIG_PATH: travis_config.sh
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014:${PLAT}
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64:20220628
USE_CCACHE: 0
UNICODE_WIDTH: 32
SDIST: ${{ matrix.build_sdist || 0 }}
ENABLE_HEADLESS: ${{ matrix.without_gui }}
ENABLE_CONTRIB: ${{ matrix.with_contrib }}

steps:
- name: UID
run: id -u
- name: Cleanup
if: always()
uses: AutoModality/action-clean@v1

run: find . -mindepth 1 -delete
working-directory: ${{ github.workspace }}
- name: Checkout
uses: actions/checkout@v2
with:
submodules: false
fetch-depth: 0

- name: Build a package
run: source scripts/build.sh

- name: Saving all wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: wheelhouse/opencv*.whl

- name: Saving a wheel accordingly to matrix
uses: actions/upload-artifact@v2
with:
Expand All @@ -76,21 +70,18 @@ jobs:

test:
needs: [build_arm]
runs-on: ${{ matrix.os }}
runs-on: opencv-cn-lin-arm64
defaults:
run:
shell: bash

strategy:
fail-fast: false
matrix:
os: [ARM64]
python-version: ['3.6', '3.7', '3.8', '3.9', '3.10']
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 }}
Expand All @@ -100,34 +91,29 @@ jobs:
CONFIG_PATH: travis_config.sh
DOCKER_TEST_IMAGE: multibuild/focal_arm64v8
UNICODE_WIDTH: 32

steps:
- name: Cleanup
if: always()
uses: AutoModality/action-clean@v1

run: find . -mindepth 1 -delete
working-directory: ${{ github.workspace }}
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
fetch-depth: 0

- name: Setup Environment variables
run: if [ "3.10" == "${{ 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@v2
with:
name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }}
path: wheelhouse/

- name: Package installation and run tests
run: source scripts/install.sh

test_release_opencv_python:
if: github.event_name == 'release' && github.event.release.prerelease
needs: [build_arm, test]
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
environment: test-opencv-python-release
defaults:
run:
Expand All @@ -137,7 +123,6 @@ jobs:
with:
name: wheels
path: wheelhouse/

- name: Upload all wheels
run: |
python -m pip install twine
Expand All @@ -146,7 +131,7 @@ jobs:
release_opencv_python:
if: github.event_name == 'release' && !github.event.release.prerelease
needs: [build_arm, test]
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
environment: opencv-python-release
defaults:
run:
Expand All @@ -156,22 +141,18 @@ jobs:
with:
name: wheels
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/opencv_python-*

- 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/opencv_contrib_python-*

- 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/opencv_python_headless-*

- name: Upload wheels for opencv_contrib_python_headless
run: |
python -m pip install twine
Expand Down
Loading