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  | 
