小型连续集成脚本 - 部署方法

时间:2016-09-17 00:23:28

标签: node.js architecture continuous-integration devops

我正在处理一些合作者之间的小项目,而我正准备建立一个持续的集成工作流程。我正在研究Bamboo或Jenkins,但就目前而言,由于我们还处于早期阶段且非常小,我自己在NodeJS中构建工作流程。

一个设计问题:我有一个不断运行的服务器,它可以监听我的存储库,并在发生更新时提取更新。然后,此服务器通过启动其节点应用程序脚本(当前在本地发生)来部署应用程序。

现在,我希望独立生成部署脚本的应用程序进程 。但我也想确保它继续运行。

enter image description here

我的问题是,行业的方式是什么?鉴于迄今为止项目规模非常小(= 2个合作者),建议什么?

我一直在想这可以通过以下方式实现:

  • 从产生应用程序进程的侦听脚本进程执行shell脚本
  • 从产生应用程序进程的侦听shell进程运行节点命令

但是,我不知道如何从监听脚本中释放应用程序,我认为应该这样做,因为如果监听脚本发生故障,我的应用程序会崩溃,这是不可取的。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我不确定如果没有它真正成为一个孩子,你就不会产生一个过程。但是,如果你使用detached和正确的stdio设置,可能就像这个问题一样:How to detach a spawned child process in a Node.js script?

为了确保节点程序继续运行,人们使用PM2或主管之类的东西。我确信制作CI程序是一项有趣的练习,但就日常使用而言,我不会尝试自己创作。只需使用CircleCI,Strider或Travis。

Bamboo和Jenkins已经很成熟,但在Node人群中并不是特别受欢迎,可能是因为它们是用Java构建的。