詹金斯和 NodeJS

Jenkins and NodeJS

所以我有一个 MEAN 应用程序,运行正在寻找一个持续集成解决方案。我已经成功地启动了 Jenkins 和 运行 网络挂钩,当合并发生在 master 时,它们会从 bitbucket 存储库中抓取我的项目。

现在我没有任何测试,所以 Jenkins 只是 运行 一些 shell 命令 'deploys' 服务器。这很棒。我的目标是进行此 运行 测试,如果失败则部署失败。

所以我的问题是构建从未完成。我的目标是当它完成时它将保持服务器 运行ning 或部署它并保持它 运行ning。 这是 shell 命令,我 运行 一个构建开始了。

npm install
npm install bower
bower install
npm install grunt-cli
grunt prod
node server

它成功地运行连接了服务器等等,但是在执行node server命令后它就挂断了

如何让 Jenkins 认为这是成功的然后部署它?我爬了互联网,但运气不佳。

编辑:
因此,查看一些文档等。当构建达到 运行 时,我需要将我的测试配置为 运行。如果没有测试,那么它会通过(默认情况下)...所以我需要的是当这种情况发生时,jenkins 需要 运行 一个部署脚本。在詹金斯环顾四周后,我仍然无法弄清楚该怎么做。

编辑#2 因此,将那些 shell 脚本移出构建允许它完成并且是 'successful' 因为没有测试存在。我看到詹金斯将项目保存在工作区目录中。有没有办法让 jenkins 从那里部署或某种其他应用程序在该工作区部署该构建?

谢谢

所以我最终做的很简单,但我不确定它是否是最佳实践..

Jenkins 有连接到我的 bitbucket 存储库的 webhook 并监视是否拉入 master。然后启动我的 jenkins 构建 运行s

npm install bower
bower install
npm install grunt-cli
grunt prod

构建项目。然后我安装了 nodemon,它从那里监视服务器的最后一个 "successful build" 文件夹 运行。刷新后,服务器将重新启动。到目前为止,这似乎 运行 相当顺利。