43 lines
1.5 KiB
YAML
43 lines
1.5 KiB
YAML
# .woodpecker.yaml
|
|
workflows:
|
|
build-and-deploy:
|
|
name: Java应用构建与部署
|
|
# 触发条件,仅在 main/master 分支推送时运行
|
|
when:
|
|
- event: push
|
|
branch: main
|
|
- event: push
|
|
branch: master
|
|
|
|
steps:
|
|
# 1. 使用 Maven 构建 Java 应用,并缓存依赖
|
|
- name: Java 构建
|
|
image: maven:3.9.6-eclipse-temurin-17
|
|
pull: true
|
|
commands:
|
|
- mvn clean package -DskipTests # 跳过测试以加快构建
|
|
volumes:
|
|
- /tmp/maven-cache:/root/.m2 # 缓存 Maven 依赖
|
|
|
|
# 2. 将构建好的 JAR 文件打包为 Docker 镜像
|
|
- name: Docker 构建
|
|
image: docker:latest
|
|
pull: true
|
|
commands:
|
|
- docker build -t registry.cn-zhangjiakou.aliyuncs.com/abhors/demo:latest .
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock # ⚠️ Docker in Docker 挂载
|
|
|
|
# 3. 将打包好的镜像推送到 Docker Hub
|
|
- name: 镜像推送
|
|
image: plugins/docker
|
|
settings:
|
|
# ⚠️ 关键配置:必须准确填写
|
|
repo: registry.cn-zhangjiakou.aliyuncs.com/abhors/demo
|
|
registry: registry.cn-zhangjiakou.aliyuncs.com
|
|
tags: latest
|
|
dockerfile: ./Dockerfile
|
|
username:
|
|
from_secret: docker_hub_user # 从 Woodpecker UI 获取的 Docker Hub 用户名
|
|
password:
|
|
from_secret: docker_hub_pass # 从 Woodpecker UI 获取的 Docker Hub 密码或 Token |