Публикация модуля Node с использованием NPM в Gitlab-ci не работает
Я использую gitlab-ci для моего CI/CD, чтобы опубликовать модуль NPM в реестре. Ниже приведен мой файл gitlab-ci.yml
image: docker:latest
variables:
DOCKER_DRIVER: overlay2
services:
- docker:dind
cache:
untracked: true
key: "$CI_COMMIT_REF_NAME"
paths:
- node_modules/
stages:
- setup
job-setup:
stage: setup
tags:
- angular
image: node:alpine
except:
- tags
script:
- npm set registry https://registry.npmjs.org
- npm i
- cp .npmrc ~/.npmrc
- npm publish --registry https://registry.npmjs.org
Я получаю следующие предупреждающие сообщения на команду публикации. Модуль публикуется, но в нем отсутствует папка /dist.
npm WARN prepublish-on-install As of npm@5, `prepublish` scripts are deprecated.
npm WARN prepublish-on-install Use `prepare` for build steps and `prepublishOnly` for upload-only.
npm WARN prepublish-on-install See the deprecation note in `npm help scripts` for more information.
npm WARN lifecycle my_npm_module@1.1.1~prepublish: cannot run in wd %s %s (wd=%s) my_npm_module@1.1.1 npm run build /builds/code/my_npm_module
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
У NPM есть проблемы с запуском в "рабочем каталоге" (wd), и я не уверен, как его решить. Я запускаю gitlab-ci на Centos.
1 ответ
npm
отказывается запускать сценарии сборки с вашего package.json
потому что он работает как root. добавлять
echo "unsafe-perm = true" >> ~/.npmrc
на ваш gitlab-ci.yml
сценарий перед вызовом npm
,