summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml27
-rw-r--r--testing/docker/Dockerfile31
2 files changed, 57 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
diff --git a/testing/docker/Dockerfile b/testing/docker/Dockerfile
new file mode 100644
index 00000000..3a1f8bcf
--- /dev/null
+++ b/testing/docker/Dockerfile
@@ -0,0 +1,31 @@
+# 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