-
Notifications
You must be signed in to change notification settings - Fork 7k
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
Adding tagged builds for M1 #6140
Changes from 6 commits
5eda8fd
3fa5c3f
015e8db
33c2dc2
1f0f7f4
42abc4a
dc37d5e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,7 +7,13 @@ on: | |
branches: | ||
- nightly | ||
- main | ||
tags: | ||
# NOTE: Binary build pipelines should only get triggered on release candidate builds | ||
# Release candidate tags look like: v1.11.0-rc1 | ||
- v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+ | ||
workflow_dispatch: | ||
env: | ||
CHANNEL: "nightly" | ||
jobs: | ||
build_wheels: | ||
name: "Build TorchVision M1 wheels" | ||
|
@@ -18,6 +24,13 @@ jobs: | |
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v2 | ||
- name: Set CHANNEL (only for tagged pushes) | ||
if: ${{ github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/') }} | ||
run: | | ||
# reference ends with an RC suffix | ||
if [[ ${GITHUB_REF_NAME} = *-rc[0-9]* ]]; then | ||
echo "CHANNEL=test" >> "$GITHUB_ENV" | ||
fi | ||
- name: Build TorchVision M1 wheel | ||
shell: arch -arch arm64 bash {0} | ||
env: | ||
|
@@ -29,10 +42,16 @@ jobs: | |
export PATH=~/miniconda3/bin:$PATH | ||
set -ex | ||
. packaging/pkg_helpers.bash | ||
setup_build_version | ||
# if we are uploading to test channell, our version consist only of the base: 0.x.x - no date string or suffix added | ||
if [[ $CHANNEL == "test" ]]; then | ||
setup_base_build_version | ||
else | ||
setup_build_version | ||
fi | ||
|
||
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 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 torch --pre --extra-index-url=https://download.pytorch.org/whl/${CHANNEL} | ||
conda run -p ${ENV_NAME} python3 -mpip install delocate | ||
conda run -p ${ENV_NAME} python3 setup.py bdist_wheel | ||
export PYTORCH_VERSION="$(conda run -p ${ENV_NAME} python3 -mpip show torch | grep ^Version: | sed 's/Version: *//')" | ||
|
@@ -47,7 +66,7 @@ jobs: | |
. ~/miniconda3/etc/profile.d/conda.sh | ||
set -ex | ||
conda create -yp ${ENV_NAME} python=${PY_VERS} numpy | ||
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 torch --pre --extra-index-url=https://download.pytorch.org/whl/${CHANNEL} | ||
conda run -p ${ENV_NAME} python3 -mpip install dist/*.whl | ||
# Test torch is importable, by changing cwd and running import commands | ||
conda run --cwd /tmp -p ${ENV_NAME} python3 -c "import torchvision;print('torchvision version is ', torchvision.__version__)" | ||
|
@@ -60,12 +79,11 @@ jobs: | |
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' }} | ||
if: ${{ github.event_name == 'push' && (steps.extract_branch.outputs.branch == 'nightly' || startsWith(github.event.ref, 'refs/tags/')) }} | ||
shell: arch -arch arm64 bash {0} | ||
env: | ||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_PYTORCH_UPLOADER_ACCESS_KEY_ID }} | ||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_PYTORCH_UPLOADER_SECRET_ACCESS_KEY }} | ||
CHANNEL: nightly | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Err, this will fail for nightly builds, isn't it (I.e. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. please see comment below we do set CHANNEL nightly by default |
||
run: | | ||
for pkg in dist/*; do | ||
aws s3 cp "$pkg" "s3://pytorch/whl/${CHANNEL}/cpu/" --acl public-read | ||
|
@@ -79,7 +97,13 @@ jobs: | |
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v2 | ||
|
||
- name: Set CHANNEL (only for tagged pushes) | ||
if: ${{ github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/') }} | ||
run: | | ||
# reference ends with an RC suffix | ||
if [[ ${GITHUB_REF_NAME} = *-rc[0-9]* ]]; then | ||
echo "CHANNEL=test" >> "$GITHUB_ENV" | ||
fi | ||
- name: Install conda-build and purge previous artifacts | ||
shell: arch -arch arm64 bash {0} | ||
run: | | ||
|
@@ -97,7 +121,13 @@ jobs: | |
. ~/miniconda3/etc/profile.d/conda.sh | ||
set -ex | ||
. packaging/pkg_helpers.bash | ||
setup_build_version | ||
|
||
if [[ $CHANNEL == "test" ]]; then | ||
setup_base_build_version | ||
else | ||
setup_build_version | ||
fi | ||
|
||
setup_conda_pytorch_constraint | ||
export SOURCE_ROOT_DIR=$(pwd) | ||
conda build -c defaults $CONDA_CHANNEL_FLAGS --no-anaconda-upload --python "$PYTHON_VERSION" packaging/torchvision | ||
|
@@ -113,9 +143,8 @@ jobs: | |
shell: arch -arch arm64 bash {0} | ||
env: | ||
CONDA_PYTORCHBOT_TOKEN: ${{ secrets.CONDA_PYTORCHBOT_TOKEN }} | ||
UPLOAD_CHANNEL: nightly | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same as above, what will set a channel environment variable to There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. please see comment below we do set CHANNEL nightly by default |
||
run: | | ||
. ~/miniconda3/etc/profile.d/conda.sh | ||
conda install -yq anaconda-client | ||
set -x | ||
anaconda -t "${CONDA_PYTORCHBOT_TOKEN}" upload ~/miniconda3/conda-bld/osx-arm64/*.tar.bz2 -u "pytorch-${UPLOAD_CHANNEL}" --label main --no-progress --force | ||
anaconda -t "${CONDA_PYTORCHBOT_TOKEN}" upload ~/miniconda3/conda-bld/osx-arm64/*.tar.bz2 -u "pytorch-${CHANNEL}" --label main --no-progress --force |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -101,23 +101,30 @@ setup_cuda() { | |
setup_build_version() { | ||
if [[ -z "$BUILD_VERSION" ]]; then | ||
if [[ -z "$1" ]]; then | ||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" | ||
# version.txt for some reason has `a` character after major.minor.rev | ||
# command below yields 0.10.0 from version.txt containing 0.10.0a0 | ||
_VERSION_BASE=$( cut -f 1 -d a "$SCRIPT_DIR/../version.txt" ) | ||
setup_base_build_version | ||
else | ||
_VERSION_BASE="$1" | ||
BUILD_VERSION="$1" | ||
fi | ||
export BUILD_VERSION="$_VERSION_BASE.dev$(date "+%Y%m%d")$VERSION_SUFFIX" | ||
BUILD_VERSION="$BUILD_VERSION.dev$(date "+%Y%m%d")$VERSION_SUFFIX" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not a bash expert, doesn't one need to re-export it here? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yes totally its re-exported at line 119 below |
||
else | ||
export BUILD_VERSION="$BUILD_VERSION$VERSION_SUFFIX" | ||
BUILD_VERSION="$BUILD_VERSION$VERSION_SUFFIX" | ||
fi | ||
|
||
# Set build version based on tag if on tag | ||
if [[ -n "${CIRCLE_TAG}" ]]; then | ||
# Strip tag | ||
export BUILD_VERSION="$(echo "${CIRCLE_TAG}" | sed -e 's/^v//' -e 's/-.*$//')${VERSION_SUFFIX}" | ||
BUILD_VERSION="$(echo "${CIRCLE_TAG}" | sed -e 's/^v//' -e 's/-.*$//')${VERSION_SUFFIX}" | ||
fi | ||
|
||
export BUILD_VERSION | ||
} | ||
|
||
setup_base_build_version() { | ||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" | ||
# version.txt for some reason has `a` character after major.minor.rev | ||
# command below yields 0.10.0 from version.txt containing 0.10.0a0 | ||
BUILD_VERSION=$( cut -f 1 -d a "$SCRIPT_DIR/../version.txt" ) | ||
export BUILD_VERSION | ||
} | ||
|
||
# Set some useful variables for OS X, if applicable | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here is where we set default CHANNEL to nightly