56 lines
2.1 KiB
YAML
56 lines
2.1 KiB
YAML
# .woodpecker.yaml
|
||
steps:
|
||
- name: Java 构建
|
||
image: docker.m.daocloud.io/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: docker.m.daocloud.io/woodpeckerci/plugin-docker-buildx:latest
|
||
volumes:
|
||
- /var/run/docker.sock:/var/run/docker.sock
|
||
settings:
|
||
repo: registry.cn-zhangjiakou.aliyuncs.com/abhors/demo
|
||
tags: latest
|
||
registry: registry.cn-zhangjiakou.aliyuncs.com
|
||
username:
|
||
from_secret: aliyun_acr_username
|
||
password:
|
||
from_secret: aliyun_acr_password
|
||
mirror: https://docker.m.daocloud.io
|
||
when:
|
||
event: push
|
||
branch: master
|
||
|
||
- name: 远程终端部署
|
||
image: appleboy/drone-ssh
|
||
settings:
|
||
host:
|
||
from_secret: 136_ssh_host
|
||
username:
|
||
from_secret: 136_ssh_user
|
||
password:
|
||
from_secret: 136_ssh_password
|
||
port: 22
|
||
# 👇 完美修复 1:彻底干掉外层的 environment!
|
||
# 直接使用插件原生的 secrets 属性,安全导入系统里的这两个密文
|
||
secrets: [ aliyun_acr_username, aliyun_acr_password ]
|
||
# 👇 完美修复 2:告诉插件,在通过 SSH 连上 136 后,把上面这两个官方变量注入到远程终端里
|
||
envs: [ aliyun_acr_username, aliyun_acr_password ]
|
||
script:
|
||
# 注意:因为使用的是 secrets 原生注入,远程终端里的变量名直接叫 $aliyun_acr_username 和 $aliyun_acr_password
|
||
- docker login --username "$aliyun_acr_username" --password "$aliyun_acr_password" registry.cn-zhangjiakou.aliyuncs.com
|
||
- docker stop demo-container || true
|
||
- docker rm demo-container || true
|
||
- docker pull registry.cn-zhangjiakou.aliyuncs.com/abhors/demo:latest
|
||
- docker run -d --name demo-container -p 8080:8080 --restart always registry.cn-zhangjiakou.aliyuncs.com/abhors/demo:latest
|
||
# 👇 完美修复 3:补上 when 过滤条件,消除 bad_habit 警告
|
||
when:
|
||
event: push
|
||
branch: master |