--- image: docker:18.01.0-ce-git services: - docker:18.01.0-ce-dind stages: - build - deploy variables: DJANGO_RELEASE_IMAGE: $CI_REGISTRY_IMAGE/django:$CI_BUILD_REF_NAME NGINX_RELEASE_IMAGE: $CI_REGISTRY_IMAGE/nginx:$CI_BUILD_REF_NAME ############# ## Production ############# build to production: stage: build script: - docker login -u "gitlab-ci-token" -p "$CI_JOB_TOKEN" $CI_REGISTRY - docker build -f compose/production/Dockerfile --target django -t $DJANGO_RELEASE_IMAGE . - docker tag $DJANGO_RELEASE_IMAGE "$CI_REGISTRY_IMAGE/django:latest" - docker push $DJANGO_RELEASE_IMAGE - docker push "$CI_REGISTRY_IMAGE/django:latest" - docker build -f compose/production/Dockerfile --target nginx -t $NGINX_RELEASE_IMAGE . - docker tag $NGINX_RELEASE_IMAGE "$CI_REGISTRY_IMAGE/nginx:latest" - docker push $NGINX_RELEASE_IMAGE - docker push "$CI_REGISTRY_IMAGE/nginx:latest" only: - tags environment: production tags: - docker # deploy to production: # stage: deploy # image: cdrx/rancher-gitlab-deploy # script: # - upgrade --environment --stack --service --no-finish-upgrade --sidekicks # only: # - tags # environment: production # tags: # - docker ########## ## Homolog ########## build to homolog: stage: build script: - docker login -u "gitlab-ci-token" -p "$CI_JOB_TOKEN" $CI_REGISTRY - docker build -f compose/production/Dockerfile --target django -t $DJANGO_RELEASE_IMAGE . - docker tag $DJANGO_RELEASE_IMAGE "$CI_REGISTRY_IMAGE/django:master" - docker push $DJANGO_RELEASE_IMAGE - docker push "$CI_REGISTRY_IMAGE/django:master" - docker build -f compose/production/Dockerfile --target nginx -t $NGINX_RELEASE_IMAGE . - docker tag $NGINX_RELEASE_IMAGE "$CI_REGISTRY_IMAGE/nginx:master" - docker push $NGINX_RELEASE_IMAGE - docker push "$CI_REGISTRY_IMAGE/nginx:master" only: - /master/ environment: homolog tags: - docker # test to homolog: # stage: test # script: # - docker build -f compose/test/django/Dockerfile -t $DJANGO_RELEASE_IMAGE . # - docker tag $DJANGO_RELEASE_IMAGE "$CI_REGISTRY_IMAGE/django:test" # - docker run -d --env-file=./compose/test/test_env --name=postgres postgres:9.6 # - docker run --env-file=./compose/test/test_env --link=postgres:postgres "$CI_REGISTRY_IMAGE/django:test" /test.sh # only: # - /master/ # environment: homolog # tags: # - docker # deploy to homolog: # stage: deploy # image: cdrx/rancher-gitlab-deploy # script: # - upgrade --environment --stack --service --no-finish-upgrade --sidekicks # only: # - /master/ # environment: homolog # tags: # - docker ########## ## Develop ########## build to develop: stage: build script: - docker login -u "gitlab-ci-token" -p "$CI_JOB_TOKEN" $CI_REGISTRY - docker build -f compose/test/django/Dockerfile -t $DJANGO_RELEASE_IMAGE . - docker tag $DJANGO_RELEASE_IMAGE "$CI_REGISTRY_IMAGE/django:develop" - docker push "$CI_REGISTRY_IMAGE/django:develop" only: - /develop/ environment: development tags: - docker # test to develop: # stage: test # script: # - docker run -d --env-file=./compose/test/test_env --name=postgres postgres:9.6 # - docker run --env-file=./compose/test/test_env --link=postgres:postgres "$CI_REGISTRY_IMAGE/django:develop" /test.sh # only: # - /develop/ # environment: development # tags: # - docker