В конвейерах Azure DevOps для приложений. Net Core, как я могу аутентифицироваться в потоке артефактов Azure без использования задачи .NetCoreCLI? - PullRequest
0 голосов
/ 04 августа 2020

У меня есть Azure конвейер DevOps для одного из моих. Net Core проектов. Я хотел бы инкапсулировать как можно большую часть процесса сборки, чтобы я мог запускать сборки на моем локальном компьютере, поэтому у меня есть шаги восстановления, компиляции, тестирования, publi sh, et c. инкапсулирован в сценарий сборки, который я вызываю из моего Azure конвейера DevOps.

. Net Core CLI задача автоматически обрабатывает аутентификацию в Azure фидах артефактов , что замечательно, когда вы хотите написать сценарий сборки в конвейере, но я действительно хочу добавить задачу, которая выполняет только часть проверки подлинности и перекладывает ответственность за все остальное на мой сценарий сборки. Есть ли способ аутентификации без восстановления?

Вот соответствующая часть моего конвейера:

  - task: DotNetCoreCLI@2
    displayName: 'NuGet Authentiation and Restore'
    inputs:
      command: 'restore'
      projects: 'src/*.sln'
      feedsToUse: 'select'
      vstsFeed: '5483129a-4405-40c1-8ccb-a688120b3137'
      includeNuGetOrg: false 

  - task: Npm@1
    displayName: 'Build release distribution'
    condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
    inputs:
      command: custom
      verbose: false
      customCommand: 'run build'

Шаг npm run build вызовет dotnet restore, который завершится успешно, потому что пакеты уже восстановлен, но я действительно использую задачу DotnetCoreCLI для ее аутентификации. Очень не хочу его восстанавливать. Я имею в виду, это работает, но кажется, что это неаккуратно.

1 Ответ

0 голосов
/ 05 августа 2020

Есть ли способ аутентификации без восстановления?

Поскольку вы используете канал npm, вы можете попробовать использовать задачу npm authenticate для аутентификации azure канал артефактов.

Вот шаги:

Шаг 1: Создайте файл .npmrc в том же каталоге, что и ваш пакет. json.

Например:

enter image description here

Step2: Navigate to Azure Artifacts -> Connect to feed -> Npm to get the .npmrc file content.

For example:

registry=https://pkgs.dev.azure.com/org/project/_packaging/456/npm/registry/ 
                        
always-auth=true

Step3: Add the npm аутентифицировать задачу.

- task: npmAuthenticate@0
  displayName: 'npm Authenticate package/.npmrc'
  inputs:
    workingFile: package/.npmrc
  enabled: false

Это позволяет на последующих этапах сборки использовать учетные данные в .npmr c.

Для получения более подробной информации вы можете обратиться к этому do c about npm аутентификация .

Обновление:

Для Канал Nuget, вы можете использовать задачу NuGet Authenticate .

Например:

- task: NuGetAuthenticate@0
  displayName: 'NuGet Authenticate'
  inputs:
    nuGetServiceConnections: 'test nuget feed'

Если вы не установите подключение к службе, он будет проверять подлинность канала по умолчанию .

Если вы хотите указать канал, вам необходимо создать подключение к службе nuget.

введите описание изображения здесь

URL-адрес канала: Azure Artifacts -> Connect to feed -> Nuget

Имя пользователя и пароль: вы можете использовать текущую учетную запись или PAT.

...