Files
the-littlest-jupyterhub/.circleci/config.yml

212 lines
5.3 KiB
YAML
Raw Normal View History

2020-02-17 10:38:53 +02:00
version: 2.1
2020-02-17 10:58:53 +02:00
executors:
ubuntu_docker:
docker:
# Match target OS of TLJH
- image: ubuntu:18.04
working_directory: ~/repo
2020-02-17 10:38:53 +02:00
commands:
setup_venv:
description: Setup hub venv
steps:
- run:
name: Setup venv
command: |
python3 -m venv /srv/venv
echo 'export PATH=/srv/venv/bin:$PATH' >> $BASH_ENV
install_python:
description: Install python3, venv, git and make
steps:
- run:
name: install python
command: |
apt-get update --yes && apt-get install --yes python3 python3-venv git make
2020-02-18 15:51:33 +02:00
build_systemd_image:
steps:
- run:
name: build systemd image
command: |
.circleci/integration-test.py build-image
basic_tests:
parameters:
upgrade:
type: string
default: ""
steps:
- run:
name: Run basic tests
command: |
.circleci/integration-test.py run-test basic-tests \
test_hub.py test_install.py test_extensions.py \
<< parameters.upgrade >>
admin_tests:
parameters:
upgrade:
type: string
default: ""
steps:
- run:
name: Run admin tests
command: |
.circleci/integration-test.py run-test \
--installer-args "--admin admin:admin" \
basic-tests test_admin_installer.py \
<< parameters.upgrade >>
plugin_tests:
parameters:
upgrade:
type: string
default: ""
steps:
- run:
name: Run plugin tests
command: |
.circleci/integration-test.py run-test \
--installer-args "--plugin /srv/src/integration-tests/plugins/simplest" \
plugins test_simplest_plugin.py \
<< parameters.upgrade >>
bootstrap_checks:
steps:
- run:
name: Run bootstrap checks
command: |
py.test integration-tests/test_bootstrap.py
jobs:
unit-test:
2020-02-17 10:58:53 +02:00
executor: ubuntu_docker
steps:
- checkout
# Setup Python
2020-02-17 10:38:53 +02:00
- install_python
# Download and cache dependencies
- restore_cache:
keys:
- v1-dependencies-py3.6-{{ checksum "setup.py" }}-{{ checksum "dev-requirements.txt" }}
- v1-dependencies-py3.6-
2020-02-17 10:38:53 +02:00
- setup_venv
- run:
name: install dependencies
command: |
pip install -r dev-requirements.txt
pip install -e .
- save_cache:
paths:
- /srv/venv/
key: v1-dependencies-py3.6-{{ checksum "setup.py" }}-{{ checksum "dev-requirements.txt" }}
- run:
name: run unit tests
command: |
py.test --cov=tljh tests/
- run:
name: upload code coverage stats
command: |
codecov
integration-test:
docker:
- image: docker:18.05.0-ce-git
steps:
- run:
name: setup python3
command: |
apk add --no-cache python3 pytest
2020-02-17 10:38:53 +02:00
- checkout
2020-02-18 15:51:33 +02:00
- setup_remote_docker
2020-02-18 15:51:33 +02:00
- build_systemd_image
2020-02-18 15:51:33 +02:00
- basic-tests
2020-02-18 15:51:33 +02:00
- admin_tests
2019-07-16 20:18:45 +03:00
2020-02-18 15:51:33 +02:00
- plugin_tests
- bootstrap_checks
2019-07-16 20:18:45 +03:00
2020-02-18 15:51:33 +02:00
upgrade-test:
docker:
- image: docker:18.05.0-ce-git
steps:
- run:
2020-02-18 15:51:33 +02:00
name: setup python3
command: |
2020-02-18 15:51:33 +02:00
apk add --no-cache python3 pytest
- checkout
- setup_remote_docker
- build_systemd_image
- basic-tests:
upgrade: "--upgrade"
- admin_tests:
upgrade: "--upgrade"
2020-02-18 15:51:33 +02:00
- plugin_tests:
upgrade: "--upgrade"
documentation:
2020-02-17 10:58:53 +02:00
executor: ubuntu_docker
steps:
- checkout
# Setup Python
2020-02-17 10:38:53 +02:00
- install_python
# Download and cache dependencies
- restore_cache:
key: v1-dependencies-py3.6-sphinx
2020-02-17 10:38:53 +02:00
- setup_venv
- run:
name: install dependencies
command: |
pip install sphinx
pip install -r docs/requirements.txt
- save_cache:
paths:
- /srv/venv/
key: v1-dependencies-py3.6-sphinx
- run:
name: build documentation
command: |
cd docs
make html
- store_artifacts:
path: docs/_build/html/
destination: html
workflows:
version: 2
all-tests:
jobs:
- unit-test
- integration-test
- documentation