diff options
author | Micah Anderson <micah@riseup.net> | 2017-05-09 10:37:34 -0400 |
---|---|---|
committer | drebs <drebs@leap.se> | 2017-05-10 19:27:21 +0200 |
commit | 95f378a45ac3bb18a4589d1706685bb525b216d7 (patch) | |
tree | 2726ce878a32372781a0841db428e6d41825eac0 /.gitlab-ci.yml | |
parent | 09c9683cd6888fe7e54cfdd71ada9ace5fdf4fcc (diff) |
[feat] Build/push docker (see leap/platform#8755).
When the testing/docker directory is changed, the `build_docker_image`
CI job is triggered to build the docker image and push it to the
soledad container registry.
This is part of an effort to move all the docker images into their own
project's container registry, and to build/provide them
automatically (see leap/platform#8755).
This is accomplished by the following:
added the necessary overlay DOCKER_DRIVER variable to .gitlab-ci.yml
added a build_docker_image job with docker:dind service enabled
enabled container registry in soledad project
added LEAP_CODE_O_MATIC_PRIVATE_TOKEN to project
moved docker image from scripts:docker/soledad to soledad:testing/docker
docker push gitlab-buildpackage:soledad to soledad container registry
removed gitlab-buildpackage:soledad image and scripts/docker/soledad
changed image in .gitlab-ci.yml to use new location
Note: until https://gitlab.com/gitlab-org/gitlab-ce/issues/19813 is
resolved, we have to use this method.
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cef9a965..2b6743a1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,9 +1,13 @@ stages: - code-check + - build - tests - benchmark -image: "0xacab.org:4567/leap/gitlab-buildpackage:soledad" +image: 0xacab.org:4567/leap/soledad:latest + +variables: + DOCKER_DRIVER: overlay # Cache a folder between builds. # Tox sets it to be our pip cache. @@ -50,3 +54,24 @@ benchmark: # to an elasticsearch instance - echo "addopts=$PYTEST_OPTS" >> pytest.ini && chmod 600 pytest.ini - /usr/bin/unbuffer tox --recreate -e benchmark -- --couch-url http://couchdb:5984 -m 'not synchronous' | /usr/bin/ts -s + +build_docker_image: + image: 0xacab.org:4567/leap/soledad:latest + stage: build + services: + - docker:dind + tags: + - docker-in-docker + before_script: + - > + export LAST_COMMIT=$(curl -s --header "PRIVATE-TOKEN: ${LEAP_CODE_O_MATIC_PRIVATE_TOKEN}" https://0xacab.org/api/v4/projects/519/pipelines | + python -c "import sys, json; print json.load(sys.stdin)[1]['sha']") + script: + - > + if git diff $LAST_COMMIT HEAD --name-only|grep testing/docker; then + docker --version + docker info + docker login -u gitlab-ci-token -e sysdev@leap.se -p $CI_JOB_TOKEN $CI_REGISTRY + docker build -t ${CI_REGISTRY_IMAGE}:latest testing/docker + docker push ${CI_REGISTRY_IMAGE}:latest + fi |