70 lines
2.2 KiB
YAML
70 lines
2.2 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 必须在 Web UI 中开启 "Trusted" 权限
|
||
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
|
||
# 👇 核心:为其指定一个绝对能稳定拉取三方大类目的镜像加速源
|
||
# 这样当它去找 moby/buildkit 时,会自动走大厂的代理通道,100% 不会超时
|
||
mirror: https://docker.m.daocloud.io
|
||
# 很多时候 plugins/docker 内部默认会处理 context,不需要你手动挂载 docker.sock
|
||
# 但需要确保服务器配置了 WOODPECKER_PLUGINS_PRIVILEGED=plugins/docker
|
||
when:
|
||
event: push
|
||
branch: master
|
||
|
||
- name: 传输部署脚本到远程
|
||
image: appleboy/drone-scp:latest
|
||
settings:
|
||
host:
|
||
from_secret: 136_ssh_host
|
||
username:
|
||
from_secret: 136_ssh_user
|
||
password:
|
||
from_secret: 136_ssh_password
|
||
port: 22
|
||
# 👇 把本地的 deploy.sh 传送到远程服务器的 /tmp 目录下
|
||
target: /tmp/
|
||
source: deploy.sh
|
||
when:
|
||
event: push
|
||
branch: master
|
||
|
||
- name: 目标机器部署
|
||
image: appleboy/drone-ssh:latest
|
||
settings:
|
||
host:
|
||
from_secret: 136_ssh_host
|
||
username:
|
||
from_secret: 136_ssh_user
|
||
password:
|
||
from_secret: 136_ssh_password
|
||
port: 22
|
||
command_timeout: 10m
|
||
# 👇 此时远程服务器上已经切切实实躺着这个脚本了,直接运行它!
|
||
script:
|
||
- chmod +x /tmp/deploy.sh
|
||
- /tmp/deploy.sh
|
||
when:
|
||
event: push
|
||
branch: master |