GitLab流水线部署脚本(K8S)
stages:
- maven_build_develop
- maven_build_release
- docker_build_develop
- docker_build_release
- deploy_develop
- deploy_release
maven_build_develop:
stage: maven_build_develop
script:
- sed -i "s/EUREKA_SEVER_IP/xxxxxxxxxxxxx/g" src/main/resources/bootstrap.properties
- sed -i "s/EUREKA_SERVER_PORT/8080/g" src/main/resources/bootstrap.properties
- sed -i "s/ZIPKIN_KAFKA_SERVER_IP/xxxxxxxxxxxxx/g" src/main/resources/bootstrap.properties
- sed -i "s/ZIPKIN_KAFKA_SERVER_PORT/xxxx/g" src/main/resources/bootstrap.properties
- sed -i "s/CONFIG_PROFILE_VALUE/test/g" src/main/resources/bootstrap.properties
- sed -i "s/RABBITMQ_SERVER_IP/xxxxxxxxxxxxx/g" src/main/resources/bootstrap.properties
- sed -i "s/RABBITMQ_SERVER_USERNAME/admin/g" src/main/resources/bootstrap.properties
- sed -i "s/RABBITMQ_SERVER_PASSWORD/xxxx/g" src/main/resources/bootstrap.properties
- sed -i "s/EUREKA_INSTANCE_VERSION/${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID}/g" src/main/resources/bootstrap.properties
- mvn clean package -Dmaven.test.skip=true
- mvn package -Dmaven.test.skip=true
artifacts:
paths:
- target/${CI_PROJECT_NAME}.war
tags:
- build-server-test
only:
- develop
maven_build_release:
stage: maven_build_release
script:
- sed -i "s/EUREKA_SEVER_IP/xxxxxxxxxxxxx/g" src/main/resources/bootstrap.properties
- sed -i "s/EUREKA_SERVER_PORT/8080/g" src/main/resources/bootstrap.properties
- sed -i "s/ZIPKIN_KAFKA_SERVER_IP/xxxxxxxxxxxxx/g" src/main/resources/bootstrap.properties
- sed -i "s/ZIPKIN_KAFKA_SERVER_PORT/xxxx/g" src/main/resources/bootstrap.properties
- sed -i "s/CONFIG_PROFILE_VALUE/pro/g" src/main/resources/bootstrap.properties
- sed -i "s/RABBITMQ_SERVER_IP/xxxxxxxxxxxxx/g" src/main/resources/bootstrap.properties
- sed -i "s/RABBITMQ_SERVER_USERNAME/admin/g" src/main/resources/bootstrap.properties
- sed -i "s/RABBITMQ_SERVER_PASSWORD/xxxx/g" src/main/resources/bootstrap.properties
- sed -i "s/EUREKA_INSTANCE_VERSION/${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID}/g" src/main/resources/bootstrap.properties
- mvn clean package -Dmaven.test.skip=true
- mvn package -Dmaven.test.skip=true
artifacts:
paths:
- target/${CI_PROJECT_NAME}.war
tags:
- build-server-release
only:
- /^release*/
docker_build_develop:
stage: docker_build_develop
script:
- echo "build release"
- git clone http://gitlab.xxx.com/common-source/ci_cd_configs.git
- cp ci_cd_configs/common/test/Dockerfile Dockerfile
- cp ci_cd_configs/common/test/server.xml server.xml
- sed -i "s/PROJECT_NAME/${CI_PROJECT_NAME}/g" Dockerfile
- sed -i "s/PROJECT_NAME/${CI_PROJECT_NAME}/g" server.xml
- docker login --username=xxx --password=xxx registry-vpc.cn-beijing.aliyuncs.com
- docker build -t registry-vpc.cn-beijing.aliyuncs.com/xxx/${CI_PROJECT_NAME}:v${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID} .
- docker push registry-vpc.cn-beijing.aliyuncs.com/xxx/${CI_PROJECT_NAME}:v${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID}
tags:
- build-server-test
only:
- develop
docker_build_release:
stage: docker_build_release
script:
- echo "build release"
- git clone http://gitlab.xxx.com/common-source/ci_cd_configs.git
- cp ci_cd_configs/common/release/Dockerfile Dockerfile
- cp ci_cd_configs/common/release/server.xml server.xml
- sed -i "s/PROJECT_NAME/${CI_PROJECT_NAME}/g" Dockerfile
- sed -i "s/PROJECT_NAME/${CI_PROJECT_NAME}/g" server.xml
- docker login --username=xxx --password=xxx registry-vpc.cn-beijing.aliyuncs.com
- 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} .
- docker push registry-vpc.cn-beijing.aliyuncs.com/server_xxx_release/${CI_PROJECT_NAME}:v${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID}
tags:
- build-server-release
only:
- /^release*/
deploy_develop:
stage: deploy_develop
script:
- echo "will do deploy to test env"
- git clone http://gitlab.xxx.com/common-source/ci_cd_configs.git
- cp ci_cd_configs/common/test/deployment.yml deployment.yml
- sed -i "s/PROJECT_NAME_VERSION/${CI_PROJECT_NAME}${GRAY_VERSION}/g" deployment.yml
- sed -i "s/PROJECT_NAME/${CI_PROJECT_NAME}/g" deployment.yml
- sed -i "s/VERSION_TAG_NUM/v${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID}/g" deployment.yml
- echo "version is v${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID}"
- "kubectl apply -f deployment.yml"
tags:
- build-server-test
only:
- develop
deploy_release:
stage: deploy_release
script:
- echo "will do deploy to release env"
- git clone http://gitlab.xxx.com/common-source/ci_cd_configs.git
- cp ci_cd_configs/common/release/deployment.yml deployment.yml
- sed -i "s/PROJECT_NAME_VERSION/${CI_PROJECT_NAME}${GRAY_VERSION}/g" deployment.yml
- sed -i "s/PROJECT_NAME/${CI_PROJECT_NAME}/g" deployment.yml
- sed -i "s/PROJECT_REPLICAS_NUM/${PROJECT_REPLICAS_NUM}/g" deployment.yml
- sed -i "s/VERSION_TAG_NUM/v${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID}/g" deployment.yml
- echo "version is v${major_version_num}.${minor_version_num}.${CI_PIPELINE_ID}"
- "kubectl apply -f deployment.yml"
tags:
- build-server-release
only:
- /^release*/
还没有评论,来说两句吧...