新增版本控制
This commit is contained in:
312
drone_ok.yml
Normal file
312
drone_ok.yml
Normal file
@@ -0,0 +1,312 @@
|
||||
kind: pipeline
|
||||
type: exec
|
||||
name: CI-building
|
||||
|
||||
clone:
|
||||
disable: true
|
||||
|
||||
environment:
|
||||
GOOS: linux
|
||||
GOARCH: amd64
|
||||
GOPROXY: https://proxy.golang.com.cn,direct
|
||||
GONOPROXY: gitea.bluettipower.com
|
||||
GOPRIVATE: gitea.bluettipower.com
|
||||
|
||||
steps:
|
||||
- name: CI
|
||||
environment:
|
||||
GOPROXY: https://proxy.golang.com.cn,direct
|
||||
GONOPROXY: gitea.bluettipower.com
|
||||
GOPRIVATE: gitea.bluettipower.com
|
||||
CGO_ENABLED: 0
|
||||
GOPATH: /root/go
|
||||
PROJECT_API_NAME:
|
||||
from_secret: PROJECT_API_NAME
|
||||
PROJECT_RPC_NAME:
|
||||
from_secret: PROJECT_RPC_NAME
|
||||
DOMAIN_PREFIX:
|
||||
from_secret: STAGE_DOMAIN_PREFIX
|
||||
command_timeout: 360s
|
||||
commands:
|
||||
- pwd
|
||||
- git config --global url."https://alanal:Alanal126com@gitea.bluettipower.com".insteadOf "https://gitea.bluettipower.com"
|
||||
- cd /bluetti/app_project
|
||||
- |
|
||||
if [ ! -d /bluetti/app_project/${DRONE_REPO_NAME} ]; then
|
||||
git clone https://gitea.bluettipower.com/bluettipower/${DRONE_REPO_NAME}.git ${DRONE_REPO_NAME}
|
||||
fi
|
||||
- cd /bluetti/app_project/${DRONE_REPO_NAME}
|
||||
- git checkout -- .
|
||||
- git pull
|
||||
- git switch ${DRONE_COMMIT_BRANCH}
|
||||
#- git branch --set-upstream-to=origin/${DRONE_COMMIT_BRANCH} ${DRONE_COMMIT_BRANCH}
|
||||
- git pull https://pywee:$${GIT_PWD}@gitea.bluettipower.com/Bluettipower/${DRONE_REPO_NAME}.git
|
||||
- export PATH=$PATH:/usr/local/go/bin
|
||||
- go env
|
||||
- go version
|
||||
- go mod tidy
|
||||
- go build -ldflags="-s -w" -o ./app api/*.go
|
||||
- docker build -f api/Dockerfile -t $${PROJECT_API_NAME}:latest .
|
||||
# - docker tag $${PROJECT_API_NAME}:latest 127.0.0.1:8091/bluetti/$${PROJECT_API_NAME}:${DRONE_COMMIT:0:10}
|
||||
- docker login harbor.bluettipower.com -u bluetti -p cjJXBbkHlvVWH2B
|
||||
# - docker push 127.0.0.1:8091/bluetti/$${PROJECT_API_NAME}:${DRONE_COMMIT:0:10}
|
||||
- docker tag $${PROJECT_API_NAME}:latest harbor.bluettipower.com/bluetti/$${PROJECT_API_NAME}:${DRONE_COMMIT:0:10}
|
||||
- docker push harbor.bluettipower.com/bluetti/$${PROJECT_API_NAME}:${DRONE_COMMIT:0:10}
|
||||
- echo "API构建完成, 你可以通过 docker pull harbor.bluettipower.com/bluetti/$PROJECT_API_NAME:${DRONE_COMMIT:0:10} 获取镜像"
|
||||
- |
|
||||
if [ -d "rpc" ]; then
|
||||
go build -ldflags="-s -w" -o ./rpc_app rpc/*.go
|
||||
docker build -f rpc/Dockerfile -t $${PROJECT_RPC_NAME}:latest .
|
||||
docker tag $${PROJECT_RPC_NAME}:latest harbor.bluettipower.com/bluetti/$${PROJECT_RPC_NAME}:${DRONE_COMMIT:0:10}
|
||||
docker push harbor.bluettipower.com/bluetti/$${PROJECT_RPC_NAME}:${DRONE_COMMIT:0:10}
|
||||
rm -rf ./rpc_app
|
||||
echo "RPC构建完成, 你可以通过 docker pull harbor.bluettipower.com/bluetti/$${PROJECT_RPC_NAME}:${DRONE_COMMIT:0:10} 获取镜像"
|
||||
fi
|
||||
|
||||
- name: stage-publish
|
||||
environment:
|
||||
PROJECT_API_NAME:
|
||||
from_secret: PROJECT_API_NAME
|
||||
PROJECT_RPC_NAME:
|
||||
from_secret: PROJECT_RPC_NAME
|
||||
DOMAIN_PREFIX:
|
||||
from_secret: STAGE_DOMAIN_PREFIX
|
||||
when:
|
||||
branch:
|
||||
- feature/*
|
||||
- develop
|
||||
commands:
|
||||
- echo 1 $DOMAIN_PREFIX 2
|
||||
- cd /bluetti/app_project/${DRONE_REPO_NAME}
|
||||
- docker compose down
|
||||
- export DOMAIN_PREFIX=$DOMAIN_PREFIX
|
||||
- export GIT_COMMIT=${DRONE_COMMIT:0:10}
|
||||
- export ENV=""
|
||||
- |
|
||||
if [ -d "rpc" ]; then
|
||||
echo $PROJECT_RPC_NAME 12345
|
||||
docker tag $PROJECT_RPC_NAME:latest harbor.bluettipower.com/bluetti/$PROJECT_RPC_NAME:${DRONE_COMMIT:0:10}
|
||||
docker push harbor.bluettipower.com/bluetti/$PROJECT_RPC_NAME:${DRONE_COMMIT:0:10}
|
||||
docker images | grep $${PROJECT_RPC_NAME} | awk '{print $3}' | xargs docker rmi -f
|
||||
fi
|
||||
# - docker images | grep $${PROJECT_API_NAME} | awk '{print $3}' | xargs docker rmi -f
|
||||
- docker compose up -d
|
||||
|
||||
volumes:
|
||||
- name: docker-sock
|
||||
host:
|
||||
path: /var/run/docker.sock
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- develop
|
||||
- master
|
||||
- feature/*
|
||||
event:
|
||||
include:
|
||||
- push
|
||||
- merge_request
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: CI-Master-publish
|
||||
|
||||
clone:
|
||||
disable: true
|
||||
|
||||
depends_on:
|
||||
- CI-building
|
||||
|
||||
steps:
|
||||
- name: prod-publish
|
||||
image: appleboy/drone-ssh
|
||||
environment:
|
||||
PROD_DOMAIN_PREFIX:
|
||||
from_secret: PROD_DOMAIN_PREFIX
|
||||
PROJECT_API_NAME:
|
||||
from_secret: PROJECT_API_NAME
|
||||
PROJECT_RPC_NAME:
|
||||
from_secret: PROJECT_RPC_NAME
|
||||
settings:
|
||||
host:
|
||||
from_secret: PROD_HOST_IP
|
||||
username:
|
||||
from_secret: PROD_HOST_NAME
|
||||
password:
|
||||
from_secret: PROD_HOST_PWD
|
||||
port: 22
|
||||
command_timeout: 360s
|
||||
envs: [PROJECT_API_NAME,PROD_DOMAIN_PREFIX,PROJECT_RPC_NAME]
|
||||
script:
|
||||
- bash
|
||||
- git config --global url."https://alanal:Alanal126com@gitea.bluettipower.com".insteadOf "https://gitea.bluettipower.com"
|
||||
- cd /bluetti/app_project
|
||||
- |
|
||||
if [ ! -d /bluetti/app_project/${DRONE_REPO_NAME} ]; then
|
||||
git clone https://gitea.bluettipower.com/bluettipower/${DRONE_REPO_NAME}.git ${DRONE_REPO_NAME}
|
||||
fi
|
||||
- cd /bluetti/app_project/${DRONE_REPO_NAME}
|
||||
- git pull https://pywee:$${GIT_PWD}@gitea.bluettipower.com/Bluettipower/${DRONE_REPO_NAME}.git
|
||||
# - docker login 127.0.0.1:8091 -u admin -p HarborBluetti
|
||||
- git pull origin
|
||||
- git branch
|
||||
- git fetch origin
|
||||
- git checkout master
|
||||
- export ENV="-prod"
|
||||
- export DOMAIN_PREFIX=$${PROD_DOMAIN_PREFIX}
|
||||
- export GIT_COMMIT=${DRONE_COMMIT:0:10}
|
||||
# - docker compose down
|
||||
# - docker images | grep $${PROJECT_API_NAME} | awk '{print $3}' | xargs docker rmi -f
|
||||
# - docker images | grep $${PROJECT_RPC_NAME} | awk '{print $3}' | xargs docker rmi -f
|
||||
- docker pull harbor.bluettipower.com/bluetti/$PROJECT_API_NAME:${DRONE_COMMIT:0:10}
|
||||
- |
|
||||
if [ -d "rpc" ]; then
|
||||
docker pull harbor.bluettipower.com/bluetti/$PROJECT_RPC_NAME:${DRONE_COMMIT:0:10}
|
||||
fi
|
||||
- docker compose up -d
|
||||
retry:
|
||||
limit: 2
|
||||
delay: 360s
|
||||
|
||||
volumes:
|
||||
- name: docker-sock
|
||||
host:
|
||||
path: /var/run/docker.sock
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
event:
|
||||
include:
|
||||
- promote
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: promote/rollback
|
||||
|
||||
steps:
|
||||
- name: stage-rollback
|
||||
image: appleboy/drone-ssh
|
||||
environment:
|
||||
PROJECT_API_NAME:
|
||||
from_secret: PROJECT_API_NAME
|
||||
PROJECT_RPC_NAME:
|
||||
from_secret: PROJECT_RPC_NAME
|
||||
DOMAIN_PREFIX:
|
||||
from_secret: DOMAIN_PREFIX
|
||||
settings:
|
||||
host:
|
||||
from_secret: STAGE_HOST_IP
|
||||
username:
|
||||
from_secret: STAGE_HOST_NAME
|
||||
password:
|
||||
from_secret: STAGE_HOST_PWD
|
||||
port: 22
|
||||
command_timeout: 300s
|
||||
envs: [PROJECT_API_NAME,STAGE_DOMAIN_PREFIX,PROJECT_RPC_NAME]
|
||||
script:
|
||||
- cd /bluetti/app_project/${DRONE_REPO_NAME}
|
||||
- export GIT_COMMIT=${DRONE_COMMIT:0:10}
|
||||
- export DOMAIN_PREFIX=$${STAGE_DOMAIN_PREFIX}
|
||||
- export ENV=""
|
||||
- docker compose down
|
||||
- docker compose up -d
|
||||
- echo "版本已经更新到 ${DRONE_COMMIT:0:10}, ${DRONE_COMMIT_MESSAGE}"
|
||||
when:
|
||||
branch:
|
||||
- develop
|
||||
|
||||
- name: prod-rollback
|
||||
image: appleboy/drone-ssh
|
||||
environment:
|
||||
PROJECT_API_NAME:
|
||||
from_secret: PROJECT_API_NAME
|
||||
PROJECT_RPC_NAME:
|
||||
from_secret: PROJECT_RPC_NAME
|
||||
PROD_DOMAIN_PREFIX:
|
||||
from_secret: PROD_DOMAIN_PREFIX
|
||||
settings:
|
||||
host:
|
||||
from_secret: PROD_HOST_IP
|
||||
username:
|
||||
from_secret: PROD_HOST_NAME
|
||||
password:
|
||||
from_secret: PROD_HOST_PWD
|
||||
port: 22
|
||||
command_timeout: 300s
|
||||
envs: [PROJECT_API_NAME,PROD_DOMAIN_PREFIX,PROJECT_RPC_NAME]
|
||||
script:
|
||||
- cd /bluetti/app_project/${DRONE_REPO_NAME}
|
||||
- export GIT_COMMIT=${DRONE_COMMIT:0:10}
|
||||
- export DOMAIN_PREFIX=$${PROD_DOMAIN_PREFIX}
|
||||
- export ENV="-prod"
|
||||
- docker compose down
|
||||
- docker compose up -d
|
||||
- echo "版本已经更新到 ${DRONE_COMMIT:0:10}, ${DRONE_COMMIT_MESSAGE}"
|
||||
when:
|
||||
branch:
|
||||
- master
|
||||
|
||||
volumes:
|
||||
- name: docker-sock
|
||||
host:
|
||||
path: /var/run/docker.sock
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- rollback
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: CI-notify
|
||||
|
||||
depends_on:
|
||||
- CI-building
|
||||
|
||||
clone:
|
||||
disable: true
|
||||
|
||||
steps:
|
||||
- name: notify
|
||||
image: drillster/drone-email
|
||||
settings:
|
||||
host: smtp.qiye.aliyun.com
|
||||
username: alanal@poweroak.com
|
||||
password: KRLdCsdDGrI8Uko
|
||||
port: 465
|
||||
from: alanal@poweroak.com
|
||||
when:
|
||||
status:
|
||||
- failure
|
||||
|
||||
- name: send-dingtalk-notification
|
||||
image: lddsb/drone-dingtalk-message
|
||||
volumes:
|
||||
- name: dingtalk-tpl
|
||||
path: /data
|
||||
settings:
|
||||
token: 95b118a31f95c328b1c5f7f52622997d77b69da9d393b0700fc8eb33ed551713
|
||||
secret: SECb355ff4ba5b05b5325d4c67d3f6637c75613668c248ad9cc97355fe266fe1b6a
|
||||
# token: 8a47605751760b1b1af660e67c2f39bdf9f83c672a18ab872412e99c78b0e5c0
|
||||
# secret: SEC0dfa30e4e8acfae69e7bf42b19c2feff5d302d2667de3aa4ba8cff46e867758a
|
||||
type: markdown
|
||||
debug: false
|
||||
tpl: /data/dingtalk_${DRONE_BUILD_EVENT}.tpl
|
||||
tips_title: 后端上线通知
|
||||
when:
|
||||
status:
|
||||
- success
|
||||
event:
|
||||
- promote
|
||||
- rollback
|
||||
branch:
|
||||
# - develop
|
||||
- master
|
||||
|
||||
volumes:
|
||||
- name: dingtalk-tpl
|
||||
host:
|
||||
path: /bluetti/drone/data
|
||||
Reference in New Issue
Block a user