使用 Azure Pipelines 发布 Python 包

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020

Azure Pipelines 使开发人员能够将 Python 包发布到 Azure Artifacts 源和公共注册表,例如 PyPi。 本文将指导你了解如何将 Python 包发布到 Azure Artifacts 源。

先决条件

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

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

使用数据流进行身份验证

要使用 twine 发布 Python 包,您必须先对 Azure Artifacts 源进行身份验证。 TwineAuthenticate taskPYPIRC_PATH 环境变量提供 Twine 凭据。 然后,此变量用于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'