Gitlab-更新版本包

时间:2019-03-01 11:24:53

标签: node.js docker npm gitlab jenkins-pipeline

我们在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存储库。有可能吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

npm login是一个交互式命令,因此在CI中效果不佳。尝试使用软件包npm-login-noninteractive通过命令行传递凭据。您可以在before_script中全局安装它:

before_script:
  - npm i -g npm-login-noninteractive

然后在您的发布脚本中将其替换为npm login