Skip to content
225 changes: 220 additions & 5 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@ version: 2.1

# How to test the Linux jobs:
# - Install CircleCI local CLI: https://circleci.com/docs/2.0/local-cli/
# - circleci config process .circleci/config.yml > gen.yml && circleci local execute -c gen.yml --job binary_linux_wheel
# - Replace binary_linux_wheel with the name of the job you want to test
# - circleci config process .circleci/config.yml > gen.yml && circleci local execute -c gen.yml --job binary_linux_wheel_py3.7
# - Replace binary_linux_wheel_py3.7 with the name of the job you want to test.
# Job names are 'name:' key.

binary_common: &binary_common
parameters:
# Edit these defaults to do a release`
# Edit these defaults to do a release
build_version:
description: "version number of release binary; by default, build a nightly"
type: string
Expand All @@ -29,7 +30,7 @@ binary_common: &binary_common
BUILD_VERSION: << parameters.build_version >>
PYTORCH_VERSION: << parameters.pytorch_version >>
UNICODE_ABI: << parameters.unicode_abi >>
CUDA_VERSION: cpu
CU_VERSION: cpu

jobs:
circleci_consistency:
Expand All @@ -53,6 +54,10 @@ jobs:
- run: packaging/build_wheel.sh
- store_artifacts:
path: dist
- persist_to_workspace:
root: dist
paths:
- "*"

binary_linux_conda:
<<: *binary_common
Expand All @@ -64,6 +69,10 @@ jobs:
- run: packaging/build_conda.sh
- store_artifacts:
path: /opt/conda/conda-bld/linux-64
- persist_to_workspace:
root: /opt/conda/conda-bld/linux-64
paths:
- "*"

binary_macos_wheel:
<<: *binary_common
Expand All @@ -82,6 +91,10 @@ jobs:
packaging/build_wheel.sh
- store_artifacts:
path: dist
- persist_to_workspace:
root: dist
paths:
- "*"

binary_macos_conda:
<<: *binary_common
Expand All @@ -98,11 +111,55 @@ jobs:
packaging/build_conda.sh
- store_artifacts:
path: /Users/distiller/miniconda3/conda-bld/osx-64
- persist_to_workspace:
root: /Users/distiller/miniconda3/conda-bld/osx-64
paths:
- "*"

# Requires org-member context
binary_conda_upload:
docker:
- image: continuumio/miniconda
steps:
- attach_workspace:
at: ~/workspace
- run:
command: |
# Prevent credential from leaking
conda install -yq anaconda-client
set +x
anaconda login \
--username "$PYTORCH_BINARY_PJH5_CONDA_USERNAME" \
--password "$PYTORCH_BINARY_PJH5_CONDA_PASSWORD"
set -x
anaconda upload ~/workspace/*.tar.bz2 -u pytorch-nightly --label main --no-progress --force

# Requires org-member context
binary_wheel_upload:
docker:
- image: circleci/python:3.7
steps:
- attach_workspace:
at: ~/workspace
- checkout
- run:
command: |
pip install --user awscli
export PATH="$HOME/.local/bin:$PATH"
# Prevent credential from leaking
set +x
export AWS_ACCESS_KEY_ID="${PYTORCH_BINARY_AWS_ACCESS_KEY_ID}"
export AWS_SECRET_ACCESS_KEY="${PYTORCH_BINARY_AWS_SECRET_ACCESS_KEY}"
set -x
for pkg in ~/workspace/*.whl; do
aws s3 cp "$pkg" "s3://pytorch/whl/nightly/" --acl public-read
done

workflows:
build:
jobs:
- circleci_consistency

- binary_linux_wheel:
name: binary_linux_wheel_py2.7
python_version: "2.7"
Expand Down Expand Up @@ -158,4 +215,162 @@ workflows:
python_version: "3.6"
- binary_macos_conda:
name: binary_macos_conda_py3.7
python_version: "3.7"
python_version: "3.7"

nightly:
triggers:
- schedule:
cron: "0 9 * * *"
filters:
branches:
only:
- master
jobs:
- circleci_consistency

- binary_linux_wheel:
name: nightly_binary_linux_wheel_py2.7
python_version: "2.7"
- binary_wheel_upload:
name: nightly_binary_linux_wheel_py2.7_upload
context: org-member
requires:
- nightly_binary_linux_wheel_py2.7
- binary_linux_wheel:
name: nightly_binary_linux_wheel_py2.7_unicode
python_version: "2.7"
unicode_abi: "1"
- binary_wheel_upload:
name: nightly_binary_linux_wheel_py2.7_unicode_upload
context: org-member
requires:
- nightly_binary_linux_wheel_py2.7_unicode
- binary_linux_wheel:
name: nightly_binary_linux_wheel_py3.5
python_version: "3.5"
- binary_wheel_upload:
name: nightly_binary_linux_wheel_py3.5_upload
context: org-member
requires:
- nightly_binary_linux_wheel_py3.5
- binary_linux_wheel:
name: nightly_binary_linux_wheel_py3.6
python_version: "3.6"
- binary_wheel_upload:
name: nightly_binary_linux_wheel_py3.6_upload
context: org-member
requires:
- nightly_binary_linux_wheel_py3.6
- binary_linux_wheel:
name: nightly_binary_linux_wheel_py3.7
python_version: "3.7"
- binary_wheel_upload:
name: nightly_binary_linux_wheel_py3.7_upload
context: org-member
requires:
- nightly_binary_linux_wheel_py3.7
- binary_macos_wheel:
name: nightly_binary_macos_wheel_py2.7
python_version: "2.7"
- binary_wheel_upload:
name: nightly_binary_macos_wheel_py2.7_upload
context: org-member
requires:
- nightly_binary_macos_wheel_py2.7
- binary_macos_wheel:
name: nightly_binary_macos_wheel_py2.7_unicode
python_version: "2.7"
unicode_abi: "1"
- binary_wheel_upload:
name: nightly_binary_macos_wheel_py2.7_unicode_upload
context: org-member
requires:
- nightly_binary_macos_wheel_py2.7_unicode
- binary_macos_wheel:
name: nightly_binary_macos_wheel_py3.5
python_version: "3.5"
- binary_wheel_upload:
name: nightly_binary_macos_wheel_py3.5_upload
context: org-member
requires:
- nightly_binary_macos_wheel_py3.5
- binary_macos_wheel:
name: nightly_binary_macos_wheel_py3.6
python_version: "3.6"
- binary_wheel_upload:
name: nightly_binary_macos_wheel_py3.6_upload
context: org-member
requires:
- nightly_binary_macos_wheel_py3.6
- binary_macos_wheel:
name: nightly_binary_macos_wheel_py3.7
python_version: "3.7"
- binary_wheel_upload:
name: nightly_binary_macos_wheel_py3.7_upload
context: org-member
requires:
- nightly_binary_macos_wheel_py3.7
- binary_linux_conda:
name: nightly_binary_linux_conda_py2.7
python_version: "2.7"
- binary_conda_upload:
name: nightly_binary_linux_conda_py2.7_upload
context: org-member
requires:
- nightly_binary_linux_conda_py2.7
- binary_linux_conda:
name: nightly_binary_linux_conda_py3.5
python_version: "3.5"
- binary_conda_upload:
name: nightly_binary_linux_conda_py3.5_upload
context: org-member
requires:
- nightly_binary_linux_conda_py3.5
- binary_linux_conda:
name: nightly_binary_linux_conda_py3.6
python_version: "3.6"
- binary_conda_upload:
name: nightly_binary_linux_conda_py3.6_upload
context: org-member
requires:
- nightly_binary_linux_conda_py3.6
- binary_linux_conda:
name: nightly_binary_linux_conda_py3.7
python_version: "3.7"
- binary_conda_upload:
name: nightly_binary_linux_conda_py3.7_upload
context: org-member
requires:
- nightly_binary_linux_conda_py3.7
- binary_macos_conda:
name: nightly_binary_macos_conda_py2.7
python_version: "2.7"
- binary_conda_upload:
name: nightly_binary_macos_conda_py2.7_upload
context: org-member
requires:
- nightly_binary_macos_conda_py2.7
- binary_macos_conda:
name: nightly_binary_macos_conda_py3.5
python_version: "3.5"
- binary_conda_upload:
name: nightly_binary_macos_conda_py3.5_upload
context: org-member
requires:
- nightly_binary_macos_conda_py3.5
- binary_macos_conda:
name: nightly_binary_macos_conda_py3.6
python_version: "3.6"
- binary_conda_upload:
name: nightly_binary_macos_conda_py3.6_upload
context: org-member
requires:
- nightly_binary_macos_conda_py3.6
- binary_macos_conda:
name: nightly_binary_macos_conda_py3.7
python_version: "3.7"
- binary_conda_upload:
name: nightly_binary_macos_conda_py3.7_upload
context: org-member
requires:
- nightly_binary_macos_conda_py3.7
Loading