.gitlab-ci.yml 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. variables:
  2. DOCKER_REGISTRY: 883669802837.dkr.ecr.ap-southeast-1.amazonaws.com
  3. AWS_REGION: ap-southeast-1
  4. KUBECONFIG_ENV: coinvex-eco-eks-test-01
  5. DOCKER_ENV: coinvex-eco-test
  6. stages:
  7. - build
  8. - deploy
  9. before_script:
  10. - echo "Compiling the code..."
  11. - echo "Compile complete."
  12. - export
  13. - pwd && ls -lhc
  14. - aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $DOCKER_REGISTRY
  15. - |
  16. source /data/.bash/set_build_env.sh
  17. echo ">> >> >>"
  18. echo -e "\033[1;33m-----------please check the following variables---------------------\033[0m"
  19. echo -e "\033[1;32mDOCKER_ENV: $DOCKER_ENV\033[0m"
  20. echo -e "\033[1;32mKUBECONFIG_ENV: $KUBECONFIG_ENV\033[0m"
  21. echo -e "\033[1;33m----------- please confirm the variables before continue ------------\033[0m"
  22. echo "<< << << "
  23. .build-template: &build-template
  24. stage: build
  25. script:
  26. - echo "start build"
  27. - docker build . -f $DOCKERFILE_PATH -t $DOCKER_REGISTRY/${DOCKER_ENV}/${CI_PROJECT_NAMESPACE}:${IMAGE_TAG} --push --build-arg CI_PROJECT_NAMESPACE=magic-serverSPACE --build-arg CI_PROJECT_NAME=magic-server --build-arg CI_COMMIT_SHORT_SHA=$CI_COMMIT_SHORT_SHA --build-arg DOCKER_ENV=$DOCKER_ENV
  28. .deploy-template: &deploy-template
  29. stage: deploy
  30. script:
  31. - kubectl --kubeconfig /root/.kube/${KUBECONFIG_ENV} config view -o jsonpath='{.users[*].name}'
  32. - echo "start deploy"
  33. - kubectl --kubeconfig /root/.kube/${KUBECONFIG_ENV} -n ${CI_PROJECT_NAMESPACE} set image deployment/$DEPLOYMENT_NAME $DEPLOYMENT_NAME=$DOCKER_REGISTRY/${DOCKER_ENV}/${CI_PROJECT_NAMESPACE}:$IMAGE_TAG
  34. ####
  35. # test pipeline
  36. ####
  37. # -----------test-----------
  38. build-test:
  39. <<: *build-template
  40. variables:
  41. DOCKERFILE_PATH: Dockerfile
  42. IMAGE_TAG: magic-server-$CI_COMMIT_SHORT_SHA
  43. # GIT_STRATEGY: none
  44. rules:
  45. - if: $CI_COMMIT_BRANCH != "main"
  46. when: manual
  47. - when: never
  48. deploy-test:
  49. <<: *deploy-template
  50. needs:
  51. - build-test
  52. variables:
  53. DEPLOYMENT_NAME: magic-server
  54. IMAGE_TAG: magic-server-$CI_COMMIT_SHORT_SHA
  55. GIT_STRATEGY: none
  56. rules:
  57. - if: $CI_COMMIT_BRANCH != "main"
  58. when: on_success
  59. - when: never
  60. ####
  61. # prd pipeline
  62. ####
  63. # -----------prd-----------
  64. build-prd:
  65. <<: *build-template
  66. variables:
  67. DOCKERFILE_PATH: Dockerfile
  68. IMAGE_TAG: magic-server-$CI_COMMIT_SHORT_SHA
  69. # GIT_STRATEGY: none
  70. rules:
  71. - if: $CI_COMMIT_BRANCH == "main"
  72. when: manual
  73. - when: never
  74. deploy-prd:
  75. <<: *deploy-template
  76. needs:
  77. - build-prd
  78. variables:
  79. DEPLOYMENT_NAME: magic-server
  80. IMAGE_TAG: magic-server-$CI_COMMIT_SHORT_SHA
  81. GIT_STRATEGY: none
  82. rules:
  83. - if: $CI_COMMIT_BRANCH == "main"
  84. when: on_success
  85. - when: never