Skip to content

Instantly share code, notes, and snippets.

@hmarcelodn
Last active January 8, 2019 03:57
Show Gist options
  • Select an option

  • Save hmarcelodn/f236262db1eb24f4f545322b84f04b53 to your computer and use it in GitHub Desktop.

Select an option

Save hmarcelodn/f236262db1eb24f4f545322b84f04b53 to your computer and use it in GitHub Desktop.
CircleCI Sample Workflow
---
version: 2
jobs:
build:
docker:
- image: circleci/python:3.6.1
working_directory: ~/repo
steps:
- checkout
- restore_cache:
keys:
- v1-dependencies-{{ checksum "requirements.txt" }}
- v1-dependencies-
- run:
name: Install dependencies
command: |
python3 -m venv venv
. venv/bin/activate
pip install -r requirements.txt
push_to_quay:
docker:
- image: quay.io/org/ts-docker-deployment-dev
environment:
IMAGE_NAME: quay.io/org/ts-sample
auth:
username: $QUAY_USERNAME
password: $QUAY_PASSWORD
working_directory: ~/repo
steps:
- checkout
- setup_remote_docker:
docker_layer_caching: true
- run:
name: Build & Push Docker image to Quay.io
command: |
quay-push.v2.sh
deploy_to_development:
docker:
- image: quay.io/org/ts-docker-deployment-dev
auth:
username: $QUAY_USERNAME
password: $QUAY_PASSWORD
environment:
RELEASE_NAME: ts-sample-dev
RELEASE_NAMESPACE: default
HELM_CHART_NAME: ts-backend-chart
HELM_VALUES_S3_FOLDER: ts-sample
HELM_VALUES_FILENAME: values.yaml
HELM_VALUES_BASE_ON: true
DD_ENVIRONMENT_TAG: development
steps:
- checkout
- run:
name: Deploying to Development Environment
command: |
helm-launcher.v2.sh
deploy_to_qa:
docker:
- image: quay.io/org/ts-docker-deployment-dev
auth:
username: $QUAY_USERNAME
password: $QUAY_PASSWORD
environment:
RELEASE_NAME: ts-sample-qa
RELEASE_NAMESPACE: qa
HELM_CHART_NAME: ts-backend-chart
HELM_VALUES_S3_FOLDER: ts-sample
HELM_VALUES_FILENAME: values.qa.yaml
HELM_VALUES_BASE_ON: true
DD_ENVIRONMENT_TAG: qa
steps:
- checkout
- run:
name: Deploying to QA Environment
command: |
helm-launcher.v2.sh
deploy_to_production_primary:
docker:
- image: quay.io/org/ts-docker-deployment-prod
auth:
username: $QUAY_USERNAME
password: $QUAY_PASSWORD
environment:
RELEASE_NAME: ts-sample-prod
RELEASE_NAMESPACE: default
HELM_CHART_NAME: ts-backend-chart
HELM_VALUES_S3_FOLDER: ts-sample
HELM_VALUES_FILENAME: values.yaml
HELM_VALUES_BASE_ON: true
DD_ENVIRONMENT_TAG: production
steps:
- checkout
- run:
name: Deploying to Production Environment (Primary)
command: |
kubectl get pods
kubectl get svc
workflows:
version: 2
build_and_deploy:
jobs:
- build
- push_to_quay:
requires:
- build
filters:
branches:
only: master
- deploy_to_development:
requires:
- build
- push_to_quay
filters:
branches:
only: master
- approval_to_qa:
type: approval
requires:
- build
- push_to_quay
- deploy_to_development
filters:
branches:
only: master
- deploy_to_qa:
requires:
- build
- push_to_quay
- deploy_to_development
- approval_to_qa
filters:
branches:
only: master
- approval_to_production:
type: approval
requires:
- build
- push_to_quay
- deploy_to_development
- approval_to_qa
- deploy_to_qa
filters:
branches:
only: master
- deploy_to_production_primary:
requires:
- build
- push_to_quay
- deploy_to_development
- approval_to_qa
- deploy_to_qa
- approval_to_production
filters:
branches:
only: master
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment