在azure中作为部署后操作挂钩运行node.js服务器

sh7euo9m  于 2021-06-20  发布在  Kudu
关注(0)|答案(2)|浏览(305)

我可以在azure中运行node.js服务器作为部署后操作挂钩吗?
详情如下:
命令是: npm run test:servers 尝试在deploy.cmd(如下所示)中添加部署后操作,但在部署完成后将忽略该操作(没有错误,并且部署成功)。

:: Post deployment stub
IF DEFINED POST_DEPLOYMENT_ACTION call npm run test:servers
IF !ERRORLEVEL! NEQ 0 goto error

我的jenkins控制台输出如下:

remote: checking if package.json exists[K
remote: Finished successfully.[K
remote: Running post deployment command(s)...[K
remote: Deployment successful.[K
Notifying upstream projects of job completion

如果我使用调试控制台(像这样),看起来每次部署之后都必须运行命令,而我更不愿意这样做。
可能是deploy.cmd配置不正确?

ajsxfq5m

ajsxfq5m1#

不过 package.json 我们是如何做到这一点几乎无处不在,蔚蓝不尊重许多人 package.json 行动,所以我没有选择。
你绝对是在正确的轨道上。我自己在这方面取得了成功,以下是我所做的:
这是我的密码 deploy.cmd 我刚才加的 goto end :

IF EXIST "%DEPLOYMENT_TARGET%\publish.js" (
  pushd "%DEPLOYMENT_TARGET%"
  node "%DEPLOYMENT_TARGET%\publish.js"
  IF !ERRORLEVEL! NEQ 0 goto error
  popd
)

你想干什么就干什么 publish.js . 在我的例子中,我执行http和redis调用。在我的测试中,我在redis中设置了一个键,这样我就知道它是被调用的,而不是被跳过的。所以,你可以做任何事。你只需要做你需要做的事情。
唯一要注意的是:在我的场景中,它似乎有时会挂一点,但最终会继续。

qhhrdooz

qhhrdooz2#

你试过用吗 postinstall 在package.json中编写脚本来运行命令?
例如,可以使用以下命令运行 npm run test:servers 安装程序包后。

"scripts": {
    "postinstall": "npm run test:servers"
}

相关问题