demo/.woodpecker.yaml

70 lines
2.3 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
# 💡 全局变量块
variables:
- &APP_REGISTRY "push.lovestory.cyou"
- &APP_PULL_REGISTRY "registry.lovestory.cyou"
- &PROJECT_NAME "abhors/demo"
- &CONTAINER_NAME "demo-container"
- &DEPLOY_HOST "43.143.243.136"
- &DEPLOY_PORT 22
- &DEPLOY_USER_SECRET "136_ssh_user"
- &DEPLOY_PASS_SECRET "136_ssh_password"
steps:
- name: Java 构建
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
privileged: true
# 💡 解决方案:通过 environment 将锚点转化为当前步骤的环境变量
environment:
REGISTRY_DOMAIN: *APP_REGISTRY
PROJECT_PATH: *PROJECT_NAME
volumes:
- /var/run/docker.sock:/var/run/docker.sock
settings:
# 💡 完美拼接:此时可以使用标准的系统变量拼接,完美通过 Linter
repo: ${REGISTRY_DOMAIN}/${PROJECT_PATH}
registry: *APP_REGISTRY
insecure: true
username:
from_secret: nexus_docker_username
password:
from_secret: nexus_docker_password
when:
event: push
branch: master
- name: 远程终端部署
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 ]
script:
- echo "========================================="
- echo "🚀 开始部署节点:*DEPLOY_HOST"
- echo "========================================="
- docker login --username "$nexus_docker_username" --password "$nexus_docker_password" "registry.lovestory.cyou"
- docker stop "demo-container" || true
- docker rm "demo-container" || true
- docker pull "registry.lovestory.cyou/abhors/demo:latest"
- docker run -d --name "demo-container" -p 8080:8080 --restart always "registry.lovestory.cyou/abhors/demo:latest"
when:
event: push
branch: master