Eddie Lau

I Need You To Tell Me That I’m A Good Person.

云效 CI&CD 实战:代码提交自动构建与部署

2026年7月9日

云效 CI/CD 最常见链路:

1
2
3
4
5
6
7
8
9
10
11
12
13
Git 推送代码

云效 Flow 自动触发

拉代码

Maven 构建 / 单元测试

Docker 镜像构建

推送镜像仓库

部署到 ECS / Docker / K8s

一、先建流水线

进入:

1
云效 → Flow 流水线 → 新建流水线

选择模板可以用:

1
Java 构建部署

或者直接空白流水线。

二、配置代码源触发

在流水线左侧添加:

1
流水线源 / 代码源

选择你的仓库,比如:

1
Codeup / GitHub / Gitee / GitLab

然后开启:

1
代码源触发

配置触发分支,例如:

1
2
3
master
dev
test

官方文档说明:开启代码源触发并配置 Webhook 后,对应代码地址和分支有提交就可以触发流水线运行。(Aliyun Help Center)

不要优先用顶部那个“通用 Webhook”做代码提交触发。代码仓库触发更适合 push、tag、合并请求这些场景;通用 Webhook 更适合外部系统主动调用流水线。(Aliyun Help Center)

三、Maven 构建阶段

添加任务:

1
Java 构建 / Maven 构建

命令一般写:

1
mvn -B clean package -DskipTests

如果要跑测试:

1
mvn -B clean test

如果是多模块项目:

1
mvn -B clean package -pl assess-server -am -DskipTests

四、Docker 镜像构建

添加任务:

1
镜像构建并推送

配置:

1
2
3
Dockerfile 路径:./Dockerfile
镜像仓库:阿里云 ACR / 自建 Harbor
镜像版本:${DATETIME} 或 ${COMMIT_ID}

建议镜像 tag:

1
项目名/服务名:分支名-提交ID

例如:

1
carloan/assess-server:test-${COMMIT_ID}

五、部署阶段

如果你是普通 ECS + Docker,可以用:

1
主机部署 / SSH 执行命令

示例:

1
2
3
4
5
6
7
8
9
10
docker pull 镜像地址

docker stop assess-server || true
docker rm assess-server || true

docker run -d \
--name assess-server \
-p 8080:8080 \
--restart=always \
镜像地址

如果你是 Docker Swarm:

1
2
3
docker service update \
--image 镜像地址 \
assess-server

如果是 Kubernetes:

1
kubectl set image deployment/assess-server assess-server=镜像地址

六、你现在最该这样配

按你的场景,推荐:

1
2
3
4
5
6
7
代码源触发

Maven 构建

Docker 镜像构建并推送

SSH 到服务器执行 docker service update

核心配置重点是:

1
2
不是先配 Webhook
而是先在云效流水线源里绑定代码仓库,并开启代码源触发

通用 Webhook 只有在你想让“外部系统主动调用云效流水线”时才用。

References

不许转载😡!!!

Buy me a cup of coffee ☕.