Linux下Jenkins与GitHub自动构建Node项目(Vue)
根据上篇文章《Linux下Jenkins与GitHub自动构建NetCore与部署》,我们知道了Jenkins的强大功能,自动构建,部署了一个NetCore的Web,让开发人员专注于开发,不用管理线上,或测试服务器的部署。那现在,互联网公司很多采用了前后端分离的开发模式,既然服务端可以用Jenkins,那么前端是否也可以吗?那我们就尝试下,试着去构建一个Vue的基本项目。
1. 构建环境
对于整个linux环境是什么样的,我就不多讲了,不懂就看上一篇文章,不过这边还是要讲2点:
Node的安装
附赠安装教程链接,不过压缩包要上传到服务器,可以使用Xshell或者ftp,当然也可以wget https://nodejs.org/dist/v10.16.0/node-v10.16.0-linux-x64.tar.xz,然后再进行解压操作,具体就看文章吧。环境 地址 Node https://www.cnblogs.com/liuqi/p/6483317.html 安装完后,查看node版本
Jenkins的Node插件
对于Node项目的构建,我们需要安装Jenkins的Node插件。在Jenkins的“系统管理”找到“插件管理”,再找的“NodeJs”的插件,安装即可。
接着我们在“全局工具配置” ,设置我们要执行的Node版本,当然,要跟我们刚才安装的版本一致。
2. Jenkins自动构建
定时构建
在我们完成第一个步骤后,我们就可以开始新建项目,然后设置参数,启动构建了。创建任务
自定义工作目录
设置源代码
这边的源代码,我采用的是之前的一个Vue版的博客园WebApp,顺便这边也推广下,附上博客地址:《我用Vue写了个博客园WebApp》设置构建触发器
接下来我们为构建设置一个定时器,定时的规则,在上篇文章也讲过了,这边就不多讲了,大家看上一篇文章即可,这边设置了下,3分钟自动构建一次。设置构建环境
这边的环境就选择,刚才我们在“全局工具配置”中设置的Node的版本就可以了。设置要执行构建的命令
执行命令当然是Node的命令了,安装依赖包,编译,打包。
- cd /ftpfile/node/vue/ #进入Jenkins工作空间下vue项目目录
- node -v #检测node版本(此条命令非必要)
- npm -v #检测npm版本(此条命令非必要)
- npm config set registry https://registry.npm.taobao.org #把npm源设置为淘宝源(这个你懂的)
- npm config get registry #检测npm是否切换成功(此条命令非必要)
- npm install #安装项目中的依赖
- npm run build #打包
- cd /ftpfile/node/vue/ #进入Jenkins工作空间下vue项目目录
构建
一切准备就绪,点击构建,构建完成。你可以将打包的文件移到web网站那边,当然,也可以在构建命令中使用命令复制。
触发构建
对于触发构建,我们在上篇博客也讲过,对于触发构建的条件,这边就不在多讲了,大家可以去看上篇文章。我在在这边只需要先在GitHub先添加WebHook,然后修改构建触发器就可以了。- 添加WebHook
- 修改构建触发器
- 提交代码,自动构建
- 添加WebHook
3. 项目部署
对于项目的部署,其实没啥好讲的,以前在将Vue博客园里面讲过了,大家可以往前翻下文章。简单来讲就是,使用nginx进行反向代理,因为你不是已经打包了嘛,只剩下静态页面,与JS。当然如果你觉得自动构建生成的dist不在指定位置,那可以在构建命令中,打包完,压缩下,然后复制到指定目录,解压就可以了。
所以这边就不在多多描述了。
4. 总结一下
该篇内容较少,因为很多内容其实都在上一篇讲完了,对于Node的构建,无非就是Jenkins加上Node插件,但前提是你的服务器要安装NodeJs,对于构建步骤都是一样的,无非就是构建命令不一样而已,Web部署也都是Nginx,当然还可以使用supervisor进行守护进程。
最后,我们的前后端分离的自动构建与部署就这样完成了。简单吧,当然若是存在跨域的问题,可以内容再用nginx做跨域,或者服务端直接开CROS就可以了。那两篇关于前后端的自动构建与线上部署就这样完成咯。
Linux下Jenkins与GitHub自动构建Node项目(Vue)的更多相关文章
- Linux下Jenkins与GitHub自动构建NetCore与部署
今天我们来谈谈NetCore在Linux底下的持续集成与部署.NetCore我就不多介绍了,持续集成用的是Jenkins,源代码管理器用的是GitHub.我们就跟着博文往下走吧. 1.Linux环境 ...
- Linux下Jenkins+git+gradle持续集成环境搭建
Linux下Jenkins+git+gradle持续集成环境搭建 来源:IT165收集 发布日期:2014-08-22 21:45:50 我来说两句(0)收藏本文 一.项目介绍 和 linux ...
- Linux下Git和GitHub使用方法总结
来源:Linux下Git和GitHub使用方法总结 1 Linux下Git和GitHub环境的搭建 第一步: 安装Git,使用命令 “sudo apt-get install git” 第二步: 到G ...
- 【Jenkins】linux下Jenkins集成ant进行编译并发送结果
三个文章吧: 1 如何使用ant编译执行jmeter测试用例,并生成html报告 2 如何在Linux下搭建jenkins环境. 3 如何在Linux下搭建的jenkins中执行ant构建运行,并发送 ...
- linux下通过脚本实现自动重启程序的方法
无论什么程序都不可能完美无缺,理论上,任何程序都有 Core Dump 的一天,正式运营的程序,尤其是服务器程序,一旦 Core Dump ,后果不堪设想,有过服务器开发经验的朋友,一定都经历过深夜美 ...
- Linux下Tomcat catalina.out自动归档,以及logrotate 配置详解
Linux下Tomcat catalina.out自动归档 如果 catalina.out 日志达到 2GB 大小的时候,Tomcat 因为缓存问题,便没有办法继续输出日志了. 为了避免这种情况,你 ...
- Yeoman自动构建js项目
Aug 19, 2013 Tags: bowergruntJavascriptjsnodejsyeomanyo Comments: 10 Comments Yeoman自动构建js项目 从零开始nod ...
- 向github项目push代码后,Jenkins实现其自动构建
配置Jenkins(添加Github服务器) 1.进入[系统管理] --> [系统设置] ,找到[Github] 2.添加Github服务器 这里需要github提供一个密钥文本,我们去gith ...
- 环境部署(七):linux下Jenkins+Git+JDK持续集成
前面几篇博客介绍了linux下安装Jenkins.Git.JDK以及Git基础教程和Git关联github等内容,这篇博客,介绍下如何在linux服务器中利用它们构建持续集成环境... 一.准备工作 ...
随机推荐
- scau 18087 开始我是拒接的 mobius
其实有一个很有用的技巧就是,把gcd = 4的贡献,压去gcd = 2时的贡献,就不需要考虑这么多的了. 为什么可以把gcd = 4的,压去gcd = 2的呢,gcd = 12的,压去gcd = 6的 ...
- spring cloud 测试的时候报 BeanCreationNotAllowedException: Error creating bean with name 'eurekaAutoServiceRegistration' 但能正确跑完测试方法
因为都能正确的跑测试方法,所以我也不太注意它,但是有时候闲得蛋疼就会找一下原因. 具体原因我也说不清,直接丢个连接 https://github.com/spring-cloud/spring-clo ...
- Redis的数据类型(Strings、 hashes)
字符串(Strings)类型及操作 字符串是Redis值的最基础的类型,一个key对应一个value,Redis字符串是二进制安全的,这意味着一个Redis字符串可以包含任何种类的数据,例如一个JPE ...
- 在MasterPage中检验session是否存在~
在母板頁中檢查user是否登入過,這樣就不用在每個頁中去作檢驗.在其Init事件中寫入如下代碼: protected void ContentPlaceHolder1_Init(object ...
- autofac 注入生命周期
创建实例方法 1.InstancePerDependency 对每一个依赖或每一次调用创建一个新的唯一的实例.这也是默认的创建实例的方式. 官方文档解释:Configure the component ...
- 安卓下对SD卡文件的读写
为SD下的操作文件,封装了一些类: package ujs.javawritedata; import java.io.File; import java.io.FileInputStream; im ...
- BZOJ3004: 吊灯(结论 毒瘤)
题意 $n$个节点的树,判断能否划分成$\frac{n}{k}$个大小为$k$的联通块 Sol 首先$k$必须是$n$的倍数. 然后刚开始我就非常傻的以为输出所有约数就行了.. 但是图是这样,$k = ...
- 《移动Web前端高效开发实战》笔记3--代码检查任务
在项目的开发过程中,统一的代码风格对于项目的可协作性以及可维护性来说相当重要,因此可以采用一些插件来进行代码风格的检查. 本例中的源文件包含两类:Sass文件和采用ECMAScript 6规范的Jav ...
- python的subprocess模块(写的不错留作查询)
python的subprocess模块 subprocess模块是python从2.4版本开始引入的模块.主要用来取代 一些旧的模块方法,如os.system.os.spawn*.os.popen*. ...
- JFinal视频教程-JFnal学院分享课
最近JFinal学院出了JFinal视频教程分享课,请笑纳~ 课程列表: 1.[JFinal版]微信小程序富文本渲染解决方案-html2wxml4J分享课 这个课程主要讲的是使用基于JFinal开发的 ...