GitLab流水线部署脚本(K8S)

旧城等待, 2023-06-15 11:19 85阅读 0赞
  1. stages:
  2. - maven_build_develop
  3. - maven_build_release
  4. - docker_build_develop
  5. - docker_build_release
  6. - deploy_develop
  7. - deploy_release
  8. maven_build_develop:
  9. stage: maven_build_develop
  10. script:
  11. - sed -i "s/EUREKA_SEVER_IP/xxxxxxxxxxxxx/g" src/main/resources/bootstrap.properties
  12. - sed -i "s/EUREKA_SERVER_PORT/8080/g" src/main/resources/bootstrap.properties
  13. - sed -i "s/ZIPKIN_KAFKA_SERVER_IP/xxxxxxxxxxxxx/g" src/main/resources/bootstrap.properties
  14. - sed -i "s/ZIPKIN_KAFKA_SERVER_PORT/xxxx/g" src/main/resources/bootstrap.properties
  15. - sed -i "s/CONFIG_PROFILE_VALUE/test/g" src/main/resources/bootstrap.properties
  16. - sed -i "s/RABBITMQ_SERVER_IP/xxxxxxxxxxxxx/g" src/main/resources/bootstrap.properties
  17. - sed -i "s/RABBITMQ_SERVER_USERNAME/admin/g" src/main/resources/bootstrap.properties
  18. - sed -i "s/RABBITMQ_SERVER_PASSWORD/xxxx/g" src/main/resources/bootstrap.properties
  19. - sed -i "s/EUREKA_INSTANCE_VERSION/${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID}/g" src/main/resources/bootstrap.properties
  20. - mvn clean package -Dmaven.test.skip=true
  21. - mvn package -Dmaven.test.skip=true
  22. artifacts:
  23. paths:
  24. - target/${CI_PROJECT_NAME}.war
  25. tags:
  26. - build-server-test
  27. only:
  28. - develop
  29. maven_build_release:
  30. stage: maven_build_release
  31. script:
  32. - sed -i "s/EUREKA_SEVER_IP/xxxxxxxxxxxxx/g" src/main/resources/bootstrap.properties
  33. - sed -i "s/EUREKA_SERVER_PORT/8080/g" src/main/resources/bootstrap.properties
  34. - sed -i "s/ZIPKIN_KAFKA_SERVER_IP/xxxxxxxxxxxxx/g" src/main/resources/bootstrap.properties
  35. - sed -i "s/ZIPKIN_KAFKA_SERVER_PORT/xxxx/g" src/main/resources/bootstrap.properties
  36. - sed -i "s/CONFIG_PROFILE_VALUE/pro/g" src/main/resources/bootstrap.properties
  37. - sed -i "s/RABBITMQ_SERVER_IP/xxxxxxxxxxxxx/g" src/main/resources/bootstrap.properties
  38. - sed -i "s/RABBITMQ_SERVER_USERNAME/admin/g" src/main/resources/bootstrap.properties
  39. - sed -i "s/RABBITMQ_SERVER_PASSWORD/xxxx/g" src/main/resources/bootstrap.properties
  40. - sed -i "s/EUREKA_INSTANCE_VERSION/${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID}/g" src/main/resources/bootstrap.properties
  41. - mvn clean package -Dmaven.test.skip=true
  42. - mvn package -Dmaven.test.skip=true
  43. artifacts:
  44. paths:
  45. - target/${CI_PROJECT_NAME}.war
  46. tags:
  47. - build-server-release
  48. only:
  49. - /^release*/
  50. docker_build_develop:
  51. stage: docker_build_develop
  52. script:
  53. - echo "build release"
  54. - git clone http://gitlab.xxx.com/common-source/ci_cd_configs.git
  55. - cp ci_cd_configs/common/test/Dockerfile Dockerfile
  56. - cp ci_cd_configs/common/test/server.xml server.xml
  57. - sed -i "s/PROJECT_NAME/${CI_PROJECT_NAME}/g" Dockerfile
  58. - sed -i "s/PROJECT_NAME/${CI_PROJECT_NAME}/g" server.xml
  59. - docker login --username=xxx --password=xxx registry-vpc.cn-beijing.aliyuncs.com
  60. - docker build -t registry-vpc.cn-beijing.aliyuncs.com/xxx/${CI_PROJECT_NAME}:v${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID} .
  61. - docker push registry-vpc.cn-beijing.aliyuncs.com/xxx/${CI_PROJECT_NAME}:v${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID}
  62. tags:
  63. - build-server-test
  64. only:
  65. - develop
  66. docker_build_release:
  67. stage: docker_build_release
  68. script:
  69. - echo "build release"
  70. - git clone http://gitlab.xxx.com/common-source/ci_cd_configs.git
  71. - cp ci_cd_configs/common/release/Dockerfile Dockerfile
  72. - cp ci_cd_configs/common/release/server.xml server.xml
  73. - sed -i "s/PROJECT_NAME/${CI_PROJECT_NAME}/g" Dockerfile
  74. - sed -i "s/PROJECT_NAME/${CI_PROJECT_NAME}/g" server.xml
  75. - docker login --username=xxx --password=xxx registry-vpc.cn-beijing.aliyuncs.com
  76. - docker build -t registry-vpc.cn-beijing.aliyuncs.com/server_xxx_release/${CI_PROJECT_NAME}:v${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID} .
  77. - docker push registry-vpc.cn-beijing.aliyuncs.com/server_xxx_release/${CI_PROJECT_NAME}:v${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID}
  78. tags:
  79. - build-server-release
  80. only:
  81. - /^release*/
  82. deploy_develop:
  83. stage: deploy_develop
  84. script:
  85. - echo "will do deploy to test env"
  86. - git clone http://gitlab.xxx.com/common-source/ci_cd_configs.git
  87. - cp ci_cd_configs/common/test/deployment.yml deployment.yml
  88. - sed -i "s/PROJECT_NAME_VERSION/${CI_PROJECT_NAME}${GRAY_VERSION}/g" deployment.yml
  89. - sed -i "s/PROJECT_NAME/${CI_PROJECT_NAME}/g" deployment.yml
  90. - sed -i "s/VERSION_TAG_NUM/v${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID}/g" deployment.yml
  91. - echo "version is v${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID}"
  92. - "kubectl apply -f deployment.yml"
  93. tags:
  94. - build-server-test
  95. only:
  96. - develop
  97. deploy_release:
  98. stage: deploy_release
  99. script:
  100. - echo "will do deploy to release env"
  101. - git clone http://gitlab.xxx.com/common-source/ci_cd_configs.git
  102. - cp ci_cd_configs/common/release/deployment.yml deployment.yml
  103. - sed -i "s/PROJECT_NAME_VERSION/${CI_PROJECT_NAME}${GRAY_VERSION}/g" deployment.yml
  104. - sed -i "s/PROJECT_NAME/${CI_PROJECT_NAME}/g" deployment.yml
  105. - sed -i "s/PROJECT_REPLICAS_NUM/${PROJECT_REPLICAS_NUM}/g" deployment.yml
  106. - sed -i "s/VERSION_TAG_NUM/v${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID}/g" deployment.yml
  107. - echo "version is v${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID}"
  108. - "kubectl apply -f deployment.yml"
  109. tags:
  110. - build-server-release
  111. only:
  112. - /^release*/

发表评论

表情:
评论列表 (有 0 条评论,85人围观)

还没有评论,来说两句吧...

相关阅读

    相关 k8s搭建gitlab

    `Gitlab`官方提供了 Helm 的方式在 Kubernetes 集群中来快速安装,但是在使用的过程中发现 Helm 提供的 Chart 包中有很多其他额外的配置,所以我们