Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- version: 2
- jobs:
- build:
- working_directory: ~/work
- docker:
- - image: "ltgdocker/circleci-openjdk:11"
- environment:
- DOCKER_IMAGE: billing
- JAVA_TOOL_OPTIONS: -Xmx750m
- - image: mysql:5.7
- environment:
- - MYSQL_ROOT_PASSWORD=root
- - MYSQL_DATABASE=billing_local
- - MYSQL_USER=billing_ci
- - MYSQL_PASSWORD=billing_ci
- steps:
- - checkout
- - setup_remote_docker
- - restore_cache:
- keys:
- - billing4-{{ checksum "build.gradle" }}
- # Java build
- - run: ./gradlew build
- - save_cache:
- paths:
- - ~/.gradle
- key: billing4-{{ checksum "build.gradle" }}
- when: always
- - run:
- name: Save test results
- command: |
- mkdir -p ~/junit/
- find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/junit/ \;
- when: always
- - store_test_results:
- path: ~/junit
- - store_artifacts:
- path: ~/junit
- # Image build
- - run:
- name: ECR login
- command: |
- eval $(aws ecr get-login --no-include-email --region=$(echo $DOCKER_REGISTRY | cut -d. -f4) )
- - deploy:
- name: Build and push latest
- command: |
- if [ "${CIRCLE_BRANCH}" == "master" ] || [[ "${CIRCLE_BRANCH}" =~ ^hotfix ]]; then
- export DOCKER_TAG=$(date +%Y-%m-%d).$CIRCLE_BUILD_NUM
- docker build -t $DOCKER_REGISTRY/$DOCKER_IMAGE:latest .
- docker push $DOCKER_REGISTRY/$DOCKER_IMAGE:latest
- docker tag $DOCKER_REGISTRY/$DOCKER_IMAGE:latest $DOCKER_REGISTRY/$DOCKER_IMAGE:$DOCKER_TAG
- docker push $DOCKER_REGISTRY/$DOCKER_IMAGE:$DOCKER_TAG
- echo "$DOCKER_REGISTRY/$DOCKER_IMAGE:$DOCKER_TAG" > /tmp/docker-containers.txt
- fi
- - deploy:
- name: Deployment
- command: |
- if [ "${CIRCLE_BRANCH}" == "master" ]; then
- export DOCKER_TAG=$(date +%Y-%m-%d).$CIRCLE_BUILD_NUM
- kubectl config set-cluster k8s --server=$K8S_SERVER --insecure-skip-tls-verify=true &&
- kubectl config set-credentials k8s --username=$K8S_USER --password=$K8S_PASSWORD &&
- kubectl config set-context k8s --cluster=k8s --user=k8s &&
- kubectl config use-context k8s
- kubectl scale --replicas=1 deployments/billing --namespace=test
- kubectl set image deployments/billing --namespace=test billing=$DOCKER_REGISTRY/$DOCKER_IMAGE:$DOCKER_TAG
- kubectl rollout status deployments/billing --namespace=test
- kubectl scale --replicas=2 deployments/billing --namespace=test
- fi
- - store_artifacts:
- path: ./builds
- destination: builds/
- - store_artifacts:
- path: /tmp/docker-containers.txt
- destination: docker-containers.txt
Add Comment
Please, Sign In to add comment