Управление конвейером Azure из рабочего процесса GitHub

#azure #github #pipeline #github-actions

#azure #github #конвейер #github-действия

Вопрос:

После некоторых необъяснимых сбоев моего конвейера сборки на GitHub actions на платформе Windows я решил перенести эту часть только на Azure devops. Теперь у меня есть рабочий процесс GitHub, который использует:

 - uses: azure/pipelines@v1
  with:
    azure-devops-project-url: 'https://dev.azure.com/organization/project-name'
    azure-pipeline-name: 'pipeline-name' # name of the Azure pipeline to be triggered
    azure-devops-token: '${{ secrets.AZURE_DEVOPS_TOKEN }}'
  

для запуска сборки и тестов Windows.

Сейчас я немного пытаюсь извлечь и загрузить свой артефакт обратно в GitHub, чтобы его можно было развернуть на PyPI вместе с артефактами Linux и Mac.

Мои замечания:

  • Кажется, что вышеупомянутые задачи возвращаются сразу после его запуска, что имеет смысл, поскольку вы не хотите использовать ресурсы GitHub, пока ваш конвейер работает в Azure. Тогда как получать уведомления о завершении?
  • Как на самом деле получить артефакт? Со своей стороны я использовал приведенный ниже фрагмент…
   - name: 'Download artifacts from Azure devops build pipeline'
    uses: manishsat/ado-download-artifact@v3
    with:
      buildDefinitionId: 'latest'
      pattoken: ${{ secrets.AZURE_DEVOPS_TOKEN }}
      artifactName: 'wh_windows'
      orgName: 'guillaumealleon'
      projectId: 'scikit-decide'
  

но это не работает. Сначала latest не кажется допустимым аргументом — я пробовал с допустимым целым числом, но теперь столкнулся с этой ошибкой

Ошибка типа

Это также перекликается с моим пунктом 1 — во время выполнения этой второй задачи я не уверен, что мой артефакт существует.

Есть идеи, как двигаться дальше?

Ответ №1:

Согласно исходному коду ado-download-artifact действия по следующей ссылке, вы должны использовать projectId вместо projectname , возможно, у вас есть попытка:

https://github.com/manishsat/ado-download-artifact/blob/master/action.yml

 inputs:
  buildDefinitionId:
    description: 'Build Definition Id for which the artifact is going to be downloaded'
  pattoken:
    description: 'PAT token to access build and build artifacts'
  artifactName: 
    description: 'Name of the artifact'
  orgName:
    description: 'Azure DevOps organization name'
  projectId:
    description: 'Azure DevOps projectId for which the build and artifacts belongs to'