Add at new repo again
This commit is contained in:
@@ -0,0 +1,179 @@
|
||||
# Python CircleCI 2.0 configuration file
|
||||
#
|
||||
# Check https://circleci.com/docs/2.0/language-python/ for more details
|
||||
#
|
||||
version: 2
|
||||
|
||||
# -------------------------------------------------------------------------------------
|
||||
# Environments to run the jobs in
|
||||
# -------------------------------------------------------------------------------------
|
||||
cpu: &cpu
|
||||
docker:
|
||||
- image: circleci/python:3.6.8-stretch
|
||||
resource_class: medium
|
||||
|
||||
gpu: &gpu
|
||||
machine:
|
||||
image: ubuntu-1604:201903-01
|
||||
docker_layer_caching: true
|
||||
resource_class: gpu.small
|
||||
|
||||
# -------------------------------------------------------------------------------------
|
||||
# Re-usable commands
|
||||
# -------------------------------------------------------------------------------------
|
||||
install_python: &install_python
|
||||
- run:
|
||||
name: Install Python
|
||||
working_directory: ~/
|
||||
command: |
|
||||
pyenv install 3.6.1
|
||||
pyenv global 3.6.1
|
||||
|
||||
setup_venv: &setup_venv
|
||||
- run:
|
||||
name: Setup Virtual Env
|
||||
working_directory: ~/
|
||||
command: |
|
||||
python -m venv ~/venv
|
||||
echo ". ~/venv/bin/activate" >> $BASH_ENV
|
||||
. ~/venv/bin/activate
|
||||
python --version
|
||||
which python
|
||||
which pip
|
||||
pip install --upgrade pip
|
||||
|
||||
install_dep: &install_dep
|
||||
- run:
|
||||
name: Install Dependencies
|
||||
command: |
|
||||
pip install --progress-bar off -U 'git+https://github.com/facebookresearch/fvcore'
|
||||
pip install --progress-bar off cython opencv-python
|
||||
pip install --progress-bar off 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
|
||||
pip install --progress-bar off torch torchvision
|
||||
|
||||
install_detectron2: &install_detectron2
|
||||
- run:
|
||||
name: Install Detectron2
|
||||
command: |
|
||||
gcc --version
|
||||
pip install -U --progress-bar off -e .[dev]
|
||||
python -m detectron2.utils.collect_env
|
||||
|
||||
install_nvidia_driver: &install_nvidia_driver
|
||||
- run:
|
||||
name: Install nvidia driver
|
||||
working_directory: ~/
|
||||
command: |
|
||||
wget -q 'https://s3.amazonaws.com/ossci-linux/nvidia_driver/NVIDIA-Linux-x86_64-430.40.run'
|
||||
sudo /bin/bash ./NVIDIA-Linux-x86_64-430.40.run -s --no-drm
|
||||
nvidia-smi
|
||||
|
||||
run_unittests: &run_unittests
|
||||
- run:
|
||||
name: Run Unit Tests
|
||||
command: |
|
||||
python -m unittest discover -v -s tests
|
||||
|
||||
# -------------------------------------------------------------------------------------
|
||||
# Jobs to run
|
||||
# -------------------------------------------------------------------------------------
|
||||
jobs:
|
||||
cpu_tests:
|
||||
<<: *cpu
|
||||
|
||||
working_directory: ~/detectron2
|
||||
|
||||
steps:
|
||||
- checkout
|
||||
- <<: *setup_venv
|
||||
|
||||
# Cache the venv directory that contains dependencies
|
||||
- restore_cache:
|
||||
keys:
|
||||
- cache-key-{{ .Branch }}-ID-20200425
|
||||
|
||||
- <<: *install_dep
|
||||
|
||||
- save_cache:
|
||||
paths:
|
||||
- ~/venv
|
||||
key: cache-key-{{ .Branch }}-ID-20200425
|
||||
|
||||
- <<: *install_detectron2
|
||||
|
||||
- run:
|
||||
name: isort
|
||||
command: |
|
||||
isort -c -sp .
|
||||
- run:
|
||||
name: black
|
||||
command: |
|
||||
black --check -l 100 .
|
||||
- run:
|
||||
name: flake8
|
||||
command: |
|
||||
flake8 .
|
||||
|
||||
- <<: *run_unittests
|
||||
|
||||
gpu_tests:
|
||||
<<: *gpu
|
||||
|
||||
working_directory: ~/detectron2
|
||||
|
||||
steps:
|
||||
- checkout
|
||||
- <<: *install_nvidia_driver
|
||||
|
||||
- run:
|
||||
name: Install nvidia-docker
|
||||
working_directory: ~/
|
||||
command: |
|
||||
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
|
||||
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
|
||||
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
|
||||
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
|
||||
sudo apt-get update && sudo apt-get install -y nvidia-docker2
|
||||
# reload the docker daemon configuration
|
||||
sudo pkill -SIGHUP dockerd
|
||||
|
||||
- run:
|
||||
name: Launch docker
|
||||
working_directory: ~/detectron2/docker
|
||||
command: |
|
||||
nvidia-docker build -t detectron2:v0 -f Dockerfile-circleci .
|
||||
nvidia-docker run -itd --name d2 detectron2:v0
|
||||
docker exec -it d2 nvidia-smi
|
||||
|
||||
- run:
|
||||
name: Build Detectron2
|
||||
command: |
|
||||
docker exec -it d2 pip install 'git+https://github.com/facebookresearch/fvcore'
|
||||
docker cp ~/detectron2 d2:/detectron2
|
||||
# This will build d2 for the target GPU arch only
|
||||
docker exec -it d2 pip install -e /detectron2
|
||||
docker exec -it d2 python3 -m detectron2.utils.collect_env
|
||||
docker exec -it d2 python3 -c 'import torch; assert(torch.cuda.is_available())'
|
||||
|
||||
- run:
|
||||
name: Run Unit Tests
|
||||
command: |
|
||||
docker exec -e CIRCLECI=true -it d2 python3 -m unittest discover -v -s /detectron2/tests
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
regular_test:
|
||||
jobs:
|
||||
- cpu_tests
|
||||
- gpu_tests
|
||||
|
||||
#nightly_test:
|
||||
#jobs:
|
||||
#- gpu_tests
|
||||
#triggers:
|
||||
#- schedule:
|
||||
#cron: "0 0 * * *"
|
||||
#filters:
|
||||
#branches:
|
||||
#only:
|
||||
#- master
|
Reference in New Issue
Block a user