Gitlab - обновить версию пакета - PullRequest
0 голосов
/ 01 марта 2019

Мы создали проект библиотеки vuejs в Gitlab и создали простые конвейеры, которые выполнялись после того, как мы выдвинули коммит.

У нас есть проблема, когда последнее задание выполняет 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 с новой версией (новый патч, npm version patch).Это возможно?

Thx.

1 Ответ

0 голосов
/ 06 августа 2019

npm login - интерактивная команда, поэтому она не очень хорошо работает в CI.Попробуйте использовать пакет npm-login-noninteractive для передачи учетных данных через командную строку.Вы можете установить его глобально в своем before_script:

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

Затем вызвать его вместо npm login в вашем скрипте публикации.

...