Drone is a Docker-based CI server. All Systems projects at Vokal run through it before being merged into their staging environments. It is integrated with GitHub using a service hook, which triggers a drone build when a PR is opened to the master repo.
A drone build consists of a sequence of steps defined in the
.drone.yml, which should be defined on the top level of the repo. An example
.drone.yml would look like:
build: image: python:3.5 environment: - DATABASE_URL=postgres://postgres:email@example.com:5432/postgres - SECRET_KEY=whatever - REPO_OWNER=vokal - REPO_NAME=my-repo-name - ENVIRONMENT=drone volumes: - ./sql:/opt/flyway-3.2.1/sql/ commands: - sleep 5 - pip install -r requirements.txt - flyway -url=jdbc:postgresql://127.0.0.1:5432/postgres -locations=filesystem:./sql -user=postgres -password=whatever migrate - nosetests -v --with-coverage --cover-package=app --cover-xml - export CVR_URL="https://cvr.vokal.io/coverage?commit=$DRONE_COMMIT&owner=$REPO_OWNER&repo=$REPO_NAME&coveragetype=cobertura" - curl -F firstname.lastname@example.org $CVR_URL
To get your repo added to drone contact one of the senior devs.