image: docker:latest # When using dind, it's wise to use the overlayfs driver for # improved performance. variables: DOCKER_DRIVER: overlay DOCKERFILE: Dockerfile before_script: - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY stages: - test - images - release .test: &test_definition variables: PIP_CACHE_DIR: "$CI_PROJECT_DIR/pip-cache" cache: paths: - .venv/ - pip-cache/ key: "$CI_PROJECT_NAME" stage: test script: - pip install virtualenv - virtualenv -q .venv - source .venv/bin/activate - python setup.py test test-3.5: <<: *test_definition image: "python:3.5" test-3.4: <<: *test_definition image: "python:3.4" test-2.7: <<: *test_definition image: "python:2.7" .image: &image_definition variables: PYTHON_VERSION: "3.5" script: - docker build -f Dockerfile-3.5 . -t $CI_REGISTRY_IMAGE:$CI_BUILD_TAG-$PYTHON_VERSION - docker push $CI_REGISTRY_IMAGE:$CI_BUILD_TAG-$PYTHON_VERSION stage: images only: - tags - triggers image-3.5: <<: *image_definition variables: PYTHON_VERSION: "3.5" image-2.7: <<: *image_definition variables: PYTHON_VERSION: "2.7" image-latest: stage: release script: - docker build -f Dockerfile . -t $CI_REGISTRY_IMAGE - docker tag $CI_REGISTRY_IMAGE $CI_REGISTRY_IMAGE:$CI_BUILD_REF_SLUG - docker push $IMAGE_NAME - docker push $IMAGE_NAME:$CI_BUILD_REF_SLUG only: - master - triggers