README.md 3.19 KB
Newer Older
Ansgar Burchardt's avatar
Ansgar Burchardt committed
1 2 3 4 5 6 7 8
Docker images for GitLab CI
===========================

Images
------

The current images are:

9 10 11 12
| image                    | parent            | description                                                |
|--------------------------|-------------------|------------------------------------------------------------|
| duneci/base:8            | debian:8          | Debian 8 with gcc 4.9.2, clang 3.5, cmake 3.0.2            |
| duneci/base:8-backports  | duneci/base:8     | Debian 8 with gcc 4.9.2, clang 3.8 (backport), cmake 3.0.2 |
Ansgar Burchardt's avatar
Ansgar Burchardt committed
13
| duneci/base:9            | debian:9          | Debian 9 with gcc 6.2, clang 3.8, cmake 3.7                |
14 15
| duneci/base:16.04        | ubuntu:16.04      | Ubuntu LTS 16.04 with gcc 5.4.0, clang 3.8.0, cmake 3.5.1  |
| duneci/base:16.10        | ubuntu:16.10      | Ubuntu 16.10 with gcc 6.2.0, clang 3.8.1, cmake 3.5.2      |
Ansgar Burchardt's avatar
Ansgar Burchardt committed
16 17
| duneci/dune:2.3          | duneci/base:8     | DUNE 2.3 core modules (Debian packages)                    |
| duneci/dune:2.4          | duneci/base:16.04 | DUNE 2.4 core modules (Debian packages)                    |
18
| duneci/dune:2.5          | duneci/base:9     | DUNE 2.5 core and staging modules (Debian packages)        |
Ansgar Burchardt's avatar
Ansgar Burchardt committed
19
| duneci/dune:git          | duneci/base:9     | DUNE master core and staging modules (Git)                 |
20 21
| duneci/dune-fufem:2.4    | duneci/dune:2.4   | dune-{fufem,functions,solvers,typetree} (2.4 branch)       |
| duneci/dune-fufem:git    | duneci/dune:git   | dune-{elasticity,fufem,grid-glue,solvers} (master branch)  |
Ansgar Burchardt's avatar
Ansgar Burchardt committed
22 23 24 25

`.gitlab-ci.yml`
----------------

26 27 28 29 30 31 32
Installing dependencies:
```
before_script:
  - duneci-install-module https://gitlab.dune-project.org/core/dune-common.git
  - duneci-install-module https://gitlab.dune-project.org/core/dune-geometry.git
```

Ansgar Burchardt's avatar
Ansgar Burchardt committed
33 34 35
To build with several images:
```
---
Ansgar Burchardt's avatar
Ansgar Burchardt committed
36 37
dune:2.4--gcc:
  image: duneci/dune:2.4
38
  script: duneci-standard-test
Ansgar Burchardt's avatar
Ansgar Burchardt committed
39

Ansgar Burchardt's avatar
Ansgar Burchardt committed
40 41
dune:2.4--clang:
  image: duneci/dune:2.4
42
  script: duneci-standard-test --opts=/duneci/opts.clang
Ansgar Burchardt's avatar
Ansgar Burchardt committed
43 44 45 46 47
```

You can also specify a default image and use it in several jobs:

```
Ansgar Burchardt's avatar
Ansgar Burchardt committed
48
---
Ansgar Burchardt's avatar
Ansgar Burchardt committed
49 50 51
image: duneci/dune:2.4

dune:2.4--gcc:
52
  script: duneci-standard-test
Ansgar Burchardt's avatar
Ansgar Burchardt committed
53 54

dune:2.4--clang:
55
  script: duneci-standard-test --opts=/duneci/opts.clang
Ansgar Burchardt's avatar
Ansgar Burchardt committed
56
```
57

58 59
For more information, take a look at the [GitLab documentation on `.gitlab-ci.yml`](https://docs.gitlab.com/ce/ci/yaml/README.html).

60 61 62 63 64 65 66 67 68 69 70 71 72 73
Updating gitlab-runner
----------------------

To update `gitlab-runner` on the VM:

```
docker pull gitlab/gitlab-runner:latest
docker stop gitlab-runner
docker rm -v gitlab-runner
docker run -d --name gitlab-runner --restart always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  gitlab/gitlab-runner:latest
```
74 75 76 77 78 79 80 81 82 83 84
or, if a HTTP proxy is required,
```
docker run -d --name gitlab-runner --restart always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  -e ftp_proxy=${ftp_proxy} -e FTP_PROXY=${FTP_PROXY} \
  -e http_proxy=${http_proxy} -e HTTP_PROXY=${HTTP_PROXY} \
  -e https_proxy=${https_proxy} -e HTTPS_PROXY=${HTTPS_PROXY} \
  -e no_proxy=${no_proxy} -e NO_PROXY=${NO_PROXY} \
  gitlab/gitlab-runner:latest
```
85 86 87 88

The current version can be shown by running

```
89
docker exec gitlab-runner gitlab-runner -v
90
```