Commit c068e256 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

(cherry picked from commit 0557af13)
parent 897c8e7a
......@@ -28,7 +28,8 @@ stages:
setup:dune-env: &setup
stage: setup
only:
- web # activate through 'Run pipeline' only.
variables:
- $REBUILD_BASE_IMAGE # must be defined and have non-empty value
tags:
- dind
image: docker:stable
......@@ -170,6 +171,7 @@ deploy:dockerhub-devel: &deploy
- docker:dind
variables:
DOCKER_DRIVER: overlay2
dependencies: []
before_script:
- $DOCKER_LOGIN
script:
......
# 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