stages:
- sonar
- test
- build
- deploy
cache:
paths:
- .m2/
variables:
MAVEN_OPTS: "-Dmaven.repo.local=.m2"
MAVEN_IMAGE: registry.cn-beijing.aliyuncs.com/qianjia2018/qianjia_prod:maven3-jdk8
CONTAINER_NAME: platform_house_hidden_call_miniapp
CONTAINER_NAME_SWARM: platform_swarm_house_hidden_call_miniapp
LAN_REPO: registry-vpc.cn-beijing.aliyuncs.com/qianjia2018
WAN_REPO: registry.cn-beijing.aliyuncs.com/qianjia2018
DEV_REPO: $WAN_REPO/qianjia_dev
PRED_REPO: $WAN_REPO/qianjia_pred
PROD_REPO: $LAN_REPO/qianjia_prod
SERVICE_NAME: qj
SCRIPT_NAME: deployswarm.sh
FILE_NAME: docker-compose-qjtelphone.yml
sonar check:
image: registry.cn-beijing.aliyuncs.com/qianjia2018/qianjia_dev:sonar1
stage: sonar
script:
- /opt/sonar-runner-2.4/bin/sonar-runner -Dsonar.projectName=$CONTAINER_NAME -Dsonar.projectKey=$CONTAINER_NAME
-Dsonar.projectVersion=1.0 -Dsonar.sources=. -Dsonar.language=java -Dsonar.java.binaries=./*
tags:
- sonarqube-200
only:
- dev
test and build image dev:
image: $MAVEN_IMAGE
stage: test
script:
- mvn -X package docker:build -q -Dmaven.test.skip=true
tags:
- maven
only:
- dev
- release
- release-swarm
push image:
stage: build
before_script:
- docker login --username=xxxxxxx--password=xxxxxxxxxxx xxxxxxxxxx.aliyuncs.com
script:
- echo $version
- docker tag $DEV_REPO:$CONTAINER_NAME $LAN_REPO/qianjia_dev:$CONTAINER_NAME
- docker push $LAN_REPO/qianjia_dev:$CONTAINER_NAME
tags:
- docker-run
only:
- dev
when: on_success
push image pred:
stage: build
before_script:
- docker login --xxxxxxxxxxxxxxxxxxxxxx --password=xxxxxxxx xxxxxxxxxxxxx.aliyuncs.com
script:
- docker tag $DEV_REPO:$CONTAINER_NAME $LAN_REPO/qianjia_pred:$CONTAINER_NAME
- docker push $LAN_REPO/qianjia_pred:$CONTAINER_NAME
tags:
- docker-run
only: 对应的git 分支
- release
when: on_success
push image prodswarm:
stage: build
before_script:
- docker login --username=xxxxxxxxxx --password=xxxxxxxxxxxxxx xxxxxxxxxx.aliyuncs.com
script:
- docker tag $DEV_REPO:$CONTAINER_NAME $PROD_REPO:$CONTAINER_NAME_SWARM
- docker push $PROD_REPO:$CONTAINER_NAME_SWARM
tags:
- docker-run
only:
- release-swarm
when: on_success
ssh run on remote machine dev:
stage: deploy
script:
- bash ~/.local/bin/200.sh $CONTAINER_NAME 8092 7092 $DEV_REPO:$CONTAINER_NAME guojia 192.168.10.200
tags:
- shell-200
only:
- dev
when: on_success
ssh run on remote machine pred:
stage: deploy
script:
- bash ~/.local/bin/deploy.sh $CONTAINER_NAME 8092 7092 $PRED_REPO:$CONTAINER_NAME zp 39.106.144.161
tags:
- shell-prod
only:
- release
when: on_success
ssh run on remote machine prodswarm:
stage: deploy
script:
- bash ~/.local/bin/$SCRIPT_NAME $SCRIPT_NAME $SERVICE_NAME $PROD_REPO:$CONTAINER_NAME_SWARM $CONTAINER_NAME_SWARM $FILE_NAME zp 39.106.17.245
tags:
- shell-prod
only:
- release-swarm
when: on_success