Skip to content

Add unit-tests for M1 #6111

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 16 commits into from
Closed
5 changes: 4 additions & 1 deletion .github/workflows/build-m1-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
push:
branches:
- nightly
- main
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we want to execute this on main ? Since you already compiling vision inside test-m1.yml.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test-m1 only tests on py3.8 and executes only part of the checks (no wheel validation). I thought it would be best to do this at least once in each PR on main to be able to catch the issues easier. It's a middle ground tradeoff between executing the tests in every PR/commit and doing so only once a day. Hopefully the volume of commits that get merged every day on TorchVision isn't significant to affect the overall resources.

workflow_dispatch:
jobs:
build_wheels:
Expand All @@ -27,7 +28,7 @@ jobs:
set -ex
export BUILD_VERSION=0.14.0.dev$(date "+%Y%m%d")
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 openjpeg wheel pkg-config
conda create -yp ${ENV_NAME} python=${PY_VERS} numpy libpng libjpeg wheel pkg-config
conda run -p ${ENV_NAME} python3 -mpip install torch --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
Expand All @@ -49,11 +50,13 @@ jobs:
conda run --cwd /tmp -p ${ENV_NAME} python3 -c "import torch;import torchvision;print('Is torchvision useable?', all(x is not None for x in [torch.ops.image.decode_png, torch.ops.torchvision.roi_align]))"
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 }}
Expand Down
43 changes: 43 additions & 0 deletions .github/workflows/test-m1.yml
Original file line number Diff line number Diff line change
@@ -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}