背景

jenkins是一个用来做自动部署和项目构建的工具;

github是流行的开源代码托管服务。

将代码放置在github上之后使用jenkins自动拉取代码到本地并发布是很常用的远程部署模式。

本文纪录了自己用jenkins来发布node程序的步骤。

前期准备

  1. 安装jenkins:https://jenkins.io/download/, 并启动服务。

jenkins icon

配置jenkins的github插件

进入到Jenkins->Manage Jenkins->Manage plugins搜索github并安装GitHub plugin即可

新建项目

  1. 源码管理->git
    • Repository URL:填写github的工程路径
    • 其他默认
  2. 构建触发器
    • 选择Build when a change is pushed to GitHub
    • 选择Poll SCM 并填写[H/2 * * * *](两分钟检查一次)
  3. 构建
    • 选择execute shell,之后在后面根据你的项目性质去写脚本,我的例子很简单:

        nohup node server.js > nohup.log & #启动一个node服务
      
    注意:
    这个地方需要注意,jenkins全部构建结束后会使用[ProcessTreeKiller](https://wiki.jenkins-ci.org/display/JENKINS/ProcessTreeKiller) 将当前构建任务的进程及子进程全部杀掉,这样做的原因是担心不清楚所有进程会造成任务见和前后两次构建间互相干扰。 但是我们实际用的时候常常是使用jenkins自动构建后,还要根据业务进行黑盒测试等,所以需要保证服务进程不被杀掉,因此在最前面加入BUILD_ID=dontKillMe这个语句,这样服务的语句不会随着构建结束而停止。