187 lines
4.5 KiB
YAML
Executable File
187 lines
4.5 KiB
YAML
Executable File
# Python CircleCI 2.0 configuration file
|
|
#
|
|
# Check https://circleci.com/docs/2.0/language-python/ for more details
|
|
#
|
|
version: 2.0
|
|
|
|
references:
|
|
|
|
install_deps: &install_deps
|
|
run:
|
|
name: Install Dependences
|
|
command: |
|
|
sudo apt-get update && sudo apt-get install -y cmake
|
|
pip install "$TORCH_VERSION"
|
|
pip install -r requirements/base.txt -q
|
|
sudo pip install pytest -q
|
|
pip install -r requirements/devel.txt -q
|
|
|
|
tests: &tests
|
|
run:
|
|
name: Testing
|
|
command: |
|
|
python --version ; pip --version ; pip list
|
|
py.test pytorch_lightning tests -v --junitxml=test-reports/pytest_junit.xml
|
|
no_output_timeout: 15m
|
|
|
|
examples: &examples
|
|
run:
|
|
name: PL Examples
|
|
command: |
|
|
pip install -r ./requirements/examples.txt --user
|
|
python --version ; pip --version ; pip list
|
|
py.test pl_examples -v --junitxml=test-reports/pytest_junit.xml
|
|
no_output_timeout: 20m
|
|
|
|
install_pkg: &install_pkg
|
|
run:
|
|
name: Install package
|
|
command: |
|
|
virtualenv vEnv ; source vEnv/bin/activate
|
|
pip install --editable . ; cd .. & python -c "import pytorch_lightning ; print(pytorch_lightning.__version__)"
|
|
deactivate ; rm -rf vEnv
|
|
|
|
create_pkg: &create_pkg
|
|
run:
|
|
name: Create package
|
|
command: |
|
|
sudo pip install twine==1.13.0
|
|
python setup.py sdist
|
|
twine check dist/*
|
|
python setup.py clean
|
|
|
|
format: &format
|
|
run:
|
|
name: Formatting
|
|
command: |
|
|
python --version ; pip --version
|
|
sudo pip install flake8 -q
|
|
pip list
|
|
flake8 .
|
|
|
|
make_docs: &make_docs
|
|
run:
|
|
name: Make Documentation
|
|
command: |
|
|
# First run the same pipeline as Read-The-Docs
|
|
# apt-get update && apt-get install -y cmake
|
|
# using: https://hub.docker.com/r/readthedocs/build
|
|
# we need to use py3.7 ot higher becase of an issue with metaclass inheritence
|
|
pyenv global 3.7.3
|
|
python --version
|
|
pip install -r requirements/docs.txt
|
|
cd docs; make clean; make html --debug --jobs 2 SPHINXOPTS="-W"
|
|
|
|
test_docs: &test_docs
|
|
run:
|
|
name: Testing Documentation
|
|
command: |
|
|
# Second run examples in docs
|
|
sudo apt-get update && sudo apt-get install -y cmake
|
|
sudo pip install -r requirements/docs.txt
|
|
cd docs; make doctest; make coverage
|
|
|
|
jobs:
|
|
|
|
Build-Docs:
|
|
docker:
|
|
- image: readthedocs/build:latest
|
|
steps:
|
|
- checkout
|
|
- *make_docs
|
|
- store_artifacts:
|
|
# allows us to preview the generated html pages
|
|
path: docs/build/html/
|
|
destination: html
|
|
|
|
Formatting:
|
|
docker:
|
|
- image: circleci/python:3.7
|
|
environment:
|
|
- TORCH_VERSION: "torch"
|
|
steps:
|
|
- checkout
|
|
- *format
|
|
|
|
PyTorch:
|
|
docker:
|
|
- image: circleci/python:3.6
|
|
environment:
|
|
- TORCH_VERSION: "torch"
|
|
steps: &steps
|
|
- checkout
|
|
#- restore_cache:
|
|
# keys:
|
|
# # when lock file changes, use increasingly general patterns to restore cache
|
|
# - pip-packages--{{ .Environment.CIRCLE_JOB }}
|
|
# - pip-packages--
|
|
- *install_deps
|
|
#- save_cache:
|
|
# key: pip-packages--{{ .Environment.CIRCLE_JOB }}
|
|
# paths:
|
|
# # this path depends on where pipenv creates a virtualenv
|
|
# - "~/.cache/pip"
|
|
# - "/usr/local/lib/python3.6/site-packages"
|
|
# - "/usr/local/lib/site-python"
|
|
- *tests
|
|
- store_test_results:
|
|
path: test-reports
|
|
- store_artifacts:
|
|
path: test-reports
|
|
|
|
PyTorch-v1_3:
|
|
docker:
|
|
- image: circleci/python:3.6
|
|
environment:
|
|
- TORCH_VERSION: "torch>=1.3, <1.4"
|
|
steps: *steps
|
|
|
|
PyTorch-v1_4:
|
|
docker:
|
|
- image: circleci/python:3.6
|
|
environment:
|
|
- TORCH_VERSION: "torch>=1.4, <1.5"
|
|
steps: *steps
|
|
|
|
PyTorch-v1_5:
|
|
docker:
|
|
- image: circleci/python:3.6
|
|
environment:
|
|
- TORCH_VERSION: "torch>=1.5, <1.6"
|
|
steps: *steps
|
|
|
|
Examples:
|
|
docker:
|
|
- image: circleci/python:3.7
|
|
environment:
|
|
- TORCH_VERSION: "torch"
|
|
- SPHINX_MOCK_REQUIREMENTS: 0
|
|
steps:
|
|
- checkout
|
|
- *install_deps
|
|
- *test_docs
|
|
- *examples
|
|
|
|
Install-pkg:
|
|
docker:
|
|
- image: circleci/python:3.7
|
|
steps:
|
|
- checkout
|
|
- *create_pkg
|
|
- *install_pkg
|
|
|
|
#orbs:
|
|
# python: circleci/python@0.2.1
|
|
|
|
workflows:
|
|
version: 2
|
|
build:
|
|
jobs:
|
|
- Formatting
|
|
- Build-Docs
|
|
- PyTorch-v1_3
|
|
- PyTorch-v1_4
|
|
- PyTorch-v1_5
|
|
- Install-pkg
|
|
- Examples
|