nodejs服务器在jenkins中未给出成功状态

nodejs服务器在jenkins中未给出成功状态,jenkins,Jenkins,我想用詹金斯来运行一个nodejs项目。一切进展顺利,只是我看不到詹金斯的工作有任何成功的迹象 我在jenkins中使用npm install&npm start命令启动了服务器。它启动服务器,但不提供构建成功,因此,我无法启动其他作业,这取决于节点服务器的构建成功&当新提交到达时,jenkins会检测到它,但作业不会重新启动,而是在原始作业运行时保持挂起状态 我是詹金斯的新手。是否有人对此提出建议???听起来您的js脚本的执行正在挂起您的构建,请尝试使用&after将其发送到后台: npm i

我想用詹金斯来运行一个nodejs项目。一切进展顺利,只是我看不到詹金斯的工作有任何成功的迹象

我在jenkins中使用npm install&npm start命令启动了服务器。它启动服务器,但不提供构建成功,因此,我无法启动其他作业,这取决于节点服务器的构建成功&当新提交到达时,jenkins会检测到它,但作业不会重新启动,而是在原始作业运行时保持挂起状态


我是詹金斯的新手。是否有人对此提出建议???

听起来您的js脚本的执行正在挂起您的构建,请尝试使用&after将其发送到后台:

npm install
npm start &
还请注意,从Jenkins作业运行
npm start
将产生一个新进程,如果希望此进程保持为守护进程,这是一个问题

为避免出现这种情况,您需要在命令之前提供一个标志:

BUILD\u ID=dontKillMe npm start&

您还没有明确说明作业管道中的所有步骤,但我认为您尝试在第一个作业的生成之后执行一些生成后操作,因此发现流程未运行将导致后续作业失败

此外,尝试使用。它将确保您的脚本持续运行,直到您停止它为止,使用它您可以像这样启动应用程序:

BUILD_ID=dontKillMe forever start yourApp.js

听起来您的js脚本的执行正在挂起您的构建,请尝试使用&after将其发送到后台:

npm install
npm start &
还请注意,从Jenkins作业运行
npm start
将产生一个新进程,如果希望此进程保持为守护进程,这是一个问题

为避免出现这种情况,您需要在命令之前提供一个标志:

BUILD\u ID=dontKillMe npm start&

您还没有明确说明作业管道中的所有步骤,但我认为您尝试在第一个作业的生成之后执行一些生成后操作,因此发现流程未运行将导致后续作业失败

此外,尝试使用。它将确保您的脚本持续运行,直到您停止它为止,使用它您可以像这样启动应用程序:

BUILD_ID=dontKillMe forever start yourApp.js

问题:执行后,您的nodejs服务器似乎没有在jenkins上运行,您有两个解决方案,它们都经过了调查和测试:

选项1-建议:在Jenkins上运行后台进程,在BUILD_ID参数中使用dontKillMe标志和nuhup unix命令保持活动状态

从文档中:实现这一点的一个方便方法是更改Jenkins的ProcessTreeKiller所寻找的环境变量BUILD_ID。这将导致Jenkins假设您的守护进程不是由Jenkins构建生成的

nohup是一个POSIX命令,用于忽略HUP(挂断)信号。赫普 按照惯例,信号是终端警告相关进程的方式 退出


在删除这段代码后,它工作正常,只要机器启动,该过程就处于运行状态

问题:执行后,您的nodejs服务器似乎没有在jenkins上运行,您有两个解决方案,它们都经过了调查和测试:

选项1-建议:在Jenkins上运行后台进程,在BUILD_ID参数中使用dontKillMe标志和nuhup unix命令保持活动状态

从文档中:实现这一点的一个方便方法是更改Jenkins的ProcessTreeKiller所寻找的环境变量BUILD_ID。这将导致Jenkins假设您的守护进程不是由Jenkins构建生成的

nohup是一个POSIX命令,用于忽略HUP(挂断)信号。赫普 按照惯例,信号是终端警告相关进程的方式 退出


在删除这段代码后,它工作正常,只要机器启动,该过程就处于运行状态

失败的确切原因是什么?你能附上错误的日志吗?失败的确切原因是什么?您可以附加错误日志吗?是的,我需要在由节点项目运行的web服务器上运行一些调用rake的测试脚本。我已经使用了npmstart&它提供了构建成功,但是服务器没有启动。根据您的建议,我还尝试了BUILD_ID=dontKillMe npm start&;但是它不起作用。@tasin_megamind您能告诉我们您在运行
npm start
时调用的脚本行吗?这是您的packages.json文件中的文件,该文件现在可用于forever。这真的很有帮助。@tasin_megamind太好了!!你能接受我的回答吗?:)是的,我需要在由节点项目运行的web服务器上运行一些调用rake的测试脚本。我已经使用了npmstart&它提供了构建成功,但是服务器没有启动。根据您的建议,我还尝试了BUILD_ID=dontKillMe npm start&;但是它不起作用。@tasin_megamind您能告诉我们您在运行
npm start
时调用的脚本行吗?这是您的packages.json文件中的文件,该文件现在可用于forever。这真的很有帮助。@tasin_megamind太好了!!你能接受我的回答吗?:)
npm install pm2 -g
cd <yourApp>
pm2 start scripts/start.js
# check process
ps -ef | grep node

# check connectivity in server port
telnet localhost <yourNodeJSPortRunning>
     ['SIGINT', 'SIGTERM'].forEach(function(sig) {
      process.on(sig, function() {
        devServer.close();
        process.exit();
      });
    });
  })
  .catch(err => {
    if (err && err.message) {
      console.log(err.message);
    }
    process.exit(1);
  });