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 organizationとプロジェクト。 まだ作成していない場合は、organizationまたはプロジェクトを作成します。

  • Azure Artifacts フィード。 まだフィード がない場合は、フィードを作成します。

Azure Artifacts で認証する

twine を使用して Python パッケージを発行するには、まず Azure Artifacts フィードで認証する必要があります。 TwineAuthenticate タスクは、PYPIRC_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'

Note

Azure Pipelines を使ってパッケージをフィードに発行するには、プロジェクト コレクション ビルド サービスとプロジェクトのビルド サービス ID をフィード設定のフィード発行者 (共同設定者) ロールに割り当てる必要があります。 詳細については、「アクセス許可を管理する」を参照してください。