npmAuthenticate@0 — задача npm authenticate (для средств выполнения задач) v0
Используйте эту задачу, чтобы предоставить npm
учетные .npmrc
данные для файла в репозитории для области сборки. Это позволяет npm
, а также npm
средствам выполнения задач, таким как gulp и Grunt, проходить проверку подлинности в частных реестрах.
Синтаксис
# npm authenticate (for task runners) v0
# Don't use this task if you're also using the npm task. Provides npm credentials to an .npmrc file in your repository for the scope of the build. This enables npm task runners like gulp and Grunt to authenticate with private registries.
- task: npmAuthenticate@0
inputs:
workingFile: # string. Required. .npmrc file to authenticate.
#customEndpoint: # string. Credentials for registries outside this organization/collection.
# npm Authenticate (for task runners) v0
# Don't use this task if you're also using the npm task. Provides npm credentials to an .npmrc file in your repository for the scope of the build. This enables npm task runners like Gulp and Grunt to authenticate with private registries.
- task: npmAuthenticate@0
inputs:
#workingFile: # string. .npmrc file to authenticate.
#customEndpoint: # string. Credentials for registries outside this account/collection.
Входные данные
workingFile
- NPMRC-файл для проверки подлинности
string
. Обязательный.
Путь к файлу .npmrc
, который указывает реестры, с которыми вы хотите работать. Выберите файл, а не папку, например /packages/mypackage.npmrc
.
workingFile
- NPMRC-файл для проверки подлинности
string
.
Путь к файлу .npmrc
, который указывает реестры, с которыми вы хотите работать. Выберите файл, а не папку, например /packages/mypackage.npmrc
.
customEndpoint
- Учетные данные для реестров за пределами этой организации или коллекции
string
.
Разделенный запятыми список имен подключений служб npm для реестров за пределами этой организации или коллекции. Указанный .npmrc
файл должен содержать записи реестра, соответствующие подключениям к службам. Если вам нужны только реестры в этой организации или коллекции, оставьте это поле пустым. Учетные данные сборки используются автоматически.
customEndpoint
- Учетные данные для реестров за пределами этой учетной записи или коллекции
string
.
Разделенный запятыми список имен подключений служб npm для реестров за пределами этой организации или коллекции. Указанный .npmrc
файл должен содержать записи реестра, соответствующие подключениям к службам. Если вам нужны только реестры в этой организации или коллекции, оставьте это поле пустым. Учетные данные сборки используются автоматически.
Параметры управления задачами
Все задачи имеют параметры управления в дополнение к входным данным задачи. Дополнительные сведения см. в разделе Параметры управления и общие свойства задачи.
Выходные переменные
Нет.
Remarks
Используйте эту задачу, чтобы предоставить npm
учетные .npmrc
данные для файла в репозитории для области сборки. Это позволяет npm
, а также npm
средствам выполнения задач, таким как gulp и Grunt, проходить проверку подлинности в частных реестрах.
- Как работает эта задача?
- Когда в конвейере следует выполнять эту задачу?
- У меня есть несколько проектов npm. Нужно ли выполнять эту задачу для каждого NPMRC-файла?
- Мой агент находится за веб-прокси. Будет ли
npmAuthenticate
настроеноnpm/gulp/Grunt
использование прокси-сервера? - Моему конвейеру требуется доступ к веб-каналу в другом проекте
Как работает эта задача?
Эта задача выполняет поиск записей реестра в указанном .npmrc
файле, а затем добавляет сведения о проверке подлинности для обнаруженных реестров в конец файла. Для всех реестров в текущей организации или коллекции используются учетные данные сборки. Для реестров в другой организации или размещенных сторонней организацией URI реестра будут сравниваться с URI подключений службы npm , заданных customEndpoint
входными данными, и будут использоваться соответствующие учетные данные. Файл .npmrc
будет возвращен в исходное состояние в конце выполнения конвейера.
Когда в конвейере следует выполнять эту задачу?
Эта задача должна выполняться перед использованием npm
или npm
средства выполнения задач для установки или отправки пакетов в репозиторий npm, прошедший проверку подлинности, например Azure Artifacts. Другие требования к упорядочению отсутствуют.
У меня есть несколько проектов npm. Нужно ли выполнять эту задачу для каждого NPMRC-файла?
Эта задача будет добавлять сведения о проверке подлинности только в один .npmrc
файл за раз. Если требуется проверка подлинности для нескольких .npmrc
файлов, можно выполнить задачу несколько раз, по одному разу для каждого .npmrc
файла. Кроме того, можно создать .npmrc
файл, в котором указаны все реестры, используемые проектами, которые выполняются npmAuthenticate
в этом .npmrc
файле, а затем задать переменную среды, чтобы назначить этот .npmrc
файл в качестве файла конфигурации npm для каждого пользователя.
- task: npmAuthenticate@0
inputs:
workingFile: $(agent.tempdirectory)/.npmrc
- script: echo ##vso[task.setvariable variable=NPM_CONFIG_USERCONFIG]$(agent.tempdirectory)/.npmrc
- script: npm ci
workingDirectory: project1
- script: npm ci
workingDirectory: project2
Мой агент находится за веб-прокси. Будет ли npmAuthenticate
настроено npm/gulp/Grunt
использование прокси-сервера?
Нет, не будут. Хотя сама эта задача будет работать за веб-прокси, для использования которого настроен агент, она не настраивает npm
или npm
средства выполнения задач для использования прокси-сервера.
Для этого можно сделать следующее:
Задайте переменные
http_proxy
/https_proxy
среды и приno_proxy
необходимости задайте параметры прокси-сервера. Дополнительные сведения см. в разделе npm config . Обратите внимание, что это часто используемые переменные, которые могут также использовать другиеnpm
средства, не относящиеся к (например, curl).Добавьте параметры прокси-сервера в конфигурацию npm вручную, используя набор конфигурации npm или задав переменные среды с
NPM_CONFIG_
префиксом .Внимание!
npm
Средства выполнения задач могут быть несовместимы со всеми методами конфигурации прокси-сервера, поддерживаемымиnpm
.Укажите прокси-сервер с флагом командной строки при вызове
npm
.- script: npm ci --https-proxy $(agent.proxyurl)
Если прокси-сервер требует проверки подлинности, может потребоваться добавить дополнительный шаг сборки для создания URI прокси-сервера, прошедшего проверку подлинности.
- script: node -e "let u = url.parse(`$(agent.proxyurl)`); u.auth = `$(agent.proxyusername):$(agent.proxypassword)`; console.log(`##vso[task.setvariable variable=proxyAuthUri;issecret=true]` + url.format(u))"
- script: npm publish --https-proxy $(proxyAuthUri)
Моему конвейеру требуется доступ к веб-каналу в другом проекте
Если конвейер выполняется в проекте, отличном от проекта, в котором размещен веб-канал, необходимо настроить другой проект, чтобы предоставить доступ на чтение и запись к службе сборки. Дополнительные сведения см. в статье Разрешения пакета в Azure Pipelines .
Примеры
- Восстановление
npm
пакетов для проекта из реестра в организации - Восстановление и публикация
npm
пакетов за пределами организации - npmrc
- npm
Восстановление npm
пакетов для проекта из реестра в организации
Если используются только реестры Azure Artifacts в вашей организации, необходимо только указать путь к .npmrc
файлу npmAuthenticate
задачи.
.npmrc
registry=https://pkgs.dev.azure.com/{organization}/_packaging/{feed}/npm/registry/
always-auth=true
npm
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
- script: npm ci
# ...
- script: npm publish
Восстановление и публикация npm
пакетов за пределами организации
Если вы .npmrc
содержите реестры Azure Artifacts из другой организации или использует сторонний репозиторий пакетов, прошедших проверку подлинности, необходимо настроить подключения службы npm и указать их во customEndpoint
входных данных.
Реестры в организации Azure Artifacts также будут автоматически проходить проверку подлинности.
.npmrc
registry=https://pkgs.dev.azure.com/{organization}/{project}/_packaging/{feed}/npm/registry/
@{scope}:registry=https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/
@{otherscope}:registry=https://{thirdPartyRepository}/npm/registry/
always-auth=true
URL-адрес реестра, указывающий на веб-канал Azure Artifacts, может содержать или не содержать проект. URL-адрес веб-канала с областью проекта должен содержать проект, а URL-адрес веб-канала с областью действия организации не должен содержать проект. Дополнительные сведения о веб-каналах с областью проекта.
npm
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
customEndpoint: OtherOrganizationNpmConnection, ThirdPartyRepositoryNpmConnection
- script: npm ci
# ...
- script: npm publish -registry https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/
OtherOrganizationNpmConnection
и ThirdPartyRepositoryNpmConnection
— это имена подключений к службе npm , которые были настроены и авторизованы для использования в конвейере и имеют URL-адреса, соответствующие url-адресам в указанном .npmrc
файле.
Требования
Требование | Описание |
---|---|
Типы конвейеров | YAML, классическая сборка, классический выпуск |
Выполняется в | Агент, DeploymentGroup |
Требования | Нет |
Capabilities | Эта задача не удовлетворяет требованиям для последующих задач в задании. |
Ограничения команд | Любой |
Устанавливаемые переменные | Любой |
Версия агента | 2.115.0 или более поздней версии |
Категория задач | Пакет |