次の方法で共有


Azure Pipelines を使用して Python パッケージを発行する

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

Azure Pipelines を使用すると、開発者は Python パッケージを Azure Artifacts フィードや PyPi などのパブリック レジストリに発行できます。 この記事では、Python パッケージを Azure Artifacts フィードに発行する方法について説明します。

前提条件

  • Azure DevOps organizationとプロジェクト。 まだ作成していない場合は、organizationまたはプロジェクトを作成します。

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

フィードを使用して認証する

Twine を使用して Python パッケージを発行するには、まず Azure Artifacts フィードで認証する必要があります。 TwineAuthenticate タスクは、PYPIRC_PATH 環境変数に Twine 資格情報を提供します。 この変数は、パイプラインからパッケージを直接発行するためにtwine によって使用されます。

重要

PYPIRC_PATH 環境変数に格納されている資格情報は、.ini ファイルおよび .conf ファイルの資格情報よりも優先されます。

パイプライン内の異なるステージで複数の TwineAuthenticate タスクを追加すると、各タスクの実行は、既存の 環境変数 拡張されます (オーバーライドされません)。

  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 パッケージをフィードに発行する

Note

Azure Pipelines を使用してフィードにパッケージを発行するには、Project Collection Build Service とプロジェクトの Build Service ID の両方に、フィード設定で フィード パブリッシャー (共同作成者) ロールが割り当てられていることを確認します。 詳細については、「アクセス許可を管理する」を参照してください。

  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'