microblog.pub/.drone.yml
Thomas Sileo 922c9bebb2 Tweak CI
2019-08-01 21:00:58 +02:00

95 lines
3.4 KiB
YAML

---
priviliged: true # Needed for Docker in Docker
kind: pipeline
name: default
steps:
# Run Mypy/Flake8/black linters before any further work is done
- name: lint
image: python:3
commands:
- pip install -U pip
- pip install mypy flake8 black
- black --check .
- flake8
- mypy --ignore-missing-imports .
- mypy --ignore-missing-imports setup_wizard
# Build the container images we need for the test suite
- name: build_containers
image: docker:dind
environment:
DOCKER_HOST: tcp://docker:2375
commands:
- apk update && apk upgrade && apk add --no-cache bash git openssh curl
- docker network create fede
- docker pull mongo
- docker pull poussetaches/poussetaches
- docker build . -t microblogpub:latest
# Run poussetaches (will be shared by the two microblog.pub instances) "in the background"
- name: run_poussetaches
image: docker:dind
detach: true
environment:
DOCKER_HOST: tcp://docker:2375
POUSSETACHES_AUTH_KEY: lol
commands:
- docker run -p 7991:7991 --net fede -e POUSSETACHES_AUTH_KEY --name poussetaches poussetaches/poussetaches
# Run MongoDB (will be shared by the two microblog.pub instances) "in the background"
- name: run_mongodb
image: docker:dind
detach: true
environment:
DOCKER_HOST: tcp://docker:2375
commands:
- docker run -p 27017:27017 --net fede --name mongo mongo
# Run a first microblog.pub instance "in the background"
- name: microblogpub_instance1
image: docker:dind
detach: true
environment:
DOCKER_HOST: tcp://docker:2375
MICROBLOGPUB_DEBUG: 1
MICROBLOGPUB_POUSSETACHES_HOST: http://poussetaches:7991
MICROBLOGPUB_INTERNAL_HOST: http://instance1_web:5005
MICROBLOGPUB_MONGODB_HOST: mongo:27017
POUSSETACHES_AUTH_KEY: lol
commands:
- sleep 5
- 'docker run -p 5006:5005 --net fede -v "`pwd`/tests/fixtures/instance1/config:/app/config" -e MICROBLOGPUB_DEBUG -e MICROBLOGPUB_INTERNAL_HOST -e MICROBLOGPUB_MONGODB_HOST -e MICROBLOGPUB_POUSSETACHES_HOST -e POUSSETACHES_AUTH_KEY --name instance1_web microblogpub'
# Run the second microblog.pub instance "in the background"
- name: microblogpub_instance2
image: docker:dind
detach: true
environment:
DOCKER_HOST: tcp://docker:2375
MICROBLOGPUB_DEBUG: 1
MICROBLOGPUB_POUSSETACHES_HOST: http://poussetaches:7991
MICROBLOGPUB_INTERNAL_HOST: http://instance2_web:5005
MICROBLOGPUB_MONGODB_HOST: mongo:27017
POUSSETACHES_AUTH_KEY: lol
commands:
- 'docker run -p 5007:5005 --net fede -v "`pwd`/tests/fixtures/instance2/config:/app/config" -e MICROBLOGPUB_DEBUG -e MICROBLOGPUB_INTERNAL_HOST -e MICROBLOGPUB_MONGODB_HOST -e MICROBLOGPUB_POUSSETACHES_HOST -e POUSSETACHES_AUTH_KEY --name instance2_web microblogpub'
# Run some tests against the two instances to ensure federation is working
- name: federation_test
image: python:3
commands:
- pip install -U pip
- pip install -r dev-requirements.txt
# Federation tests (with two local instances)
- python -m pytest -v -s --ignore data -k federatio
# Setup the services needed to do some "Docker in Docker" (or dind)
services:
- name: docker
image: docker:dind
privileged: true
---
kind: signature
hmac: ae911176117298c18ecfcd95fbdbd62304c5f32462b42f2aefdd5a5b834fed60
...