Skip to content

Commit

Permalink
Add unittest to CI
Browse files Browse the repository at this point in the history
  • Loading branch information
guyang3532 authored and guyang35352@gmail.com committed Jun 18, 2020
1 parent 148bac2 commit 374d0c6
Show file tree
Hide file tree
Showing 16 changed files with 648 additions and 7 deletions.
233 changes: 233 additions & 0 deletions .circleci/config.yml
Expand Up @@ -385,6 +385,159 @@ jobs:
aws s3 cp "$pkg" "s3://pytorch/whl/${UPLOAD_CHANNEL}/<< parameters.subfolder >>" --acl public-read
done
unittest_linux_cpu:
<<: *binary_common
docker:
- image: "pytorch/manylinux-cuda102"
resource_class: 2xlarge+
steps:
- checkout
- run:
name: Generate cache key
# This will refresh cache on Sundays, nightly build should generate new cache.
command: echo "$(date +"%Y-%U")" > .circleci-weekly
- restore_cache:

keys:
- env-v2-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".circleci-weekly" }}

- run:
name: Setup
command: .circleci/unittest/linux/scripts/setup_env.sh
- save_cache:

key: env-v2-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".circleci-weekly" }}

paths:
- conda
- env
- run:
name: Install torchvision
command: .circleci/unittest/linux/scripts/install.sh
- run:
name: Run tests
command: .circleci/unittest/linux/scripts/run_test.sh
- run:
name: Post process
command: .circleci/unittest/linux/scripts/post_process.sh
- store_test_results:
path: test-results

unittest_linux_gpu:
<<: *binary_common
machine:
image: ubuntu-1604-cuda-10.1:201909-23
resource_class: gpu.small
environment:
image_name: "pytorch/manylinux-cuda101"
steps:
- checkout
- run:
name: Generate cache key
# This will refresh cache on Sundays, nightly build should generate new cache.
command: echo "$(date +"%Y-%U")" > .circleci-weekly
- restore_cache:

keys:
- env-v2-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".circleci-weekly" }}

- run:
name: Setup
command: docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/setup_env.sh
- save_cache:

key: env-v2-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".circleci-weekly" }}

paths:
- conda
- env
- run:
name: Install torchvision
command: docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/install.sh
- run:
name: Run tests
command: docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/run_test.sh
- run:
name: Post Process
command: docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/post_process.sh
- store_test_results:
path: test-results

unittest_windows_cpu:
<<: *binary_common
executor:
name: windows-cpu
steps:
- checkout
- run:
name: Generate cache key
# This will refresh cache on Sundays, nightly build should generate new cache.
command: echo "$(date +"%Y-%U")" > .circleci-weekly
- restore_cache:

keys:
- env-v2-windows-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/windows/scripts/environment.yml" }}-{{ checksum ".circleci-weekly" }}

- run:
name: Setup
command: .circleci/unittest/windows/scripts/setup_env.sh
- save_cache:

key: env-v2-windows-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/windows/scripts/environment.yml" }}-{{ checksum ".circleci-weekly" }}

paths:
- conda
- env
- run:
name: Install torchvision
command: .circleci/unittest/windows/scripts/install.sh
- run:
name: Run tests
command: .circleci/unittest/windows/scripts/run_test.sh
- run:
name: Post process
command: .circleci/unittest/windows/scripts/post_process.sh
- store_test_results:
path: test-results

unittest_windows_gpu:
<<: *binary_common
executor:
name: windows-gpu
environment:
CUDA_VERSION: "10.1"
steps:
- checkout
- run:
name: Generate cache key
# This will refresh cache on Sundays, nightly build should generate new cache.
command: echo "$(date +"%Y-%U")" > .circleci-weekly
- restore_cache:

keys:
- env-v1-windows-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/windows/scripts/environment.yml" }}-{{ checksum ".circleci-weekly" }}

- run:
name: Setup
command: .circleci/unittest/windows/scripts/setup_env.sh
- save_cache:

key: env-v1-windows-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/windows/scripts/environment.yml" }}-{{ checksum ".circleci-weekly" }}

paths:
- conda
- env
- run:
name: Install torchvision
command: .circleci/unittest/windows/scripts/install.sh
- run:
name: Run tests
command: .circleci/unittest/windows/scripts/run_test.sh
- run:
name: Post process
command: .circleci/unittest/windows/scripts/post_process.sh
- store_test_results:
path: test-results

workflows:
build:
Expand Down Expand Up @@ -712,6 +865,86 @@ workflows:
- python_type_check
- clang_format

unittest:
jobs:
- unittest_linux_cpu:
cu_version: cpu
name: unittest_linux_cpu_py3.6
python_version: '3.6'
- unittest_linux_cpu:
cu_version: cpu
name: unittest_linux_cpu_py3.7
python_version: '3.7'
- unittest_linux_cpu:
cu_version: cpu
name: unittest_linux_cpu_py3.8
python_version: '3.8'
- unittest_linux_gpu:
cu_version: cu101
filters:
branches:
only:
- master
- nightly
name: unittest_linux_gpu_py3.6
python_version: '3.6'
- unittest_linux_gpu:
cu_version: cu101
filters:
branches:
only:
- master
- nightly
name: unittest_linux_gpu_py3.7
python_version: '3.7'
- unittest_linux_gpu:
cu_version: cu101
filters:
branches:
only:
- master
- nightly
name: unittest_linux_gpu_py3.8
python_version: '3.8'
- unittest_windows_cpu:
cu_version: cpu
name: unittest_windows_cpu_py3.6
python_version: '3.6'
- unittest_windows_cpu:
cu_version: cpu
name: unittest_windows_cpu_py3.7
python_version: '3.7'
- unittest_windows_cpu:
cu_version: cpu
name: unittest_windows_cpu_py3.8
python_version: '3.8'
- unittest_windows_gpu:
cu_version: cu101
filters:
branches:
only:
- master
- nightly
name: unittest_windows_gpu_py3.6
python_version: '3.6'
- unittest_windows_gpu:
cu_version: cu101
filters:
branches:
only:
- master
- nightly
name: unittest_windows_gpu_py3.7
python_version: '3.7'
- unittest_windows_gpu:
cu_version: cu101
filters:
branches:
only:
- master
- nightly
name: unittest_windows_gpu_py3.8
python_version: '3.8'
nightly:
jobs:
- circleci_consistency
Expand Down

0 comments on commit 374d0c6

Please sign in to comment.