本文主要记录从零搭建jenkins环境,并与gitlab结合自动化部署前端项目
docker 启动 jenkins
如果不使用docker的话,记得还需要安装java环境,这里使用docker还是挺方便的
sudo docker run -u root -it --name jenkins -p 8080:8080 -p 50000:50000 -v /home/vangleer/jenkins_home:/var/jenkins_home -d jenkins/jenkins:lts-jdk11
- 启动成功后查看日志
sudo docker logs jenkins
控制台会打印第一次登录密码
- 访问 jenkins http://172.18.16.111:8080,填入刚刚的密码
- 接着会到下面的页面,选择推荐安装插件即可
- 点击后jenkins就回去下载插件,这里会等待一会,可能由于网络问题个别插件会下载失败,点击重试即可
- 提示创建一个用户,这里我创建了一个,也可以不创建直接使用admin登录
安装gitlab和nodejs相关插件,以及配置相关信息
- 进入到首页后,点击 Manage Jenkins > Manage Plugins > Available plugins,搜索 gitlab, nodejs 插件并下载
- 配置gitlab
- 添加 gitlab的token
- 配置nodejs
创建一个任务
- 点击
新建任务
-
创建一个
构建一个自由风格的软件项目
-
为任务添加配置,选择git,这里要配置gitlab仓库地址,和凭据,这里为了方便我直接添加的是gitlab登录账号密码
- 点击保存后我们就可以试着点击构建,jenkins就会去我们配置的仓库拉取代码了
- 点击
工作空间
就可以看到代码了
自动构建
- 配置触发器
点击高级,生成token
- 配置gitlab和webhook,这里需要地址和刚刚生成的token
进入gitlab仓库设置,添加webhook
填入刚刚的地址和token,选择 Push Events,点击添加
注意:如果gitlab和jenkins都在同一台服务器上的话,可能会添加失败,需要登录gitlab管理员账号修改一个配置,参考:https://blog.csdn.net/Beyond_F4/article/details/108080383
- 添加完后可以测试一下,如果提示成功说明配置没有问题
注意注意:如果各位看官不是使用docker启动的jenkins而是直接安装的话,需要设置防火墙放行jenkins端口,不然gitlab是没法触发的,我刚开始就是直接安装,结果找了好一会才找到问题!!!这里使用docker的好处就体现出来了。。。
构建环境 - nodejs
-
选择前面配置的nodejs选项
-
构建步骤,选择执行shell,输入执行命令
至此我们就将整个流程串联起来了
- 将代码提交到gitlab
- gitlab触发提交的 webhooks,调用jenkins的钩子
- jenkins接收到请求后执行部署一系列操作
大家可能会注意到这里差了一步,打完包后怎么将打包的结果放到生产环境呢,这里需要一个插件,将构建的结果文件放到生产服务器上
将构建的包拷贝到生产服务器
- 安装jenkins插件
Publish Over SSH
-
添加服务器配置信息,账号和密码
-
进入到任务配置,构建后操作,选择 Send build artifacts over SSH
- 前面的构建步骤需要修改一下,打完包后需要将包压缩