我们在Gitlab中创建了一个vuejs库proyect,并创建了一个简单的管道,该管道在我们推送提交后就执行了。
上一个作业执行npm version patch
(更新项目中的补丁程序)时,我们遇到了问题,但是...未更新,因此无法正常工作。
.gutlab-ci.yml
image: node:8.10.0-slim
cache:
paths:
- node_modules/
before_script:
- npm install
stages:
- lint
- test
- deploy
test:
stage: test
script:
- npm run peers:add && npm run test:unit
tags:
- docker
lint:
stage: lint
script:
- npm run lint
coverage: /All files[^|]*\|[^|]*\s+([\d\.]+)/
publish:
stage: deploy
script:
- npm run peers:remove
- echo -e "//gitlab.com/api/v4/projects/<my-project>/packages/npm/:_authToken=${CI_NPM_TOKEN}" > ~/.npmrc
- npm login
- npm version patch
- npm publish
还有package.json
[...]
"scripts": {
...
"build:dev": "npm run clean && webpack --config build/webpack.config.dev.js",
"version": "npm run build:dev && git add -A dist",
"postversion": "git push --follow-tags"
...
}
[...]
招聘工作,测试工作正常,但不发布。
[...]
removed 4 packages in 9.428s
$ echo -e "//gitlab.com/api/v4/projects/<my-project>/packages/npm/:_authToken=${CI_NPM_TOKEN}" > ~/.npmrc
$ npm login
Username: npm ERR! cb() never called!
npm ERR! This is an error with npm itself. Please report this error at:
npm ERR! <https://github.com/npm/npm/issues>
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/...-debug.log
ERROR: Job failed: exit code 1
我们需要在合并请求被接受后自动构建库,并使用新版本(新补丁npm version patch
)上传到npm存储库。有可能吗?
谢谢。
答案 0 :(得分:0)
npm login
是一个交互式命令,因此在CI中效果不佳。尝试使用软件包npm-login-noninteractive
通过命令行传递凭据。您可以在before_script中全局安装它:
before_script:
- npm i -g npm-login-noninteractive
然后在您的发布脚本中将其替换为npm login
。