Axiu Blog
动运行测试、自动编译/构建、构建完成自动打包/发布版本。 目前许多语言编写的项目都可以使用`Jenkins`,只需要安装对应的扩展插件。 本文简单记述`NodeJS`工程的自动化集成步骤。 ### Jenkins跑起来 首先安装java环境,配置完去[这里](https://jenkins.io/download/)下载最近的`Jenkins`包并安
NodeJS项目部署,之前一直是手动运行命令,打包,然后压缩,上传到服务器。后来有了npm的`gulp`、`webpack`等一票工具,但是依然会存在忘记部署、需要部署到多个服务器、本地代码未同步等问题。这时候持续集成的优势就体现出来了:自动运行测试、自动编译/构建、构建完成自动打包/发布版本。 目前许多语言编写的项目都可以使用`Jenkins`,只需要安装对应的扩展插件。 本文简单记述`No
NodeJS项目部署,之前一直是手动运行命令,打包,然后压缩,上传到服务器。后来有了npm的`gulp`、`webpack`等一票工具,但是依然会存在忘记部署、需要部署到多个服务器、本地代码未同步等问题。这时候持续集成的优势就体现出来了:自动运行测试、自动编译/构建、构建完成自动打包/发布版本。 目前许多语言编写的项目都可以使用`Jenkins`,只需要安装对应的扩展插件。 本文简单记述`No
Jenkins进行Node.js项目的持续集成
Max

NodeJS项目部署,之前一直是手动运行命令,打包,然后压缩,上传到服务器。后来有了npm的gulpwebpack等一票工具,但是依然会存在忘记部署、需要部署到多个服务器、本地代码未同步等问题。这时候持续集成的优势就体现出来了:自动运行测试、自动编译/构建、构建完成自动打包/发布版本。

目前许多语言编写的项目都可以使用Jenkins,只需要安装对应的扩展插件。

本文简单记述NodeJS工程的自动化集成步骤。

Jenkins跑起来

首先安装java环境,配置完去这里下载最近的Jenkins包并安装。最新的安装会以系统服务的方式运行,所以装完之后直接打开浏览器,访问http://localhost:8080就能看到。由于8080端口会和许多其他软件冲突,所以第一步可能就是改端口,Jenkins提供了命令行写入配置的方式,在终端写入即可更改

sudo defaults write /Library/Preferences/org.jenkins-ci httpPort 8888 sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

上面后两句用于重启服务。

再次打开http://localhost:8080,这就跑起来了。

配置Jenkins

一路next,到插件这里,记得选中NodeJS Plugin,如果需要用到Github,勾选Github Authentication plugin

安装完成后,进入Global Tool Configuration,这里可以配置Git(如果安装了插件的话)、MavenAntGradleNodeJS等工具。选择NodeJS一栏,勾选自动安装,选择版本,Save即可。注意这里可以安装数个不同的NodeJS版本,直接新加就行,然后在构建项目的时候选择不同的NodeJS版本。

jenkins

其他各项,按需配置,不再赘述。

构建项目

进入Jenkins首页,点左侧的新建,命名并选择“构建一个自由风格的软件项目”,点OK进入项目配置页面。这也是项目唯一的配置位置。

1、General

这里主要配置项目属性和构建时机,比如安静期、重试次数,或者与其他项目协同构建(相互依赖)。

2、源码管理

可选Git(如果安装了插件)或者SVN,填入repo地址,并添加认证信息,即可check到源代码。

3、构建触发器

脚本触发、其他项目完成触发、定期触发、GitHub hook触发。

Poll SCM的意思是定期检查源码的变更,设置比如每小时检查,有更新就checkout下来,并执行构建。cron格式参考wiki。例如:

每5分钟执行一次 job: H/5 * * * *
每2小时执行一次 job: H H/2 * * *

如果不填写,则不会主动构建,除非由SVN主动通知Jenkins来构建。

4、构建环境

注意这里需要选择“Provide Node & npm bin/ folder to PATH”,并在下面选择上面步骤安装的NodeJS对应版本。否则会由于找不到npm命令的错误而构建失败。

5、构建

jenkins

选择添加构建步骤,这里推荐将脚本写入package.json文件,这样直接写

npm run build

否则需要输入插件的完整目录,比如gulp,需要写

node node_modules\gulp\bin\gulp.js yourtaskname

对于复制过来的工程,通用性比较差。

6、构建后操作

选择构建之后的动作,比如留下哪些存档文件,或者发送邮件、触发其他构建(通过Jenkins的API),发送到指定服务器等。

jenkins

小结

本文简单记述构建Jenkis + NodejS的持续集成构建环境。Jenkins将分支维护的整个流程串起来,用可视化的方式展现出来,对于每个步骤达到完全可控,对于团队的代码维护来说是个很好的工具。

Comments