Continuous integration
Primary tests are done on GitLab CI. There are also tests on Travis.
Setting up a GitLab runner
GitLab.com offers the use of shares runner VM's to use for CI, but we need a priviledged one to be able to use sudo and sub docker images. As a project we maintain one runner for this, but if you want to experiment more in a feature branch of your own fork then it's best to setup a new one. Documentation on setting one up is on https://docs.gitlab.com/runner/install/ The minimal memory requirement seems to be 1GB. And up to 10GB of disk storage.
Example config file /etc/gitlab-runner/config.toml:
concurrent = 1
check_interval = 0
[[runners]]
name = "Initfour-helmo-ci_runner01"
url = "https://gitlab.com/ci"
token = "9N-J78KC9b7oQE8LMP_d"
executor = "docker"
[runners.docker]
tls_verify = false
image = "ruby:2.1"
privileged = true
disable_cache = false
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
[runners.cache]
The modified lines are 'privileged' and 'volumes'
Troubleshooting CI tests
When you have your own GitLab CI runner you can inspect the container while it's running the tests.
Adding an extra sleep 20m
as a last task in the .gitlab-ci.yml script section would keep it alive a bit longer. The default timeout is 3600 seconds.
Use docker ps
to get the container ID, and docker exec -ti [containerID] bash
to get a shell inside the container.