diff options
-rw-r--r-- | .gitlab-ci.yml | 27 | ||||
-rw-r--r-- | testing/docker/Dockerfile | 31 |
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 |