Hello! We are running our annual fundraising. Please consider making a donation if you value this freely available service or want to support people around the world working towards liberatory social change. https://riseup.net/donate.

Verified Commit 95f378a4 authored by micah's avatar micah 💬 Committed by drebs
Browse files

[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.
parent 09c9683c
Pipeline #3264 failed with stages
in 1 minute and 29 seconds
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
# start with a fresh debian image
# we use backports because of libsqlcipher-dev
FROM 0xacab.org:4567/leap/gitlab-buildpackage:jessie_amd64
RUN apt-get update
RUN apt-get -y dist-upgrade
# needed to build python twisted module
RUN apt-get -y install --no-install-recommends libpython2.7-dev \
# add unbuffer and ts for timestamping
moreutils expect tcl8.6 \
# needed to build python cryptography module
libssl-dev libffi-dev \
# needed to build pysqlcipher
libsqlcipher-dev \
# needed to support keymanager
libsqlite3-dev \
# install pip, so later we can install tox
python-pip \
# used to show connection to couchdb during CI
curl \
# needed to build pysqlcipher module
build-essential
# We need git from backports because it has
# the "%cI: committer date, strict ISO 8601 format"
# pretty format which is used by pytest-benchmark
RUN apt-get -y install -t jessie-backports git
RUN pip install -U pip
RUN pip install tox
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment