前话
接下来的每个实战我都将一一个模式多个案例进行讲解,当然案例是我个人想出来的,有错轻喷嘿。
Jenkins最简单的模式,自由模式,从这里开始吧。
案例
我有个简单的前端项目,这个项目使用git进行版本管理,只有一个分支master,且只有静态页面资源文件。
我想每次修改并提交代码到master分支后,这个项目能够被感知有新的提交并且将项目部署到nginx服务器上,并且部署完成后,jenkins项目管理后台能够下载最新的项目压缩包。
案例很简单,接下来开始实操。
开始
1.准备
1.1 启动个nginx服务器,用于部署项目
# 启动nginx容器
docker run --name nginx --network mybridge -p 4000:80 -d nginx
# 进入容器
docker exec -it nginx /bin/bash
# 重置密码(为方便测试统一密码为root)
passwd
# 安装包
apt update
apt install openssh-server vim -y
# 修改ssh服务配置(修改PermitRootLogin为yes)并启动
vim /etc/ssh/sshd_config
service ssh start
1.2 jenkins服务安装 Publish Over SSH
和 Generic Webhook Trigger
插件
1.3 jenkins新增ssh服务器
2.新建git项目
访问已经启动的git服务地址,直接新建项目 my-free
,过程略。
项目地址为:http://localhost:3000/root/my-free.git
3.新建jenkins项目
3.1 点击New Item
新建项目
3.2 输入项目名称my-free
,选择自由模式项目
4 配置jenkins项目
4.1 配置项目git仓库
4.2 配置项目构建触发器
我们选择Generic Webhook Trigger
,它为项目对外暴露构建api接口,这样我们在git项目中配置钩子调用该接口,即可实现提交代码时自动触发jenkins项目进行构建动作。
如上图所示,我们只配置了 token
为 my-free
。
这样该jenkins项目对外暴露的接口地址为:http://localhost:8080/generic-webhook-trigger/invoke?token=my-free
4.3 配置项目构建动作
我们选择构建动作为发送项目文件,勾选后,选中前面配好的nginx服务器进行配置。
4.4 构建完成后动作
最后添加个构建后动作提供链接下载项目压缩包文件。
选中 Archive the artifacts
添加配置
4.5 保存
5.配置git项目
找到git项目设置页面的Webhook项,点击 Add Webhook
按钮,选中 gitea
,保存添加代码提交动作触发钩子。
要注意的是,这里的 Target URL
填写的是jenkins项目配置的构建触发api。
测试
我们把git仓库clone下来,新增一个index.html文件,提交。
回到jenkins项目首页,可以看到在项目文件提交后自动进行了构建打包操作。