jenkins搭配gitlab的webhook实现自动化部署

1,093 阅读2分钟

背景

每次写完代码就要进行的机械工作:

  • 提交代码,push到分支。
  • 打包然后把dist目录下的文件用ftp上传到服务器 。

这种机械工作,做久了,就觉得很繁琐,于是我就想做一些自动化部署的工作来简化工作。

公司技术

  • 代码使用gitlab管理(版本8.5.7)
  • 前端vue

步骤

注意点:

  • 默认是80端口,如果启动jenkins失败,要更换下端口启动,例如java -jar jenkins.war --httpPort=8001
  • 安装插件比较慢,如果部分插件没安装成功,可以先跳过,进入主页面
  • 新建任务,选择第一个类型的 BXW3Yn.png
  • 源码管理
    • Credentials这里我选择的是用户名和密码
    • Branches to build 这里我选择的是master,就是说master的代码变动后就会触发 BXWdw4.png
  • 构建触发器
  • 选择Generic Webhook Trigger
  • Token这里随意定义 BXWwTJ.png
  • 构建
  • 我选择的是执行shell BXWamF.png
  • $WORKSPACE是jenkins自带的变量,git push的代码回退到$WORKSPACE目录下,你可以echo $WORKSPACE打印下,看下具体在哪里。
  • cd $WORKSPACE && npm i && npm run build 进入目录,安装依赖,进行打包。
  • cp -R $WORKSPACE/dist/. /usr/share/nginx/html 复制打包好的dist目录的文件到nginxhtml目录下。这里/usr/share/nginx/html可以根据具体目录进行修改。
  • 设置gitlab的webhook
  • 进入项目,选择settings,再选择Web hooks(这里根据gitlab版本不同,找到Web hooks的步骤可能不同) BXWtyT.png
  • URL 填写http://服务器IP:端口号/generic-webhook-trigger/invoke?token=webhook_token 这里 token填写就是当时我们在jenkins构建触发器步骤填写的Token,一定要保持一致。
  • Trigger 可以根据实际需求勾选,我只是按照默认的勾选push
  • 至此,jenkins和gitlab的设置已经全部设置完成,可以进行git push看看效果了

效果

  • 我们push代码后,可以看到jenkins已经在自动进行构建了。 BXWNOU.png
  • 点进去可以看到git commit的信息 BXWBk9.png
  • 点击控制台输出,可以看到在自动打包,并且构建完成,没有报错。 BXWDYR.png

总结

第一次接触jenkins,搭配gitlab的webhook实现自动打包,效果还是可以的。