Skip to content

Linux x86_64

Linux x86_64 #23

name: Linux x86_64
on:
pull_request:
branches:
- master
- 3.4
- 4.x
- 5.x
paths-ignore:
- '.github/workflows/build_wheels_linux_arm.yml'
- '.github/workflows/build_wheels_windows*'
- '.github/workflows/build_wheels_macos*'
release:
types: [published, edited]
workflow_dispatch:
jobs:
Build:
runs-on: ubuntu-20.04
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
python-version: ['3.10', '3.11', '3.12']
platform: [x64]
with_contrib: [1] # [0, 1]
without_gui: [1] # [0, 1]
build_sdist: [0]
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: 2014
TRAVIS_BUILD_DIR: ${{ github.workspace }}
CONFIG_PATH: travis_config.sh
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20230628
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: 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: Log cmake stuff
continue-on-error: true
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: CMake build dir
path: /io/_skbuild/linux-x86_64-3.7
- name: Saving all wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: wheelhouse/*.whl
- name: Saving a wheel accordingly to matrix
uses: actions/upload-artifact@v3
with:
name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }}
path: wheelhouse/*.whl
Test:
needs: [Build]
runs-on: ubuntu-20.04
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
python-version: ['3.10', '3.11', '3.12']
platform: [x64]
with_contrib: [1] # [0, 1]
without_gui: [1] # [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.24.0
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@v3
with:
submodules: true
fetch-depth: 0
- name: Setup Environment variables
run: if [ "3.10" == "${{ matrix.python-version }}" -o "3.11" == "${{ 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@v3
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
Release_rolling:
if: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }}
needs: [Build, Test]
runs-on: ubuntu-20.04
environment: opencv-python-rolling-release
defaults:
run:
shell: bash
steps:
- uses: actions/download-artifact@v3
with:
name: wheels
path: wheelhouse/
- name: Upload wheels for opencv_python_rolling
run: |
python -m pip install twine
python -m twine upload --repository ${{ secrets.PIPY_REP_URL }} -u ${{ secrets.PYPI_USERNAME }} -p ${{ secrets.PYPI_PASSWORD }} --skip-existing wheelhouse/*_python_rolling-* wheelhouse/*-python-rolling-*
- name: Upload wheels for opencv_contrib_python_rolling
run: |
python -m pip install twine
python -m twine upload --repository ${{ secrets.PIPY_REP_URL }} -u ${{ secrets.PYPI_USERNAME }} -p ${{ secrets.PYPI_PASSWORD }} --skip-existing wheelhouse/*_contrib_python_rolling-* wheelhouse/*-contrib-python-rolling-*
- name: Upload wheels for opencv_python_headless_rolling
run: |
python -m pip install twine
python -m twine upload --repository ${{ secrets.PIPY_REP_URL }} -u ${{ secrets.PYPI_USERNAME }} -p ${{ secrets.PYPI_PASSWORD }} --skip-existing wheelhouse/*_python_headless_rolling-* wheelhouse/*-python-headless-rolling-*
- name: Upload wheels for opencv_contrib_python_headless_rolling
run: |
python -m pip install twine
python -m twine upload --repository ${{ secrets.PIPY_REP_URL }} -u ${{ secrets.PYPI_USERNAME }} -p ${{ secrets.PYPI_PASSWORD }} --skip-existing wheelhouse/*_contrib_python_headless_rolling-* wheelhouse/*-contrib-python-headless-rolling-*
Pre-release:
if: github.event_name == 'release' && github.event.release.prerelease
needs: [Build, Build_sdist, Test]

Check failure on line 155 in .github/workflows/build_wheels_linux.yml

View workflow run for this annotation

GitHub Actions / Linux x86_64

Invalid workflow file

The workflow is not valid. .github/workflows/build_wheels_linux.yml (Line: 155, Col: 20): Job 'Pre-release' depends on unknown job 'Build_sdist'. .github/workflows/build_wheels_linux.yml (Line: 173, Col: 20): Job 'Release' depends on unknown job 'Build_sdist'.
runs-on: ubuntu-20.04
environment: test-opencv-python-release
defaults:
run:
shell: bash
steps:
- uses: actions/download-artifact@v3
with:
name: wheels
path: wheelhouse/
- name: Upload all wheels
run: |
python -m pip install twine
python -m twine upload --repository ${{ secrets.PIPY_REP_URL }} -u ${{ secrets.PYPI_USERNAME }} -p ${{ secrets.PYPI_PASSWORD }} --skip-existing wheelhouse/*-*
Release:
if: github.event_name == 'release' && !github.event.release.prerelease
needs: [Build, Build_sdist, Test]
runs-on: ubuntu-20.04
environment: opencv-python-release
defaults:
run:
shell: bash
steps:
- uses: actions/download-artifact@v3
with:
name: wheels
path: wheelhouse/
- name: Upload wheels for st-opencv_python
run: |
python -m pip install twine
python -m twine upload --repository ${{ secrets.PIPY_REP_URL }} -u ${{ secrets.PYPI_USERNAME }} -p ${{ secrets.PYPI_PASSWORD }} --skip-existing wheelhouse/*_python-* wheelhouse/*-python-[^h]*
- name: Upload wheels for st-opencv_contrib_python
run: |
python -m pip install twine
python -m twine upload --repository ${{ secrets.PIPY_REP_URL }} -u ${{ secrets.PYPI_USERNAME }} -p ${{ secrets.PYPI_PASSWORD }} --skip-existing wheelhouse/*_contrib_python-* wheelhouse/*-contrib-python-[^h]*
- name: Upload wheels for st-opencv_python_headless
run: |
python -m pip install twine
python -m twine upload --repository ${{ secrets.PIPY_REP_URL }} -u ${{ secrets.PYPI_USERNAME }} -p ${{ secrets.PYPI_PASSWORD }} --skip-existing wheelhouse/*_python_headless-* wheelhouse/*-python-headless-*
- name: Upload wheels for st-opencv_contrib_python_headless
run: |
python -m pip install twine
python -m twine upload --repository ${{ secrets.PIPY_REP_URL }} -u ${{ secrets.PYPI_USERNAME }} -p ${{ secrets.PYPI_PASSWORD }} --skip-existing wheelhouse/*_contrib_python_headless-* st-wheelhouse/*-contrib-python-headless-*