aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Martin-Dorel2020-03-08 15:22:33 +0100
committerErik Martin-Dorel2020-03-08 15:51:14 +0100
commit563f395e1a41caf4978fe9881250ec68796e36a0 (patch)
treec26905760896e833863df5c20457f8af3b42b94b
parenta7f4eb76935157112aa844b6c5ac29a36898235f (diff)
refactor: Simplify the Dockerfiles
* the CLI option --build-arg=compiler="${OPAM_SWITCH}" is now useless (it had been introduced to be able to compile Coq versions < 8.7, while mathcomp-dev now requires Coq 8.7+) * the "coqorg/base:bare" image now contains the two environment vars COMPILER and COMPILER_EDGE => clear COMPILER="" in mathcomp-dev's Dockerfile multi-stage build.
-rw-r--r--.gitlab-ci.yml8
-rw-r--r--Dockerfile15
-rw-r--r--Dockerfile.make14
3 files changed, 11 insertions, 26 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2df217e..8be4087 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,5 @@
# Design:
# - build stage (e.g. docker build -t mathcomp-dev:$IID_$SLUG_coq-8.7 .)
-# - choice of the OCaml compiler: var OPAM_SWITCH in {base, edge}
-# (Dockerfile containing: "opam switch set $compiler && eval $(opam env)")
# - all branches (not tags) => push on GitLab registry
# - GitHub PRs => push on GitLab and report back thanks to @coqbot
# - test stage (image: mathcomp-dev:$IID_$SLUG_coq-8.7)
@@ -43,12 +41,11 @@ stages:
variables:
# This image will be built locally only (not pushed)
IMAGE: "mathcomp-dev:make_coq-${COQ_VERSION}"
- OPAM_SWITCH: "edge"
before_script:
- echo "${OPAM_SWITCH}"
- echo "${COQ_VERSION}"
script:
- - docker build -f Dockerfile.make --pull --build-arg=coq_image="coqorg/coq:${COQ_VERSION}" --build-arg=compiler="${OPAM_SWITCH}" -t "${IMAGE}" .
+ - docker build -f Dockerfile.make --pull --build-arg=coq_image="coqorg/coq:${COQ_VERSION}" -t "${IMAGE}" .
except:
- tags
- merge_requests
@@ -67,7 +64,6 @@ make-coq-latest:
- docker:dind
variables:
IMAGE: "${CI_REGISTRY_IMAGE}:${CI_PIPELINE_IID}_${CI_COMMIT_REF_SLUG}_${CI_JOB_NAME}"
- OPAM_SWITCH: "edge"
before_script:
- echo "${OPAM_SWITCH}"
- echo "${CI_JOB_TOKEN}" | docker login -u "${CI_REGISTRY_USER}" --password-stdin "${CI_REGISTRY}"
@@ -85,7 +81,7 @@ make-coq-latest:
- tags
- merge_requests
- schedules
-
+
coq-8.7:
extends: .opam-build-once
diff --git a/Dockerfile b/Dockerfile
index 74ee396..65b7b30 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,18 +5,12 @@ WORKDIR /home/coq/mathcomp
COPY . .
-ARG compiler="base"
-# other possible value: "edge"
-
RUN ["/bin/bash", "--login", "-c", "set -x \
- && declare -A switch_table \
- && switch_table=( [\"base\"]=\"${COMPILER}\" [\"edge\"]=\"${COMPILER_EDGE}\" ) \
- && opam_switch=\"${switch_table[${compiler}]}\" \
- && [ -n \"opam_switch\" ] \
- && opam switch set ${opam_switch} \
+ && [ -n \"${COMPILER_EDGE}\" ] \
+ && opam switch set \"${COMPILER_EDGE}\" \
&& eval $(opam env) \
- && unset \"switch_table[${compiler}]\" \
- && for sw in \"${switch_table[@]}\"; do if [ -n \"$sw\" ]; then opam switch remove -y \"${sw}\"; fi; done \
+ && [ -n \"${COMPILER}\" ] \
+ && opam switch remove -y \"${COMPILER}\" \
&& opam repository add --all-switches --set-default coq-extra-dev https://coq.inria.fr/opam/extra-dev \
&& opam repository add --all-switches --set-default coq-core-dev https://coq.inria.fr/opam/core-dev \
&& opam update -y \
@@ -33,6 +27,7 @@ RUN ["/bin/bash", "--login", "-c", "set -x \
FROM coqorg/base:bare
+ENV COMPILER=""
ENV MATHCOMP_VERSION="dev"
ENV MATHCOMP_PACKAGE="coq-mathcomp-character"
diff --git a/Dockerfile.make b/Dockerfile.make
index bb8b653..8f305ae 100644
--- a/Dockerfile.make
+++ b/Dockerfile.make
@@ -5,18 +5,12 @@ WORKDIR /home/coq/mathcomp
COPY . .
-ARG compiler="base"
-# other possible value: "edge"
-
RUN ["/bin/bash", "--login", "-c", "set -x \
- && declare -A switch_table \
- && switch_table=( [\"base\"]=\"${COMPILER}\" [\"edge\"]=\"${COMPILER_EDGE}\" ) \
- && opam_switch=\"${switch_table[${compiler}]}\" \
- && [ -n \"opam_switch\" ] \
- && opam switch set ${opam_switch} \
+ && [ -n \"${COMPILER_EDGE}\" ] \
+ && opam switch set \"${COMPILER_EDGE}\" \
&& eval $(opam env) \
- && unset \"switch_table[${compiler}]\" \
- && for sw in \"${switch_table[@]}\"; do [ -n \"$sw\" ] && opam switch remove -y \"${sw}\"; done \
+ && [ -n \"${COMPILER}\" ] \
+ && opam switch remove -y \"${COMPILER}\" \
&& opam repository add --all-switches --set-default coq-extra-dev https://coq.inria.fr/opam/extra-dev \
&& opam repository add --all-switches --set-default coq-core-dev https://coq.inria.fr/opam/core-dev \
&& opam update -y \