-
Notifications
You must be signed in to change notification settings - Fork 72
/
Copy path.gitlab-ci.yml
35 lines (32 loc) · 1.54 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# This file is the root of the gitlab ci pipeline.
# It sets pipeline variables such as the versions of the dependencies and the name of the docker image.
# It also defines the stages of the pipeline and includes the ci snippets for each stage.
# The ci snippets are located in the ci folder.
# Jobs should not be defined in this file but in their own file in the ci folder.
# Similar jobs should be grouped in the same file and use inheritance to avoid code duplication.
# The image custom image used in this pipeline is quite complex and large as it contains all the dependencies of SCIP.
# It is defined in .gitlab/docker/Dockerfile.
# The image is built in the first stage of the pipeline and then used in all the other stages.
# Jobs that do not require the dependecies inside the image should run on a smaller image like debian-slim.
variables:
IMAGE_NAME: ${CI_REGISTRY}/integer/scip/ci
# combine IMAGE_NAME and current branch
IMAGE: ${IMAGE_NAME}:${DOCKERFILE_HASH}
IMAGE_PATH: ${CI_PROJECT_DIR}/.gitlab/docker/Dockerfile
workflow:
rules:
# only run the pipeline on merge requests and when the title does not contain Draft
#- if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TITLE !~ /Draft/
- when: never
stages:
- image
- build
- test
- release
include:
- local: '.gitlab/docker/dockerfile_hash.yml'
- local: '.gitlab/jobs/prepare_image.yml'
- local: '.gitlab/jobs/cmake_and_ctest.yml'
- local: '.gitlab/jobs/linktest.yml'
- local: '.gitlab/jobs/russcip.yml'
- local: '.gitlab/jobs/valgrind.yml'