Поделиться через


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

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

Azure Pipelines позволяет разработчикам публиковать пакеты Python в каналах Azure Artifacts и публичных реестрах, таких как PyPI. В этой статье описано, как опубликовать пакеты Python в вашем канале Azure Artifacts.

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

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

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

Аутентификация с помощью канала

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

Внимание

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

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

  1. Войдите в организацию Azure DevOps и перейдите к проекту.

  2. Выберите конвейеры, а затем выберите определение конвейера.

  3. Выберите Изменить, а затем добавьте следующий фрагмент кода в ваш конвейер YAML.

    steps:
    - task: UsePythonVersion@0
      displayName: 'Use Python 3.x'
    
    - task: TwineAuthenticate@1
      inputs:
        artifactFeed: <PROJECT_NAME/FEED_NAME>     ## For an organization-scoped feed, use: artifactFeed: <FEED_NAME>
    

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

Примечание.

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

  1. Войдите в организацию Azure DevOps и перейдите к проекту.

  2. Выберите конвейеры, а затем выберите определение вашего конвейера.

  3. Выберите Изменить, а затем добавьте следующий фрагмент в конвейер YAML.

    steps:
    - task: UsePythonVersion@0
      displayName: 'Use Python 3.x'
    
    - 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>                ## For an organization-scoped feed, use: artifactFeed: <FEED_NAME>
      displayName: 'Twine Authenticate'
    
    - script: |
        python -m twine upload -r <FEED_NAME> --config-file $(PYPIRC_PATH) dist/*.whl
      displayName: 'Upload to feed'