Task: task_hd_equal and task_equal compare the goals structurally
[why3.git] / .gitlab-ci.yml
blobc1e4a63be2752b48f15148ab3870cc6e8b3b4b7c
1 stages:
2   - docker
3   - build
4   - test
5   - nightly
6   - deploy
8 variables:
9   BUILD_IMAGE: "$CI_REGISTRY_IMAGE:ci-master-2019-12-11"
10   SPHINX_IMAGE: "$CI_REGISTRY_IMAGE:ci-sphinx"
11   GIT_CLEAN_FLAGS: "-ffdxq"
13 build-image:
14   stage: docker
15   script:
16     - docker login -u "$CI_REGISTRY_USER" -p "$CI_JOB_TOKEN" "$CI_REGISTRY"
17     - if docker pull "$BUILD_IMAGE"; then echo "Image already exists!"; exit 1; fi
18     - docker build --force-rm -t "$BUILD_IMAGE" - < misc/Dockerfile.build
19     - docker push "$BUILD_IMAGE"
20     - docker rmi "$BUILD_IMAGE"
21   only:
22     variables:
23       - $NEW_BUILD_IMAGE
24   tags:
25     - shell
27 sphinx-image:
28   stage: docker
29   script:
30     - docker login -u "$CI_REGISTRY_USER" -p "$CI_JOB_TOKEN" "$CI_REGISTRY"
31     - if docker pull "$SPHINX_IMAGE"; then echo "Image already exists!"; exit 1; fi
32     - docker build --force-rm -t "$SPHINX_IMAGE" - < misc/Dockerfile.sphinx
33     - docker push "$SPHINX_IMAGE"
34     - docker rmi "$SPHINX_IMAGE"
35   only:
36     variables:
37       - $NEW_SPHINX_IMAGE
38   tags:
39     - shell
41 .docker_template: &docker_definition
42   image: "$BUILD_IMAGE"
43   tags:
44     - docker
46 .build_template: &build_definition
47   stage: build
48   script:
49     - misc/ci-local.sh
50   <<: *docker_definition
52 build-system:
53   variables:
54     COMPILER: system
55   <<: *build_definition
57 build-4.09.0:
58   variables:
59     COMPILER: 4.09.0
60   <<: *build_definition
62 bench-system:
63   variables:
64     COMPILER: system
65   stage: test
66   script:
67     - misc/ci-local.sh bench ide doc
68   <<: *docker_definition
70 bench-4.09.0:
71   variables:
72     COMPILER: 4.09.0
73   stage: test
74   script:
75     - misc/ci-local.sh ide bench
76   <<: *docker_definition
78 full:
79   stage: test
80   variables:
81     COMPILER: full
82   script:
83     - misc/ci-local.sh ide doc web_ide bench
84   <<: *docker_definition
86 nightly-bench:
87   stage: nightly
88   variables:
89     COMPILER: bench
90   script:
91     - misc/ci-local.sh nightly-bench-reduced
92   <<: *docker_definition
94 ce-bench:
95   stage: nightly
96   variables:
97     COMPILER: bench
98   script:
99     - misc/ci-local.sh ce-bench
100   <<: *docker_definition
102 opam:
103   stage: build
104   script:
105     - opam switch full
106     - opam pin -v -y add why3 .
107     - opam pin -v -y add why3-ide .
108     - opam pin -v -y add why3-coq .
109   <<: *docker_definition
111 deploy:
112   stage: deploy
113   script:
114     - BRANCH=$(echo $CI_COMMIT_REF_NAME | tr -cs "[:alnum:].\n" "-")
115     - CACHE=$CI_REGISTRY_IMAGE:cache-$BRANCH
116     - IMAGE=$CI_REGISTRY_IMAGE:$BRANCH
117     - docker login -u "$CI_REGISTRY_USER" -p "$CI_JOB_TOKEN" "$CI_REGISTRY"
118     - docker pull "$CACHE" || true
119     - docker pull "$IMAGE" || true
120     - docker build --force-rm --cache-from="$CACHE" --target=builder -t "$CACHE" -f misc/Dockerfile.deploy .
121     - docker build --force-rm --cache-from="$CACHE" --cache-from="$IMAGE" -t "$IMAGE" -f misc/Dockerfile.deploy .
122     - docker push "$CACHE"
123     - docker push "$IMAGE"
124     - docker rmi "$CACHE"
125     - docker rmi "$IMAGE"
126     - docker image prune -f
127   only:
128     - master
129     - /^bugfix[/]v[0-9.]*$/
130     - tags
131   tags:
132     - shell
134 .sphinx_template: &sphinx_definition
135   image: "$SPHINX_IMAGE"
136   tags:
137     - docker
139 doc:
140   stage: test
141   script:
142     - make -f doc.Makefile public/index.html
143   <<: *sphinx_definition
145 pages:
146   stage: deploy
147   script:
148     - make -f doc.Makefile public/index.html
149   artifacts:
150     paths:
151     - public
152   only:
153     - master
154   <<: *sphinx_definition