Skip to content

Instantly share code, notes, and snippets.

@albertusdev
Created February 26, 2019 15:21
Show Gist options
  • Save albertusdev/73780867a53dcbbbdc52a03fccdfefc8 to your computer and use it in GitHub Desktop.
Save albertusdev/73780867a53dcbbbdc52a03fccdfefc8 to your computer and use it in GitHub Desktop.
Deployment LEARNFAZZ
.deployment-script: &deployment-script
image: gitlab/dind:latest
stage: deploy
tags:
- docker
before_script:
- docker info
- if [ $CI_COMMIT_TAG ]; then DOCKER_IMAGE_VERSION=$CI_COMMIT_TAG; else DOCKER_IMAGE_VERSION=$CI_COMMIT_SHA_SHORT; fi
- if [ ! $DOCKER_IMAGE_VERSION ]; then DOCKER_IMAGE_VERSION=latest; fi
script:
- cd $TYPE/
- DOCKER_IMAGE_TAG_NAME=$DOCKER_IMAGE_PREFIX/$TYPE
- docker build -t $DOCKER_IMAGE_TAG_NAME:$ENVIRONMENT_NAME -t $DOCKER_IMAGE_TAG_NAME:$DOCKER_IMAGE_VERSION .
- if [[ $ENVIRONMENT_NAME =~ production ]]; then docker build -t $DOCKER_IMAGE_TAG_NAME:latest .; fi
- docker push $DOCKER_IMAGE_TAG_NAME
back-end:deploy-to-production:
<<: *deployment-script
variables:
TYPE: "back-end"
ENVIRONMENT_NAME: "production"
only:
refs:
- master
changes:
- back-end/**/*
- .gitlab-ci.yml
environment:
name: production
back-end:deploy-to-staging:
<<: *deployment-script
variables:
TYPE: "back-end"
ENVIRONMENT_NAME: "staging"
only:
refs:
- staging
changes:
- back-end/**/*
- .gitlab-ci.yml
environment:
name: staging
back-end:deploy-to-development:
<<: *deployment-script
variables:
ENVIRONMENT_NAME: "development"
TYPE: "back-end"
only:
refs:
- development
changes:
- back-end/**/*
- .gitlab-ci.yml
environment:
name: development
front-end:deploy-to-development:
<<: *deployment-script
variables:
ENVIRONMENT_NAME: "development"
TYPE: "front-end"
only:
refs:
- development
changes:
- front-end/**/*
- .gitlab-ci.yml
environment:
name: development
front-end:deploy-to-staging:
<<: *deployment-script
variables:
ENVIRONMENT_NAME: "staging"
only:
refs:
- staging
changes:
- front-end/**/*
- .gitlab-ci.yml
environment:
name: staging
front-end:deploy-to-production:
<<: *deployment-script
variables:
ENVIRONMENT_NAME: "production"
TYPE: "front-end"
only:
refs:
- master
changes:
- front-end/**/*
- .gitlab-ci.yml
environment:
name: production
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment