Guest User

Untitled

a guest
Jan 4th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. version: 2
  2. jobs:
  3. build:
  4. working_directory: ~/work
  5. docker:
  6. - image: "ltgdocker/circleci-openjdk:11"
  7. environment:
  8. DOCKER_IMAGE: billing
  9. JAVA_TOOL_OPTIONS: -Xmx750m
  10. - image: mysql:5.7
  11. environment:
  12. - MYSQL_ROOT_PASSWORD=root
  13. - MYSQL_DATABASE=billing_local
  14. - MYSQL_USER=billing_ci
  15. - MYSQL_PASSWORD=billing_ci
  16.  
  17. steps:
  18. - checkout
  19. - setup_remote_docker
  20.  
  21. - restore_cache:
  22. keys:
  23. - billing4-{{ checksum "build.gradle" }}
  24.  
  25. # Java build
  26. - run: ./gradlew build
  27.  
  28. - save_cache:
  29. paths:
  30. - ~/.gradle
  31. key: billing4-{{ checksum "build.gradle" }}
  32. when: always
  33.  
  34. - run:
  35. name: Save test results
  36. command: |
  37. mkdir -p ~/junit/
  38. find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/junit/ \;
  39. when: always
  40.  
  41. - store_test_results:
  42. path: ~/junit
  43.  
  44. - store_artifacts:
  45. path: ~/junit
  46.  
  47. # Image build
  48. - run:
  49. name: ECR login
  50. command: |
  51. eval $(aws ecr get-login --no-include-email --region=$(echo $DOCKER_REGISTRY | cut -d. -f4) )
  52. - deploy:
  53. name: Build and push latest
  54. command: |
  55. if [ "${CIRCLE_BRANCH}" == "master" ] || [[ "${CIRCLE_BRANCH}" =~ ^hotfix ]]; then
  56. export DOCKER_TAG=$(date +%Y-%m-%d).$CIRCLE_BUILD_NUM
  57. docker build -t $DOCKER_REGISTRY/$DOCKER_IMAGE:latest .
  58. docker push $DOCKER_REGISTRY/$DOCKER_IMAGE:latest
  59. docker tag $DOCKER_REGISTRY/$DOCKER_IMAGE:latest $DOCKER_REGISTRY/$DOCKER_IMAGE:$DOCKER_TAG
  60. docker push $DOCKER_REGISTRY/$DOCKER_IMAGE:$DOCKER_TAG
  61. echo "$DOCKER_REGISTRY/$DOCKER_IMAGE:$DOCKER_TAG" > /tmp/docker-containers.txt
  62. fi
  63. - deploy:
  64. name: Deployment
  65. command: |
  66. if [ "${CIRCLE_BRANCH}" == "master" ]; then
  67. export DOCKER_TAG=$(date +%Y-%m-%d).$CIRCLE_BUILD_NUM
  68. kubectl config set-cluster k8s --server=$K8S_SERVER --insecure-skip-tls-verify=true &&
  69. kubectl config set-credentials k8s --username=$K8S_USER --password=$K8S_PASSWORD &&
  70. kubectl config set-context k8s --cluster=k8s --user=k8s &&
  71. kubectl config use-context k8s
  72. kubectl scale --replicas=1 deployments/billing --namespace=test
  73. kubectl set image deployments/billing --namespace=test billing=$DOCKER_REGISTRY/$DOCKER_IMAGE:$DOCKER_TAG
  74. kubectl rollout status deployments/billing --namespace=test
  75. kubectl scale --replicas=2 deployments/billing --namespace=test
  76. fi
  77. - store_artifacts:
  78. path: ./builds
  79. destination: builds/
  80.  
  81. - store_artifacts:
  82. path: /tmp/docker-containers.txt
  83. destination: docker-containers.txt
Add Comment
Please, Sign In to add comment