This commit is contained in:
135
.drone.yml
Normal file
135
.drone.yml
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: frontend-deploy
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# =============================
|
||||||
|
# 1. 构建并推送前端镜像
|
||||||
|
# =============================
|
||||||
|
# 1️⃣ 构建并推送 Docker 镜像
|
||||||
|
- name: build & push image
|
||||||
|
image: plugins/docker
|
||||||
|
settings:
|
||||||
|
registry: images.lihailezzc.com
|
||||||
|
repo: images.lihailezzc.com/ai-meng/api-client
|
||||||
|
tags:
|
||||||
|
- latest
|
||||||
|
- ${DRONE_TAG}
|
||||||
|
username: robot$build-robot
|
||||||
|
password: FbVZ7xv0wCA4es40sclV9kywOryz4l02
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
|
||||||
|
# =============================
|
||||||
|
# 2. SSH 服务器部署
|
||||||
|
# =============================
|
||||||
|
# - name: deploy to server
|
||||||
|
# image: appleboy/drone-ssh # 专门用于 SSH 执行命令
|
||||||
|
# settings:
|
||||||
|
# host: 123.57.105.123 # 服务器 IP
|
||||||
|
# username: aimeng # 登录用户
|
||||||
|
# ssh_key: |
|
||||||
|
# -----BEGIN OPENSSH PRIVATE KEY-----
|
||||||
|
# b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
|
||||||
|
# QyNTUxOQAAACA83omyFMBLSjFBZpG84twncgU7JIw9j9rVj2iIZwLvjAAAAJg6n1PsOp9T
|
||||||
|
# 7AAAAAtzc2gtZWQyNTUxOQAAACA83omyFMBLSjFBZpG84twncgU7JIw9j9rVj2iIZwLvjA
|
||||||
|
# AAAEBRiuNI+OWKCQCHKn6FMFzGIx3sFW1XE5fqLrf48Qh0nTzeibIUwEtKMUFmkbzi3Cdy
|
||||||
|
# BTskjD2P2tWPaIhnAu+MAAAAEGRyb25lIGRlcGxveSBrZXkBAgMEBQ==
|
||||||
|
# -----END OPENSSH PRIVATE KEY-----
|
||||||
|
# port: 12580
|
||||||
|
# script:
|
||||||
|
# - echo "🚀 登录服务器,拉取最新镜像并部署"
|
||||||
|
# - cd /home/aimeng/workspace/docker-compose/admin
|
||||||
|
# - export NEW_WEB_SUFFIX=$(date +%s)
|
||||||
|
# - export WEB_NEW="cms_${NEW_SUFFIX}"
|
||||||
|
# - docker compose run -d --name $WEB_NEW api_server
|
||||||
|
# - docker stop api_server || true
|
||||||
|
# - docker rm api_server || true
|
||||||
|
# - docker rename $API_NEW api_server
|
||||||
|
# - docker image prune -f
|
||||||
|
|
||||||
|
# - docker compose pull cms
|
||||||
|
# - docker compose up -d frontend
|
||||||
|
|
||||||
|
# 3️⃣ 飞书通知
|
||||||
|
- name: notify feishu
|
||||||
|
image: curlimages/curl
|
||||||
|
environment:
|
||||||
|
FEISHU_WEBHOOK_URL: https://open.feishu.cn/open-apis/bot/v2/hook/be0b7f21-894e-4280-9469-69005fa5be9c
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# 构建状态
|
||||||
|
COLOR=$( [ "$DRONE_BUILD_STATUS" = "success" ] && echo "green" || echo "red" )
|
||||||
|
|
||||||
|
# 基础信息
|
||||||
|
COMMIT_MSG=$(echo "$DRONE_COMMIT_MESSAGE" | sed 's/"/\\"/g')
|
||||||
|
AUTHOR=${DRONE_COMMIT_AUTHOR_NAME}
|
||||||
|
PROJECT=${DRONE_REPO_NAME}
|
||||||
|
BRANCH=${DRONE_BRANCH}
|
||||||
|
PROJECT_VERSION=${DRONE_TAG}
|
||||||
|
URL=${DRONE_BUILD_LINK}
|
||||||
|
|
||||||
|
# 耗时计算
|
||||||
|
DURATION=$((DRONE_BUILD_FINISHED - DRONE_BUILD_CREATED))
|
||||||
|
MIN=$((DURATION / 60))
|
||||||
|
SEC=$((DURATION % 60))
|
||||||
|
FINISH="$MIN分$SEC秒"
|
||||||
|
|
||||||
|
# 调试输出
|
||||||
|
echo "DEBUG: DURATIONA=$DURATIONA"
|
||||||
|
echo "DEBUG: DURATIONB=$DURATIONB"
|
||||||
|
echo "DEBUG: DURATION=$DURATION"
|
||||||
|
echo "DEBUG: MIN=$MIN"
|
||||||
|
echo "DEBUG: SEC=$SEC"
|
||||||
|
echo "DEBUG: FINISH=$FINISH"
|
||||||
|
|
||||||
|
curl --request POST \
|
||||||
|
--url "$FEISHU_WEBHOOK_URL" \
|
||||||
|
--header 'content-type: application/json' \
|
||||||
|
--data "{
|
||||||
|
\"msg_type\": \"interactive\",
|
||||||
|
\"card\": {
|
||||||
|
\"config\": { \"wide_screen_mode\": true },
|
||||||
|
\"header\": {
|
||||||
|
\"title\": { \"tag\": \"plain_text\", \"content\": \"🚀 CI/CD 构建通知\" },
|
||||||
|
\"template\": \"$COLOR\"
|
||||||
|
},
|
||||||
|
\"elements\": [
|
||||||
|
{
|
||||||
|
\"tag\": \"div\",
|
||||||
|
\"text\": {
|
||||||
|
\"tag\": \"lark_md\",
|
||||||
|
\"content\": \"**项目**:$PROJECT\\n**分支**:$BRANCH\\n**版本 **:$PROJECT_VERSION \\n**提交人**:$AUTHOR\\n**提交说明**:$COMMIT_MSG\"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ \"tag\": \"hr\" },
|
||||||
|
{
|
||||||
|
\"tag\": \"div\",
|
||||||
|
\"fields\": [
|
||||||
|
{ \"is_short\": true, \"text\": { \"tag\": \"lark_md\", \"content\": \"**状态**\\n$DRONE_BUILD_STATUS\" } },
|
||||||
|
{ \"is_short\": true, \"text\": { \"tag\": \"lark_md\", \"content\": \"**耗时**\\n$FINISH\" } }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
\"tag\": \"action\",
|
||||||
|
\"actions\": [
|
||||||
|
{
|
||||||
|
\"tag\": \"button\",
|
||||||
|
\"text\": { \"tag\": \"plain_text\", \"content\": \"查看详情\" },
|
||||||
|
\"url\": \"$URL\",
|
||||||
|
\"type\": \"primary\"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}"
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- success
|
||||||
|
- failure
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
Reference in New Issue
Block a user