使用 Azure Pipelines 发布 Python 包

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

使用 Azure Pipelines,开发人员可以将 Python 包发布到 Azure Artifacts 源,发布注册表,或者将其存储为管道工件。 本文将指导你完成以下操作:

  • 安装必备组件
  • 连接到 Azure Artifacts 源
  • 将 Python 包发布到 Azure Artifacts 源

先决条件

  • Azure DevOps 组织和项目。 创建 组织项目 (如果尚未创建)。

  • Azure Artifacts 源。 如果还没有源,请创建一个源。

使用 Azure Artifacts 进行身份验证

要使用 twine 发布 Python 包,必须先使用 Azure Artifacts 源进行身份验证。 TwineAuthenticate taskPYPIRC_PATH 环境变量提供 Twine 凭据。 然后,twine 使用此变量来帮助你直接从管道中发布你的包。

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

重要

存储在 PYPIRC_PATH 环境变量中的凭据取代了 .ini.conf 文件中的凭据。

如果在管道的不同阶段添加多个 TwineAuthenticate 任务,则每个附加任务执行都将扩展(而不是替代)现有的 PYPIRC_PATH 环境变量。

将 Python 包发布到 Azure Artifacts 源

- 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 将包发布到源,项目集合生成服务和项目的生成服务标识都必须在源设置中分配源发布者(参与者)角色。 有关详细信息,请参阅管理权限