TwineAuthenticate@1 - Python 孪生上传身份验证 v1 任务

使用此任务使用孪生对 Python 分发版的上传进行身份验证。 添加到 -r FeedName/EndpointName --config-file $(PYPIRC_PATH) 孪生上传命令。 对于此组织中存在的源,请使用源名称作为存储库 (-r) 。 否则,请使用服务连接中定义的终结点名称。

语法

# Python twine upload authenticate v1
# Authenticate for uploading Python distributions using twine. Add '-r FeedName/EndpointName --config-file $(PYPIRC_PATH)' to your twine upload command. For feeds present in this organization, use the feed name as the repository (-r). Otherwise, use the endpoint name defined in the service connection.
- task: TwineAuthenticate@1
  inputs:
  # Feeds and Authentication
    #artifactFeed: # string. My feed (select below). 
    #pythonUploadServiceConnection: # string. Feed from external organizations.

输入

artifactFeed - 我的源 (选择下面的)
string.

指定要使用孪生进行身份验证的 Azure 项目的源名称。 身份验证源必须存在于组织内。 对于项目范围的源,请使用语法 projectName/feedNameSelect


pythonUploadServiceConnection - 来自外部组织的源
string.

用于通过孪生进行身份验证的外部组织的孪生 服务连接 名称。 存储在终结点中的凭据必须具有包上传权限。


任务控件选项

除任务输入外,所有任务都有控制选项。 有关详细信息,请参阅 控制选项和常见任务属性

输出变量

无。

备注

PYPIRC_PATH生成范围的环境变量提供twine凭据。 这使你可以从生成中发布要源的 twine Python 包。

应在管道中何时运行此任务?

必须先运行此任务,然后才能使用孪生将 Python 分发上传到经过身份验证的包源,例如 Azure Artifacts。 没有其他订购要求。 此任务的多次调用不会堆叠凭据。 每次任务运行都会擦除以前存储的任何凭据。

我的代理位于 Web 代理后面。 TwineAuthenticate 是否会设置 twine 以使用我的代理?

错误。 虽然此任务本身将在 代理已配置为使用的 Web 代理后面工作,但它不会将孪生配置为使用代理。

我的管道需要访问其他项目中的源

如果管道在与托管源的项目不同的项目中运行,则必须设置另一个项目以授予对生成服务的读/写访问权限。 有关更多详细信息 ,请参阅 Azure Pipelines 中的包权限

示例

以下示例演示如何将 Python 分发发布到 Azure Artifacts 源和官方 Python 注册表。

将 Python 分发发布到 Azure Artifacts 源

在此示例中,我们将设置用于发布到专用 Azure 项目源的身份验证。 身份验证任务创建一个 .pypirc 文件,其中包含将分发发布到源所需的身份验证凭据。

# Install python distributions like wheel, twine etc
- script: |
     pip install wheel
     pip install twine
  
# Build the python distribution from source
- script: |
     python setup.py bdist_wheel
   
- task: TwineAuthenticate@1
  displayName: Twine Authenticate
  inputs:
    # In this case, name of the feed is 'myTestFeed' in the project 'myTestProject'. Project is needed because the feed is project scoped.
    artifactFeed: myTestProject/myTestFeed
  
# Use command line script to 'twine upload', use -r to pass the repository name and --config-file to pass the environment variable set by the authenticate task.
- script: |
     python -m twine upload -r myTestFeed --config-file $(PYPIRC_PATH) dist/*.whl

如果源属于项目范围,则 artifactFeed 输入将包含项目和源名称。 如果源是组织范围的,则仅需要提供源名称。 了解详细信息

将 Python 分发发布到官方 Python 注册表

在此示例中,我们将设置用于发布到官方 Python 注册表的身份验证。 为 pypi 创建孪生服务连接条目。 身份验证任务使用该服务连接创建一个 .pypirc 文件,其中包含发布分发所需的身份验证凭据。

# Install python distributions like wheel, twine etc
- script: |
     pip install wheel
     pip install twine
  
# Build the python distribution from source
- script: |
     python setup.py bdist_wheel
   
- task: TwineAuthenticate@1
  displayName: Twine Authenticate
  inputs:
    # In this case, name of the service connection is "pypitest".
    pythonUploadServiceConnection: pypitest
  
# Use command line script to 'twine upload', use -r to pass the repository name and --config-file to pass the environment variable set by the authenticate task.
- script: |
     python -m twine upload -r "pypitest" --config-file $(PYPIRC_PATH) dist/*.whl

要求

要求 说明
管道类型 YAML、经典版本、经典版本
运行平台 Agent、DeploymentGroup
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置变量 任意
代理版本 2.144.0 或更高版本
任务类别
要求 说明
管道类型 YAML、经典版本、经典版本
运行平台 Agent、DeploymentGroup
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置变量 任意
代理版本 2.120.0 或更高版本
任务类别