From 5dad4f9cf476df9946d595922b5d061c0b63346b Mon Sep 17 00:00:00 2001 From: Nicolas Hug Date: Mon, 6 Jun 2022 10:54:42 +0100 Subject: [PATCH 1/4] Add M1 testing job --- .github/workflows/build-m1-binaries.yml | 3 ++ .github/workflows/test-m1.yml | 43 +++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 .github/workflows/test-m1.yml diff --git a/.github/workflows/build-m1-binaries.yml b/.github/workflows/build-m1-binaries.yml index b03cefbf25d..4e06f0d052c 100644 --- a/.github/workflows/build-m1-binaries.yml +++ b/.github/workflows/build-m1-binaries.yml @@ -6,6 +6,7 @@ on: push: branches: - nightly + - main workflow_dispatch: jobs: build_wheels: @@ -54,11 +55,13 @@ jobs: conda run --cwd /tmp -p ${ENV_NAME} python3 -c "import torchvision;print(torchvision.io.read_image('${PWD}/gallery/assets/dog1.jpg').shape)" conda env remove -p ${ENV_NAME} - name: Upload wheel to GitHub + if: ${{ github.event_name == 'push' && steps.extract_branch.outputs.branch == 'nightly' }} uses: actions/upload-artifact@v3 with: name: torchvision-py${{ matrix.py_vers }}-macos11-m1 path: dist/ - name: Upload wheel to S3 + if: ${{ github.event_name == 'push' && steps.extract_branch.outputs.branch == 'nightly' }} shell: arch -arch arm64 bash {0} env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_PYTORCH_UPLOADER_ACCESS_KEY_ID }} diff --git a/.github/workflows/test-m1.yml b/.github/workflows/test-m1.yml new file mode 100644 index 00000000000..6485cd58063 --- /dev/null +++ b/.github/workflows/test-m1.yml @@ -0,0 +1,43 @@ +name: Unit-tests on M1 +on: + pull_request: + paths: + - .github/workflows/test-m1.yml + push: + branches: + - nightly + - main + workflow_dispatch: +jobs: + tests: + name: "Unit-tests on M1" + runs-on: macos-m1 + strategy: + matrix: + py_vers: [ "3.8"] + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + - name: Install TorchVision + shell: arch -arch arm64 bash {0} + env: + ENV_NAME: conda-env-${{ github.run_id }} + PY_VERS: ${{ matrix.py_vers }} + run: | + . ~/miniconda3/etc/profile.d/conda.sh + set -ex + conda create -yp ${ENV_NAME} python=${PY_VERS} numpy libpng libjpeg scipy + conda run -p ${ENV_NAME} python3 -mpip install torch --extra-index-url=https://download.pytorch.org/whl/nightly + conda run -p ${ENV_NAME} python3 setup.py develop + conda run -p ${ENV_NAME} python3 -mpip install pytest pytest-mock av + - name: Run tests + shell: arch -arch arm64 bash {0} + env: + ENV_NAME: conda-env-${{ github.run_id }} + PY_VERS: ${{ matrix.py_vers }} + run: | + . ~/miniconda3/etc/profile.d/conda.sh + set -ex + conda run -p ${ENV_NAME} --no-capture-output python3 -u -mpytest -v --tb=long --durations 20 + conda env remove -p ${ENV_NAME} From 7a9dbdd128cbf5e42cd0ff7efe212857c6ebb2cf Mon Sep 17 00:00:00 2001 From: Nicolas Hug Date: Mon, 6 Jun 2022 11:06:32 +0100 Subject: [PATCH 2/4] libjpeg -> jpeg<=9b in test-m1.yml --- .github/workflows/test-m1.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-m1.yml b/.github/workflows/test-m1.yml index 6485cd58063..d99a5af6227 100644 --- a/.github/workflows/test-m1.yml +++ b/.github/workflows/test-m1.yml @@ -27,7 +27,7 @@ jobs: run: | . ~/miniconda3/etc/profile.d/conda.sh set -ex - conda create -yp ${ENV_NAME} python=${PY_VERS} numpy libpng libjpeg scipy + conda create -yp ${ENV_NAME} python=${PY_VERS} numpy libpng "jpeg<=9b" scipy conda run -p ${ENV_NAME} python3 -mpip install torch --extra-index-url=https://download.pytorch.org/whl/nightly conda run -p ${ENV_NAME} python3 setup.py develop conda run -p ${ENV_NAME} python3 -mpip install pytest pytest-mock av From 3bf257b92e580192c0f098d6d3bfd381c0625db0 Mon Sep 17 00:00:00 2001 From: Nicolas Hug Date: Mon, 6 Jun 2022 12:06:47 +0100 Subject: [PATCH 3/4] Added export PATH=~/miniconda3/bin... from 6122 --- .github/workflows/test-m1.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test-m1.yml b/.github/workflows/test-m1.yml index d99a5af6227..cfb418c0bdf 100644 --- a/.github/workflows/test-m1.yml +++ b/.github/workflows/test-m1.yml @@ -26,6 +26,8 @@ jobs: PY_VERS: ${{ matrix.py_vers }} run: | . ~/miniconda3/etc/profile.d/conda.sh + # Needed for JPEG library detection as setup.py detects conda presence by running `shlex.which('conda')` + export PATH=~/miniconda3/bin:$PATH set -ex conda create -yp ${ENV_NAME} python=${PY_VERS} numpy libpng "jpeg<=9b" scipy conda run -p ${ENV_NAME} python3 -mpip install torch --extra-index-url=https://download.pytorch.org/whl/nightly From 69ce54a61812ee2a8c1eae4eb034bb8d990027f0 Mon Sep 17 00:00:00 2001 From: Nicolas Hug Date: Mon, 6 Jun 2022 12:42:00 +0100 Subject: [PATCH 4/4] Tests were OK, let's see if we can remove the pinning --- .github/workflows/build-m1-binaries.yml | 2 +- .github/workflows/test-m1.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-m1-binaries.yml b/.github/workflows/build-m1-binaries.yml index 4e06f0d052c..780ace3bd5a 100644 --- a/.github/workflows/build-m1-binaries.yml +++ b/.github/workflows/build-m1-binaries.yml @@ -31,7 +31,7 @@ jobs: . packaging/pkg_helpers.bash setup_build_version WHL_NAME=torchvision-${BUILD_VERSION}-cp${PY_VERS/.}-cp${PY_VERS/.}-macosx_11_0_arm64.whl - conda create -yp ${ENV_NAME} python=${PY_VERS} numpy libpng "jpeg<=9b" wheel pkg-config + conda create -yp ${ENV_NAME} python=${PY_VERS} numpy libpng jpeg wheel pkg-config conda run -p ${ENV_NAME} python3 -mpip install torch --pre --extra-index-url=https://download.pytorch.org/whl/nightly conda run -p ${ENV_NAME} python3 -mpip install delocate conda run -p ${ENV_NAME} python3 setup.py bdist_wheel diff --git a/.github/workflows/test-m1.yml b/.github/workflows/test-m1.yml index cfb418c0bdf..7ff3ade5820 100644 --- a/.github/workflows/test-m1.yml +++ b/.github/workflows/test-m1.yml @@ -29,7 +29,7 @@ jobs: # Needed for JPEG library detection as setup.py detects conda presence by running `shlex.which('conda')` export PATH=~/miniconda3/bin:$PATH set -ex - conda create -yp ${ENV_NAME} python=${PY_VERS} numpy libpng "jpeg<=9b" scipy + conda create -yp ${ENV_NAME} python=${PY_VERS} numpy libpng jpeg scipy conda run -p ${ENV_NAME} python3 -mpip install torch --extra-index-url=https://download.pytorch.org/whl/nightly conda run -p ${ENV_NAME} python3 setup.py develop conda run -p ${ENV_NAME} python3 -mpip install pytest pytest-mock av