4、创建第一个自由风格项目:从零搭建你的第一条流水线
好,咱们现在开始动手了。
前面几章讲了 Jenkins 的安装、配置、插件管理,说实话,都是铺垫。真正有意思的,是从你创建第一个任务开始。我记得我第一次用 Jenkins 时,面对那个「新建任务」按钮,愣是犹豫了五分钟——怕点错了把服务器搞崩。其实没那么玄乎,今天我就带你走一遍完整流程。
4.1 新建任务:选对项目类型
登录 Jenkins 后,首页左侧有个「新建任务」的链接,点进去。
你会看到几个选项:
- 自由风格项目:最灵活,啥都能干。我建议新手从这里入手。
- Maven 项目:专门给 Java 项目用的,其实底层也是自由风格。
- 流水线:用 Jenkinsfile 定义,适合复杂场景。咱们后面章节会讲。
选「自由风格项目」,输入任务名称,比如 my-first-job,点确定。
frontend-build 或 api-deploy。中文名虽然支持,但我在项目中遇到过因为编码问题导致日志乱码的情况,后来就统一用英文了。
4.2 配置源码管理(Git)
进入任务配置页,找到「源码管理」那一栏。
选 Git,然后填三个东西:
- Repository URL:你的 Git 仓库地址。比如
https://github.com/yourname/hello-world.git - Credentials:认证信息。如果是公开仓库,选「无」就行。私有仓库需要添加用户名密码或 SSH 密钥。
- Branches to build:默认是
*/master,也可以改成*/main或*/develop。
嗯,这里要注意:
如果你用的是 SSH 协议(比如 git@github.com:xxx.git),Jenkins 所在服务器必须配好 SSH 密钥。我刚开始用的时候,忘了把公钥加到 GitHub 上,结果 Jenkins 一直报「Host key verification failed」,折腾了半小时才发现是这问题。
4.3 构建触发器:让 Jenkins 自动干活
触发器决定了「什么时候开始构建」。常用的有几种:
| 触发器类型 | 适用场景 | 配置方式 |
|---|---|---|
| 定时构建 | 每天固定时间跑一次,比如凌晨做全量测试 | 填写 cron 表达式,如 H 2 * * * |
| 轮询 SCM | 定期检查 Git 仓库是否有新提交 | 填写 cron 表达式,如 H/5 * * * * |
| Webhook 触发 | 代码提交后立即触发,实时性最高 | 需安装插件,在 Git 仓库配置 webhook URL |
我个人习惯用 Webhook。你想想看,代码一提交,Jenkins 马上开始构建,多爽。但如果你刚开始学,可以先选「轮询 SCM」,每 5 分钟检查一次,够用了。
4.4 构建步骤(Shell 命令):真正干活的地方
往下翻,找到「构建」那一栏,点「增加构建步骤」,选「执行 shell」。
这里写的就是你平时在终端里敲的命令。比如:
#!/bin/bash
echo "开始构建..."
cd $WORKSPACE
npm install
npm run build
echo "构建完成!"
为什么用 $WORKSPACE?这是 Jenkins 内置的环境变量,指向当前任务的工作目录。说白了,就是 Jenkins 把代码下载到哪个文件夹,$WORKSPACE 就指向哪里。
我再给你一个更完整的例子:
#!/bin/bash
set -e # 遇到错误就停止,别硬撑
echo "===== 步骤1:安装依赖 ====="
npm install
echo "===== 步骤2:运行测试 ====="
npm test
echo "===== 步骤3:打包 ====="
npm run build
echo "===== 步骤4:归档 ====="
tar -czf dist.tar.gz dist/
echo "打包文件大小:"
ls -lh dist.tar.gz
set -e,这样任何一步失败,整个构建都会标记为失败。我曾经没加这个,结果 npm install 失败了,但后续命令还在跑,最后构建显示成功,实际上产物是坏的。嗯,从那以后我每条流水线都加 set -e。
4.5 构建后操作:善后工作不能少
构建跑完了,然后呢?
「构建后操作」就是干这个的。点「增加构建后操作步骤」,常见的有:
- 归档制品:把构建产物保存起来,比如
dist/*.tar.gz - 发布测试报告:如果生成了 JUnit 格式的测试结果,可以在这里配置
- 发送邮件通知:构建失败时给团队发邮件
- 触发下游项目:这个构建成功后,自动触发另一个 Jenkins 任务
我一般至少会配「归档制品」和「邮件通知」。你想想看,构建产物不保存,那构建出来干嘛用?邮件通知不配,构建失败了都没人知道。
配置归档制品很简单:
- 在「归档制品」输入框里写
dist/*.tar.gz - Jenkins 会自动把匹配的文件保存到构建记录里
邮件通知稍微复杂点,需要先配好 Jenkins 的系统邮件设置。不过别担心,咱们后面有专门章节讲这个。
4.6 保存并运行
所有配置完成后,点底部的「保存」按钮。
回到任务页面,你会看到一个「立即构建」的按钮。点一下,看看控制台输出。
如果一切顺利,你会看到蓝色圆点(表示成功)。如果是红色,点进去看日志,排查问题。
说实话,第一次跑通的时候,那种成就感还是挺爽的。虽然只是简单的 Shell 命令,但你已经让 Jenkins 帮你自动完成了一套流程。后面咱们会在这个基础上,一步步加上测试、部署、通知,最终打造一条完整的 CI/CD 流水线。
下一章,咱们聊聊参数化构建——让同一个任务能根据不同的参数执行不同的逻辑。这个在实际项目中非常实用。