TwineAuthenticate@1 - Python twine アップロードによる v1 認証タスク

このタスクを使用して、ツインを使用して Python ディストリビューションのアップロードを認証します。 twine upload コマンドに を追加 -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 パッケージを発行できます。

パイプラインでこのタスクを実行する必要がある場合

このタスクは、Twine を使用して、認証されたパッケージ ソース (Azure Artifacts など) に Python ディストリビューションをアップロードする前に実行する必要があります。 その他の注文要件はありません。 このタスクの複数の呼び出しでは、資格情報がスタックされません。 タスクを実行するたびに、以前に保存されていた資格情報が消去されます。

エージェントが Web プロキシの背後にあります。 TwineAuthenticate はプロキシを使用するように twine を設定しますか?

いいえ。 このタスク自体は、 エージェントが使用するように構成されている Web プロキシの背後で機能しますが、プロキシを使用するように twine を構成することはありません。

パイプラインが別のプロジェクトのフィードにアクセスする必要がある

パイプラインがフィードをホストしているプロジェクトとは異なるプロジェクトで実行されている場合は、ビルド サービスへの読み取り/書き込みアクセスを許可するように他のプロジェクトを設定する必要があります。 詳細については、「 Azure Pipelines でのパッケージのアクセス許可 」を参照してください。

次の例は、Python ディストリビューションを Azure Artifacts フィードと公式の Python レジストリに発行する方法を示しています。

Python ディストリビューションを Azure Artifacts フィードに発行する

この例では、プライベート Azure Artifacts フィードに発行するための認証を設定しています。 認証タスクは、フィードに .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、クラシック ビルド、クラシック リリース
実行日 エージェント、DeploymentGroup
確認要求 なし
Capabilities このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 Any
設定可能な変数 Any
エージェントのバージョン 2.144.0 以上
タスクのカテゴリ Package
要件 説明
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
実行日 エージェント、DeploymentGroup
確認要求 なし
Capabilities このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 Any
設定可能な変数 Any
エージェントのバージョン 2.120.0 以上
タスクのカテゴリ Package