Commit 0557af13 authored by Lukas Riedel's avatar Lukas Riedel

Merge branch 'improve-ci-config' into 'master'

Improve CI/CD configuration

Closes #83 and #84

See merge request !76
parents 7f1d982e a87212d8
...@@ -28,7 +28,8 @@ stages: ...@@ -28,7 +28,8 @@ stages:
setup:dune-env: &setup setup:dune-env: &setup
stage: setup stage: setup
only: only:
- web # activate through 'Run pipeline' only. variables:
- $REBUILD_BASE_IMAGE # must be defined and have non-empty value
tags: tags:
- dind - dind
image: docker:stable image: docker:stable
...@@ -170,6 +171,7 @@ deploy:dockerhub-devel: &deploy ...@@ -170,6 +171,7 @@ deploy:dockerhub-devel: &deploy
- docker:dind - docker:dind
variables: variables:
DOCKER_DRIVER: overlay2 DOCKER_DRIVER: overlay2
dependencies: []
before_script: before_script:
- $DOCKER_LOGIN - $DOCKER_LOGIN
script: script:
......
...@@ -3,10 +3,19 @@ ...@@ -3,10 +3,19 @@
## Unreleased ## Unreleased
### Added
* Documentation of Docker images and their usage in the CI/CD pipeline.
### Changed
* Rebuilds of the DUNE environment Docker image are now triggered by setting the
CI variable `REBUILD_BASE_IMAGE` to a non-empty value. Previously, the
builds in stage `setup` where triggered by any manual pipeline run.
### Fixed ### Fixed
* Removed VTK output from `dorie_mass_conservation` executable, which would * Removed VTK output from `dorie_mass_conservation` executable, which would
cause the corresponding test to fail if the designated output directory did cause the corresponding test to fail if the designated output directory did
not exist. not exist.
* Removed CI artifacts of `test` stage from `deploy` jobs.
## 1.1.0 (2018-07-27) ## 1.1.0 (2018-07-27)
......
# DORiE Docker Images
DORiE uses [Docker](https://www.docker.com/) images for testing and deploying
applications. These images are publicly available from
[Docker Hub](https://hub.docker.com/). There are two repositories:
* [`dorie/dorie`](https://hub.docker.com/r/dorie/dorie/): The DORiE application.
* [`dorie/dune-env`](https://hub.docker.com/r/dorie/dune-env/): The DUNE
environment image.
`dune-env` is used for compiling DORiE in a 'clean' Ubuntu environment where all
dependencies are already installed. The final DORiE application image is the
DUNE image with DORiE installed.
We differentiate between two base images, one where DUNE is compiled with GCC,
and one where it is compiled with Clang.
## GitLab CI configuration
Both images are updated by the GitLab CI/CD Pipeline defined in
[`.gitlab-ci.yml`](../gitlab-ci.yml).
The `setup` build stage is builds a new DUNE environment image "from scratch".
It is triggered by running a pipeline with the CI variable `REBUILD_BASE_IMAGE`
set to a non-empty value. This is achieved by manually starting the pipeline
from the GitLab web interface ("CI/CD" - "Pipelines" - "Run Pipeline") and
entering the variable as well as an arbitrary value. This should only be
necessary if dependencies or their required versions change.
The `prep` stage updates all APT and DUNE packages in the DUNE environment image
and is run whenever a pipeline includes the deployment of a new application
image.
The `deploy` stage deploys DORiE application images. It compiles DORiE into the
DUNE environment image. This stage is only run if tags are pushed or commits
are pushed to `master`.
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment