From 95f378a45ac3bb18a4589d1706685bb525b216d7 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Tue, 9 May 2017 10:37:34 -0400 Subject: [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. --- .gitlab-ci.yml | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to '.gitlab-ci.yml') 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 -- cgit v1.2.3