stages: - code-check - build - tests - benchmark image: 0xacab.org:4567/leap/soledad:latest variables: DOCKER_DRIVER: overlay # Cache a folder between builds. # Tox sets it to be our pip cache. cache: untracked: true key: soledad-shared-pip-cache paths: - testing/.cache/ before_script: - echo "Running on ${HOST_HOSTNAME:=$(hostname)}" code-check: stage: code-check script: - cd testing - tox -e code-check tests: stage: tests services: - couchdb script: - cd testing - tox -- --couch-url http://couchdb:5984 benchmark: stage: benchmark tags: - benchmark services: - couchdb allow_failure: true script: - cd testing - curl -s couchdb:5984 # You can provide a $NETRC variable containing the creds for your # elasticsearch instance so it's protected from being leaked in the # CI console # We can't get it working inside docker for unknown reasons. #- echo "$NETRC" > /root/.netrc && chmod 600 /root/.netrc # # Add $PYTEST_OPTS to pytest.ini to allow posting benchmark tests # 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