Как использовать частный канал пакетов npm в visual studio team services для управления сборкой и выпуском

Я начал usign частный канал npm на моей учетной записи Visual studio team services, следуя их руководству и добавив.файл npmrc

registry=https://ascend-xyz.pkgs.visualstudio.com/_packaging/AscendNPMFeed/npm/registry
always-auth=true

проблема в том, что конвейер сборки не работает сейчас, так как он требует некоторых пакетов из этого частного пакета.

какова правильная настройка для указания npm, что он может аутентифицироваться с помощью маркера доступа сборки в visual studio team services?

Мне нужно установить переменную среды, вызвать npm login или что-то в качестве шага сборки?

1 ответов


обновление после некоторого интенсивного тестирования на наших сборках, для тех, у кого есть проблемы с этим, и в отношении исходного вопроса:

  1. Edit build definition => options = > "разрешить скриптам доступ к токену клятвы"

когда включено, и VSTS встречает a .файл npmrc, он будет запускать команду npm

vsts-npm-auth для вас, что означает .npmrc в системе управления версиями только должны contain

registry=https://YOUR_DOMAIN.pkgs.visualstudio.com/_packaging/FEEDNAME/npm/registry
always-auth=true

это относится к сборкам, которые используют задачу VSTS Npm, будь то publish или install



Учитывая, что вы установили переменную окружения NPM_TOKEN для сборки VSTS, которая работает,npm publish команда может заменить это в вашем .файл npmrc. http://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules

так что ваши .npmrc, который вы проверяете в источнике управление должно выглядеть как

registry=https://YOUR_DOMAIN.pkgs.visualstudio.com/_packaging/FEEDNAME/npm/registry
always-auth=true

//YOUR_DOMAIN.pkgs.visualstudio.com/_packaging//npm/:_authToken=${NPM_TOKEN}

маркер может быть получен либо с помощью команды VSTS-npm-auth https://www.npmjs.com/package/vsts-npm-auth

обратите внимание, что в windows ему иногда нужны полные пути как для целевых, так и для исходных rc-файлов (где-T: write-token-to-this-target-file), e.g

vsts-npm-auth-config c:\mysrc\.npmrc-T c:\mysrc\.npmrc-V подробно

или он может быть сгенерирован в диалоговом окне "подключение к каналу" внутри вашей учетной записи (веб-интерфейс) VSTS в разделе "упаковка".

также обратите внимание, что, если вы хотите опубликовать это автоматически и непрерывно, вы также должны найти способ увеличить номер версии, что-то вроде

npm version patch --force -m "Published new version"

взгляните на эту тему для получения дополнительной информации пакета обновления.версия json автоматически

VSTS делает ли checkout HEAD commit id по умолчанию, так что это не прямо вперед, чтобы просто запустить npm version command и push обратно в git, так как один находится в состоянии отсоединения.