demo/.woodpecker.yaml

72 lines
3.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# .woodpecker.yaml
# 🛑 终极完全体开关:无论项目、私服、部署机器怎么变,只改这 6 行!
environment:
# 1. 业务与私服配置(已换成本地真实自建域名)
APP_REGISTRY: "push.lovestory.cyou" # 👈 镜像推送走专属通道
APP_PULL_REGISTRY: "registry.lovestory.cyou" # 👈 远程136机器拉取走加速总门户
PROJECT_NAME: "abhors/demo"
CONTAINER_NAME: "demo-container"
# 2. 远程部署机器配置
DEPLOY_HOST: "43.143.243.136" # 👈 你的腾讯云 136 服务器 IP
DEPLOY_PORT: 22 # 👈 SSH 端口
DEPLOY_USER_SECRET: "136_ssh_user" # 👈 对应系统 Secret 里的用户名别名
DEPLOY_PASS_SECRET: "136_ssh_password" # 👈 对应系统 Secret 里的密码别名
steps:
- name: Java 构建
# 💡 隐式拦截这里不加任何域名Woodpecker宿主机会通过本地daemon.json自动走registry.lovestory.cyou下载并秒级缓存
image: library/maven:3.9.6-eclipse-temurin-17
pull: true
commands:
- mvn clean package -DskipTests
volumes:
- /tmp/maven-cache:/root/.m2
when:
event: [push, pull_request]
branch: master
- name: 镜像构建与推送
image: woodpeckerci/plugin-docker-buildx:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
settings:
repo: ${APP_REGISTRY}/${PROJECT_NAME}
registry: ${APP_REGISTRY}
username:
from_secret: nexus_docker_username
password:
from_secret: nexus_docker_password
when:
event: push
branch: master
- name: 远程终端部署
# 💡 完美闭环:这里直接走你的私服拉取,刚才通过 1ms 毫秒源缓存下来的插件,这里将是“秒拉”
image: registry.lovestory.cyou/appleboy/drone-ssh:latest
settings:
host: ${DEPLOY_HOST}
port: ${DEPLOY_PORT}
username:
from_secret: ${DEPLOY_USER_SECRET}
password:
from_secret: ${DEPLOY_PASS_SECRET}
# 安全传递与跨网传输
secrets: [ nexus_docker_username, nexus_docker_password ]
envs: [ nexus_docker_username, nexus_docker_password, APP_REGISTRY, APP_PULL_REGISTRY, PROJECT_NAME, CONTAINER_NAME ]
script:
- echo "========================================="
- echo "🚀 开始部署节点:${DEPLOY_HOST}"
- echo "========================================="
# 📦 远程 136 机器由于通过 Group 组仓registry.)更能享受到本地缓存的红利
- docker login --username "$nexus_docker_username" --password "$nexus_docker_password" "$APP_PULL_REGISTRY"
- docker stop "$CONTAINER_NAME" || true
- docker rm "$CONTAINER_NAME" || true
# 💡 细节优化136机器拉取时由于你的Hosted仓已经聚合在Group仓里所以136直接走registry.lovestory.cyou拉取即可
- docker pull "$APP_PULL_REGISTRY"/"$PROJECT_NAME":latest
- docker run -d --name "$CONTAINER_NAME" -p 8080:8080 --restart always "$APP_PULL_REGISTRY"/"$PROJECT_NAME":latest
when:
event: push
branch: master