From 2bab1f58c70371b6f2e3108eebeb27311050aaea Mon Sep 17 00:00:00 2001 From: Andrey Senyaev Date: Thu, 27 May 2021 09:45:26 +0300 Subject: [PATCH] Split builds and tests for linux, update submodules only when a PR, turned off freetype because of issues, added get_build_info script --- .github/workflows/build_wheels_linux.yml | 42 ++++++++++++-------- .github/workflows/build_wheels_linux_arm.yml | 2 +- .github/workflows/build_wheels_macos.yml | 6 +-- .github/workflows/build_wheels_windows.yml | 12 +++--- setup.py | 1 + tests/get_build_info.py | 3 ++ travis_config.sh | 7 ++++ 7 files changed, 48 insertions(+), 25 deletions(-) create mode 100644 tests/get_build_info.py diff --git a/.github/workflows/build_wheels_linux.yml b/.github/workflows/build_wheels_linux.yml index c371b77..2b6f8ef 100644 --- a/.github/workflows/build_wheels_linux.yml +++ b/.github/workflows/build_wheels_linux.yml @@ -39,7 +39,7 @@ jobs: DOCKER_IMAGE: quay.io/skvark/manylinux2014_${PLAT} USE_CCACHE: 1 UNICODE_WIDTH: 32 - SDIST: ${{ matrix.build_sdist || 0}} + SDIST: ${{ matrix.build_sdist || 0 }} ENABLE_HEADLESS: ${{ matrix.without_gui }} ENABLE_CONTRIB: ${{ matrix.with_contrib }} @@ -47,19 +47,12 @@ jobs: - name: Checkout uses: actions/checkout@v2 with: - submodules: true + submodules: false fetch-depth: 0 - name: Update submodules - run: | - git submodule update --remote - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - if: ${{ 'macos-latest' == matrix.os }} - with: - python-version: ${{ matrix.python-version }} - architecture: ${{ matrix.platform }} + if: github.event_name == 'pull_request' + run: git submodule update --remote - name: Setup Environment variables run: | @@ -71,7 +64,7 @@ jobs: echo "BUILD_DEPENDS=$(echo $NP_BUILD_DEP)" >> $GITHUB_ENV; echo "TEST_DEPENDS=$(echo $NP_TEST_DEP)" >> $GITHUB_ENV; - - name: before install + - name: build run: | set -e # Check out and prepare the source @@ -88,6 +81,23 @@ jobs: echo $ENABLE_HEADLESS > headless.enabled set -x build_wheel $REPO_DIR $PLAT + + - name: install and test + run: | + set -e + # Check out and prepare the source + # Multibuild doesn't have releases, so --depth would break eventually (see + # https://superuser.com/questions/1240216/server-does-not-allow-request-for-unadvertised) + git submodule update --init --recursive + source multibuild/common_utils.sh + # https://github.com/matthew-brett/multibuild/issues/116 + if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export ARCH_FLAGS=" "; fi + source multibuild/travis_steps.sh + # This sets -x + # source travis_multibuild_customize.sh + echo $ENABLE_CONTRIB > contrib.enabled + echo $ENABLE_HEADLESS > headless.enabled + set -x install_run $PLAT set +x @@ -129,9 +139,9 @@ jobs: DOCKER_IMAGE: quay.io/skvark/manylinux2014_${PLAT} USE_CCACHE: 1 UNICODE_WIDTH: 32 - SDIST: ${{ matrix.build_sdist || 0}} + SDIST: ${{ matrix.build_sdist || 0 }} ENABLE_HEADLESS: ${{ matrix.without_gui || 0 }} - ENABLE_CONTRIB: ${{ matrix.with_contrib || 0}} + ENABLE_CONTRIB: ${{ matrix.with_contrib || 0 }} steps: - name: Checkout @@ -141,8 +151,8 @@ jobs: fetch-depth: 0 - name: Update submodules - run: | - git submodule update --remote + if: github.event_name == 'pull_request' + run: git submodule update --remote - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 diff --git a/.github/workflows/build_wheels_linux_arm.yml b/.github/workflows/build_wheels_linux_arm.yml index de444d9..a680401 100644 --- a/.github/workflows/build_wheels_linux_arm.yml +++ b/.github/workflows/build_wheels_linux_arm.yml @@ -41,7 +41,7 @@ jobs: DOCKER_TEST_IMAGE: multibuild/xenial_arm64v8 USE_CCACHE: 0 UNICODE_WIDTH: 32 - SDIST: ${{ matrix.build_sdist || 0}} + SDIST: ${{ matrix.build_sdist || 0 }} ENABLE_HEADLESS: ${{ matrix.without_gui }} ENABLE_CONTRIB: ${{ matrix.with_contrib }} diff --git a/.github/workflows/build_wheels_macos.yml b/.github/workflows/build_wheels_macos.yml index d540f6c..bfce806 100644 --- a/.github/workflows/build_wheels_macos.yml +++ b/.github/workflows/build_wheels_macos.yml @@ -39,7 +39,7 @@ jobs: DOCKER_IMAGE: quay.io/skvark/manylinux2014_${PLAT} USE_CCACHE: 1 UNICODE_WIDTH: 32 - SDIST: ${{ matrix.build_sdist || 0}} + SDIST: ${{ matrix.build_sdist || 0 }} ENABLE_HEADLESS: ${{ matrix.without_gui }} ENABLE_CONTRIB: ${{ matrix.with_contrib }} @@ -51,8 +51,8 @@ jobs: fetch-depth: 0 - name: Update submodules - run: | - git submodule update --remote + if: github.event_name == 'pull_request' + run: git submodule update --remote - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 diff --git a/.github/workflows/build_wheels_windows.yml b/.github/workflows/build_wheels_windows.yml index 76e6c35..03a341e 100644 --- a/.github/workflows/build_wheels_windows.yml +++ b/.github/workflows/build_wheels_windows.yml @@ -27,9 +27,10 @@ jobs: env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true - SDIST: ${{ matrix.build_sdist || 0}} + 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: Checkout @@ -39,8 +40,8 @@ jobs: fetch-depth: 0 - name: Update submodules - run: | - git submodule update --remote + if: github.event_name == 'pull_request' + run: git submodule update --remote - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 @@ -64,12 +65,13 @@ jobs: 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 test run: | - cd ${{ github.workspace }}/tests - python -m unittest test + cd ${{ github.workspace }}/opencv + python modules\python\test\test.py -v --repo . shell: cmd - name: saving artifacts diff --git a/setup.py b/setup.py index a326520..a14825d 100644 --- a/setup.py +++ b/setup.py @@ -145,6 +145,7 @@ def main(): "-DINSTALL_CREATE_DISTRIB=ON", # See opencv/CMakeLists.txt for options and defaults "-DBUILD_opencv_apps=OFF", + "-DBUILD_opencv_freetype=OFF", "-DBUILD_SHARED_LIBS=OFF", "-DBUILD_TESTS=OFF", "-DBUILD_PERF_TESTS=OFF", diff --git a/tests/get_build_info.py b/tests/get_build_info.py new file mode 100644 index 0000000..4714f2f --- /dev/null +++ b/tests/get_build_info.py @@ -0,0 +1,3 @@ +import cv2 as cv + +print(cv.getBuildInformation()) diff --git a/travis_config.sh b/travis_config.sh index b1a991a..a83fe14 100644 --- a/travis_config.sh +++ b/travis_config.sh @@ -150,6 +150,10 @@ function run_tests { if [ -n "$IS_OSX" ]; then echo "Running for OS X" + + cd ../tests + $PYTHON get_build_info.py + cd ../opencv/ export OPENCV_TEST_DATA_PATH=../opencv_extra/testdata else @@ -158,6 +162,9 @@ function run_tests { if [ $PYTHON == "python3.6" ]; then $PYTHON -m pip install -U numpy==1.19.4 fi + cd /io/tests + $PYTHON get_build_info.py + cd /io/opencv export OPENCV_TEST_DATA_PATH=/io/opencv_extra/testdata fi -- GitLab