背景
每次写完代码就要进行的机械工作:
- 提交代码,push到分支。
- 打包然后把dist目录下的文件用ftp上传到服务器 。
这种机械工作,做久了,就觉得很繁琐,于是我就想做一些自动化部署的工作来简化工作。
公司技术
- 代码使用gitlab管理(版本8.5.7)
- 前端vue
步骤
注意点:
- 默认是80端口,如果启动jenkins失败,要更换下端口启动,例如
java -jar jenkins.war --httpPort=8001- 安装插件比较慢,如果部分插件没安装成功,可以先跳过,进入主页面
- 新建任务,选择第一个类型的
- 源码管理
- 构建触发器
- 选择
Generic Webhook Trigger Token这里随意定义- 构建
- 我选择的是执行
shell $WORKSPACE是jenkins自带的变量,git push的代码回退到$WORKSPACE目录下,你可以echo $WORKSPACE打印下,看下具体在哪里。cd $WORKSPACE && npm i && npm run build进入目录,安装依赖,进行打包。cp -R $WORKSPACE/dist/. /usr/share/nginx/html复制打包好的dist目录的文件到nginx的html目录下。这里/usr/share/nginx/html可以根据具体目录进行修改。- 设置gitlab的webhook
- 进入项目,选择settings,再选择Web hooks(这里根据gitlab版本不同,找到Web hooks的步骤可能不同)
URL填写http://服务器IP:端口号/generic-webhook-trigger/invoke?token=webhook_token这里 token填写就是当时我们在jenkins构建触发器步骤填写的Token,一定要保持一致。Trigger可以根据实际需求勾选,我只是按照默认的勾选push。- 至此,jenkins和gitlab的设置已经全部设置完成,可以进行git push看看效果了
效果
总结
第一次接触jenkins,搭配gitlab的webhook实现自动打包,效果还是可以的。