【问题标题】:Jenkins and NodeJS詹金斯和 NodeJS
【发布时间】:2026-01-09 14:05:01
【问题描述】:

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

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

所以我的问题是构建永远不会完成。我的目标是在它完成时保持服务器运行或部署它并保持运行。 这是我运行的 shell 命令之一,构建开始。

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

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

我怎样才能让詹金斯认为这是成功的,然后部署它?我爬了互联网,运气不好。

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

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

谢谢

【问题讨论】:

    标签: node.js jenkins continuous-integration continuous-deployment


    【解决方案1】:

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

    Jenkins 拥有我的 bitbucket 存储库的 webhook,并监视是否拉入 master。然后这会启动它运行的我的 jenkins 构建

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

    构建项目。然后我安装了 nodemon,它监视最后一个“成功构建”文件夹从那里运行服务器。当它被刷新时,服务器重新启动。到目前为止,这似乎运行得相当顺利。

    【讨论】: