From 83deed818f0f83fd193eb1d5bace23fac0f1eba0 Mon Sep 17 00:00:00 2001 From: Andrey Senyaev Date: Thu, 3 Jun 2021 13:20:20 +0300 Subject: [PATCH] Extracted build and install+test steps into two different scripts and fixed issues --- .github/workflows/build_wheels_linux.yml | 44 ++-------------- .github/workflows/build_wheels_linux_arm.yml | 53 +++----------------- .github/workflows/build_wheels_macos.yml | 5 +- .github/workflows/build_wheels_windows.yml | 3 +- scripts/build.sh | 17 +++++++ scripts/install.sh | 18 +++++++ 6 files changed, 52 insertions(+), 88 deletions(-) create mode 100755 scripts/build.sh create mode 100755 scripts/install.sh diff --git a/.github/workflows/build_wheels_linux.yml b/.github/workflows/build_wheels_linux.yml index 2b6f8ef..c9307d7 100644 --- a/.github/workflows/build_wheels_linux.yml +++ b/.github/workflows/build_wheels_linux.yml @@ -33,7 +33,7 @@ jobs: MB_PYTHON_VERSION: ${{ matrix.python-version }} TRAVIS_PYTHON_VERSION: ${{ matrix.python-version }} MB_ML_VER: 2014 - NP_TEST_DEP: numpy + NP_TEST_DEP: numpy==1.19.4 TRAVIS_BUILD_DIR: ${{ github.workspace }} CONFIG_PATH: travis_config.sh DOCKER_IMAGE: quay.io/skvark/manylinux2014_${PLAT} @@ -56,50 +56,17 @@ jobs: - name: Setup Environment variables run: | - if [ "macos-latest" == "${{ matrix.os }}" ]; then echo "TRAVIS_OS_NAME=osx" >> $GITHUB_ENV; else echo "TRAVIS_OS_NAME=${{ matrix.os }}" >> $GITHUB_ENV; fi if [ "schedule" == "${{ github.event_name }}" ]; then echo "TRAVIS_EVENT_TYPE=cron" >> $GITHUB_ENV; else echo "TRAVIS_EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV; fi if [ "schedule" == "${{ github.event_name }}" ]; then echo "BUILD_COMMIT=master" >> $GITHUB_ENV; else echo "BUILD_COMMIT=$BUILD_COMMIT" >> $GITHUB_ENV; fi if [ "x64" == "${{ matrix.platform }}" ]; then echo "PLAT=x86_64" >> $GITHUB_ENV; fi - if [ "x86" == "${{ matrix.platform }}" ]; then echo "PLAT=i686" >> $GITHUB_ENV; fi echo "BUILD_DEPENDS=$(echo $NP_BUILD_DEP)" >> $GITHUB_ENV; echo "TEST_DEPENDS=$(echo $NP_TEST_DEP)" >> $GITHUB_ENV; - name: build - 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 multibuild - 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 - build_wheel $REPO_DIR $PLAT + run: source scripts/build.sh - 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 + run: source scripts/install.sh - name: saving artifacts uses: actions/upload-artifact@v2 @@ -133,7 +100,7 @@ jobs: MB_PYTHON_VERSION: ${{ matrix.python-version }} TRAVIS_PYTHON_VERSION: ${{ matrix.python-version }} MB_ML_VER: 2014 - NP_TEST_DEP: numpy + NP_TEST_DEP: numpy==1.19.4 TRAVIS_BUILD_DIR: ${{ github.workspace }} CONFIG_PATH: travis_config.sh DOCKER_IMAGE: quay.io/skvark/manylinux2014_${PLAT} @@ -147,7 +114,7 @@ jobs: - name: Checkout uses: actions/checkout@v2 with: - submodules: true + submodules: false fetch-depth: 0 - name: Update submodules @@ -162,7 +129,6 @@ jobs: - name: Setup Environment variables run: | - if [ "macos-latest" == "${{ matrix.os }}" ]; then echo "TRAVIS_OS_NAME=osx" >> $GITHUB_ENV; else echo "TRAVIS_OS_NAME=${{ matrix.os }}" >> $GITHUB_ENV; fi if [ "schedule" == "${{ github.event_name }}" ]; then echo "TRAVIS_EVENT_TYPE=cron" >> $GITHUB_ENV; else echo "TRAVIS_EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV; fi if [ "schedule" == "${{ github.event_name }}" ]; then echo "BUILD_COMMIT=master" >> $GITHUB_ENV; else echo "BUILD_COMMIT=$BUILD_COMMIT" >> $GITHUB_ENV; fi echo "BUILD_DEPENDS=$(echo $NP_BUILD_DEP)" >> $GITHUB_ENV; diff --git a/.github/workflows/build_wheels_linux_arm.yml b/.github/workflows/build_wheels_linux_arm.yml index a680401..7ad52cd 100644 --- a/.github/workflows/build_wheels_linux_arm.yml +++ b/.github/workflows/build_wheels_linux_arm.yml @@ -34,7 +34,7 @@ jobs: TRAVIS_PYTHON_VERSION: ${{ matrix.python-version }} PLAT: aarch64 MB_ML_VER: 2014 - NP_TEST_DEP: numpy + NP_TEST_DEP: numpy==1.19.4 TRAVIS_BUILD_DIR: ${{ github.workspace }} CONFIG_PATH: travis_config.sh DOCKER_IMAGE: quay.io/skvark/manylinux2014_${PLAT} @@ -53,7 +53,7 @@ jobs: - name: Checkout uses: actions/checkout@v2 with: - submodules: true + submodules: false fetch-depth: 0 - name: Setup Environment variables @@ -62,50 +62,11 @@ jobs: echo "BUILD_DEPENDS=$(echo $NP_BUILD_DEP)" >> $GITHUB_ENV; echo "TEST_DEPENDS=$(echo $NP_TEST_DEP)" >> $GITHUB_ENV; - - name: before install - run: | - set -e - if [[ $SDIST == 0 ]]; then - # 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 multibuild - 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 - echo "end" - # Not interested in travis internal scripts' output - fi - set +x - # Build and package - set -x - ls - if [[ $SDIST == 1 ]]; then - python -m pip install --upgrade pip - python -m pip install scikit-build - python setup.py sdist - else - build_wheel $REPO_DIR $PLAT - fi - set +x - # Install and run tests - set -x - if [[ $SDIST == 1 ]]; then - echo "skipping tests because of sdist" - rc=0 - else - install_run $PLAT && rc=$? || rc=$? - fi - set +x - #otherwise, Travis logic terminates prematurely - #https://travis-ci.community/t/shell-session-update-command-not-found-in-build-log-causes-build-to-fail-if-trap-err-is-set/817 - trap ERR - test "$rc" -eq 0 + - name: build + run: source scripts/build.sh + + - name: install and test + run: source scripts/install.sh - name: saving artifacts uses: actions/upload-artifact@v2 diff --git a/.github/workflows/build_wheels_macos.yml b/.github/workflows/build_wheels_macos.yml index bfce806..c2dc073 100644 --- a/.github/workflows/build_wheels_macos.yml +++ b/.github/workflows/build_wheels_macos.yml @@ -33,7 +33,7 @@ jobs: MB_PYTHON_VERSION: ${{ matrix.python-version }} TRAVIS_PYTHON_VERSION: ${{ matrix.python-version }} MB_ML_VER: 2014 - NP_TEST_DEP: numpy + NP_TEST_DEP: numpy==1.19.4 TRAVIS_BUILD_DIR: ${{ github.workspace }} CONFIG_PATH: travis_config.sh DOCKER_IMAGE: quay.io/skvark/manylinux2014_${PLAT} @@ -47,7 +47,7 @@ jobs: - name: Checkout uses: actions/checkout@v2 with: - submodules: true + submodules: false fetch-depth: 0 - name: Update submodules @@ -88,6 +88,7 @@ jobs: echo $ENABLE_HEADLESS > headless.enabled set -x build_wheel $REPO_DIR $PLAT + git submodule update --init --recursive install_run $PLAT set +x diff --git a/.github/workflows/build_wheels_windows.yml b/.github/workflows/build_wheels_windows.yml index 03a341e..c881108 100644 --- a/.github/workflows/build_wheels_windows.yml +++ b/.github/workflows/build_wheels_windows.yml @@ -36,7 +36,7 @@ jobs: - name: Checkout uses: actions/checkout@v2 with: - submodules: true + submodules: false fetch-depth: 0 - name: Update submodules @@ -62,6 +62,7 @@ jobs: - name: before test run: | + git submodule update --init --recursive cd ${{ github.workspace }}/tests &python -m pip install --user --no-warn-script-location (ls "../wheelhouse/opencv*.whl") if ($LastExitCode -ne 0) {throw $LastExitCode} diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100755 index 0000000..f48ca06 --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +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 multibuild +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 +build_wheel $REPO_DIR $PLAT diff --git a/scripts/install.sh b/scripts/install.sh new file mode 100755 index 0000000..6e019d1 --- /dev/null +++ b/scripts/install.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +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 -- GitLab