Skip to content

Instantly share code, notes, and snippets.

@JWDobken
Created May 18, 2019 07:41
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save JWDobken/c32231d2e5f602f2fe849206f3f80f2d to your computer and use it in GitHub Desktop.
Save JWDobken/c32231d2e5f602f2fe849206f3f80f2d to your computer and use it in GitHub Desktop.
Django .gitlab-ci.yml
image: docker:latest
services:
- docker:dind
variables:
DOCKER_HOST: tcp://docker:2375
DOCKER_DRIVER: overlay2
CONTAINER_TEST_IMAGE: $CI_REGISTRY_IMAGE:$CI_BUILD_REF_SLUG
CONTAINER_RELEASE_IMAGE: $CI_REGISTRY_IMAGE:latest
stages:
- test
- build
- release
test:
stage: test
image: tiangolo/docker-with-compose
script:
- docker-compose -f test.yml build
# - docker-compose -f test.yml run --rm django pydocstyle
- docker-compose -f test.yml run --rm django flake8
- docker-compose -f test.yml run django coverage run -m pytest
- docker-compose -f local.yml run --rm django coverage html
- docker-compose -f local.yml run --rm django /bin/sh -c "cd docs && apk add make && make html"
- docker-compose -f local.yml run django coverage report
coverage: "/TOTAL.+ ([0-9]{1,3}%)/"
artifacts:
paths:
- htmlcov
- docs/_build
expire_in: 5 days
build:
stage: build
script:
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
- docker build -t $CONTAINER_TEST_IMAGE -f compose/production/django/Dockerfile .
- docker push $CONTAINER_TEST_IMAGE
release:
stage: release
script:
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
- docker pull $CONTAINER_TEST_IMAGE
- docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE
- docker push $CONTAINER_RELEASE_IMAGE
only:
- master
pages:
stage: release
script:
- mkdir -p public/coverage
- mv htmlcov/* public/coverage
- mkdir -p public/docs
- mv -v docs/_build/html/* public/docs
artifacts:
paths:
- public
expire_in: 30 days
only:
- master
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment