-
-
Save hmarcelodn/f236262db1eb24f4f545322b84f04b53 to your computer and use it in GitHub Desktop.
CircleCI Sample Workflow
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | |
| 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