Doo*_*mel 5 node.js npm gitlab
我.gitlab-ci.yml
为使用pnpm
. 工作清单是:
deploy_npm:
image: node:16.14.0-bullseye-slim
stage: deploy
before_script:
- npm install -g pnpm@6.32.2
- pnpm build
script:
- pnpm publish
- echo $?
Run Code Online (Sandbox Code Playgroud)
问题是,当我没有使用.npmrc
正确的身份验证令牌创建文件时,并且收到“未经授权”错误,作业状态仍然成功,因为退出状态为0
。如果我在本地环境中运行相同的命令,那么退出状态将为1
.
npm notice Publishing to ****************
npm ERR! code E401
npm ERR! 401 Unauthorized - PUT *******************
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2022-07-08T13_22_44_392Z-debug-0.log
$ echo $?
0
Cleaning up project directory and file based variables
00:01
Job succeeded
Run Code Online (Sandbox Code Playgroud)
同样的事情也会发生FATAL_ERROR
在 Vite 构建中(当运行程序内存不足时),所以我的假设是 GitLab 在传播退出代码方面存在问题。有什么办法可以解决这个问题吗?我尝试过设置诸如FF_ENABLE_BASH_EXIT_CODE_CHECK
或 之类的功能标志FF_USE_NEW_BASH_EVAL_STRATEGY
,但它们没有帮助。
你应该小心使用 $? 直接在 gitlab ci 的脚本中,因为这当然会显示最后一个错误代码,但也会返回一个等于 0 的新错误,这可以根据功能标志配置改变作业行为。
您可以尝试使用下面的解决方法(既调试又强制退出代码值) - 它将退出代码保存到变量,显示其值,并用它强制运行退出。
deploy_npm:
image: node:16.14.0-bullseye-slim
stage: deploy
before_script:
- npm install -g pnpm@6.32.2
- pnpm build
script:
- set +e
- pnpm publish && exit_code=$? || exit_code=$?
- set -e
- echo "command finished with $exit_code"
- exit $exit_code
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
847 次 |
最近记录: |