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*/

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐