Публикация пакетов Python с помощью Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

С помощью Azure Pipelines разработчики могут публиковать пакеты Python в веб-каналах Azure Artifacts, общедоступных реестрах или хранить их как артефакты конвейера. В этой статье описано, как:

  • Установка необходимых компонентов
  • Подключение в веб-канал Артефактов Azure
  • Публикация пакетов Python в веб-канале Артефактов Azure

Необходимые компоненты

  • Организация Azure DevOps и проект. Создайте организацию или проект, если вы еще не сделали этого.

  • Веб-канал артефактов Azure. Создайте веб-канал , если у вас еще нет.

Проверка подлинности с помощью артефактов Azure

Чтобы опубликовать twine пакеты Python, необходимо сначала пройти проверку подлинности с помощью веб-канала Артефактов Azure. Задача TwineAuthenticate предоставляет учетные данные twine в PYPIRC_PATH переменную среды. Затем эта переменная используетсяtwine для упрощения публикации пакетов непосредственно из конвейера.

- task: TwineAuthenticate@1
  inputs:
    artifactFeed: <PROJECT_NAME/FEED_NAME>     ## For an organization-scoped feed, artifactFeed: <FEED_NAME>

Внимание

Учетные данные, хранящиеся в переменной PYPIRC_PATH среды, заменяют эти учетные данные в файлах и .conf файлах.ini.

При добавлении нескольких задач TwineAuthenticate на разных этапах конвейера каждое дополнительное выполнение задачи расширяет (не переопределяет) существующую PYPIRC_PATH переменную среды.

Публикация пакетов Python в веб-канале Артефактов Azure

- script: |
    pip install build
    pip install twine
  displayName: 'Install build and twine'

- script: |
    python -m build -w
  displayName: 'Python build'

- task: TwineAuthenticate@1
  inputs:
    artifactFeed: <PROJECT_NAME/FEED_NAME>
  displayName: 'Twine Authenticate'

- script: |
    python -m twine upload -r <FEED_NAME> --config-file $(PYPIRC_PATH) dist/*.whl
  displayName: 'Upload to feed'

Примечание.

Чтобы опубликовать пакеты в веб-канале с помощью Azure Pipelines, служба сборки проекта и удостоверения службы сборки проекта должны иметь роль издателя веб-канала (участника) в параметрах веб-канала. Дополнительные сведения см. в разделе "Управление разрешениями ".