次の方法で共有


Python アプリをビルドして発行する

Azure DevOps Services |Azure DevOps Server 2022 および Azure DevOps Server 2019

このクイック スタートでは、Python アプリをビルドしてテストするパイプラインを作成します。 Azure Pipelines を使用して、継続的インテグレーションおよび継続的デリバリー (CI/CD) システムの一部として Python アプリとスクリプトを構築、テスト、デプロイする方法について説明します。

前提条件

製品 要件
Azure DevOps - Azure DevOps プロジェクト
- Microsoft がホストするエージェントでパイプラインを実行する機能。 並列ジョブを購入するか、Free レベルを要求できます。
- YAML と Azure Pipelines に関する基本的な知識。 詳細については、「最初のパイプラインの作成」を参照してください。
- アクセス許可:
     - パイプラインを作成するには、 共同作成者 グループに含まれている必要があり、グループには [ ビルド パイプラインの作成 ] アクセス許可が [許可] に設定されている必要があります。 プロジェクト管理者グループのメンバーは、パイプラインを管理できます。
    - サービス接続を作成するには、サービス接続の管理者ロールまたは作成者ロールが必要です。
GitHubの - GitHub アカウント。
- Azure Pipelines を承認するための GitHub サービス接続
紺碧 Azure サブスクリプション
製品 要件
Azure DevOps - Azure DevOps プロジェクト
- セルフホステッド エージェント。 作成する方法については、「セルフホステッド エージェント」を参照してください。
- YAML と Azure Pipelines に関する基本的な知識。 詳細については、「最初のパイプラインの作成」を参照してください。
- アクセス許可:
    - パイプラインを作成するには、 共同作成者 グループに含まれている必要があり、グループには [ ビルド パイプラインの作成 ] アクセス許可が [許可] に設定されている必要があります。 プロジェクト管理者グループのメンバーは、パイプラインを管理できます。
    - サービス接続を作成するには、サービス接続の管理者ロールまたは作成者ロールが必要です。
GitHubの - GitHub アカウント。
- Azure Pipelines を承認するための GitHub サービス接続
紺碧 Azure サブスクリプション

Python は、Linux、macOS、および Windows 用の Microsoft でホストされるエージェント にプレインストールされています。 Python プロジェクトをビルドするために、これ以上何も設定する必要はありません。 プレインストールされている Python バージョンを確認するには、Microsoft ホステッド エージェントの使用に関するページを参照してください。

サンプル コードをフォークする

サンプル Python リポジトリを GitHub アカウントにフォークします。

  1. python-sample-vscode-flask-tutorial リポジトリに移動します。
  2. ページの右上隅にある [Fork] を選択します。
  3. GitHub アカウントを選択します。 既定では、フォークの名前は親リポジトリと同じですが、別の名前を付けることができます。

重要

次の手順では、 GitHub サービス接続の作成を求められたり サインイン、Azure Pipelines のインストール、Azure Pipelines の承認を行うために GitHub にリダイレクトされたりすることがあります。 画面上の指示に従って、プロセスを完了します。 詳細については、「Github リポジトリへのアクセス」を参照してください。

パイプラインを作成する

  1. Azure DevOps プロジェクトで、 Pipelines>Create Pipeline を選択し、ソース コードの場所として GitHub を選択します。
  2. リポジトリの選択画面で、フォークしたサンプル リポジトリを選択します。
  3. [パイプラインの構成] 画面で、[スタート パイプライン] を選択します。

パイプラインをカスタマイズする

パイプライン YAML の確認画面で、生成されたazure-pipelines.yml ファイルの内容を次のコードに置き換えます。 コード:

  • 必要な Python バージョンと依存関係をインストールします。
  • ビルド成果物を ZIP アーカイブにパッケージします。
  • アーカイブをパイプラインに発行します。
  • テストを実行します。
trigger:
- main

pool:
  vmImage: ubuntu-latest

strategy:
  matrix:
    Python310:
      python.version: '3.10'
    Python311:
      python.version: '3.11'
    Python312:
      python.version: '3.12'

steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '$(python.version)'
    displayName: 'Use Python $(python.version)'

  - script: |
      python -m pip install --upgrade pip
      pip install -r requirements.txt
    displayName: 'Install dependencies'

  - task: ArchiveFiles@2
    displayName: 'Archive files'
    inputs:
      rootFolderOrFile: $(System.DefaultWorkingDirectory)
      includeRootFolder: false
      archiveType: zip
      archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId)-$(python.version).zip
      replaceExistingArchive: true

  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'

  - script: |
      pip install pytest pytest-azurepipelines
      pytest
    displayName: 'pytest'

プロジェクトの構成に合わせて azure-pipelines.yml をカスタマイズします。

  • 別のエージェント プールがある場合は、プールの name パラメーターを変更します。
  • 必要に応じて、Python のバージョンをセルフホステッド エージェントにインストールされているバージョンに変更します。
  trigger:
  - main

  pool: 
    name: '<your-pool-name or default>'

  steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '3.12'
    displayName: 'Use Python 3.12'  

  - script: |
      python -m pip install --upgrade pip
      pip install -r requirements.txt
    displayName: 'Install dependencies'


  - task: ArchiveFiles@2
    displayName: 'Archive files'
    inputs:
      rootFolderOrFile: $(System.DefaultWorkingDirectory)
      includeRootFolder: false
      archiveType: zip
      archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
      replaceExistingArchive: true

  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'

  - script: |
      pip install pytest pytest-azurepipelines
      pytest
    displayName: 'pytest'

パイプラインを実行する

保存して実行を選択し、もう一度保存して実行を選択します。

[概要] タブに、パイプライン実行の状態が表示されます。

ビルド成果物を表示するには、[概要] タブで [発行済み] リンクを選択します。

発行されたビルド成果物のリンクのスクリーンショット。

[成果物] ページに、発行されたビルド成果物が表示されます。 発行されたビルド成果物のスクリーンショット。

完了した Python ジョブのスクリーンショット。

[成果物] ページに、発行されたビルド成果物が表示されます。 発行されたビルド成果物のリンクのスクリーンショット。

テスト結果を表示するには、[テスト] タブを選択します。

パイプラインのテスト結果のスクリーンショット。

クリーンアップ

このクイック スタートを完了すると、作成した Azure DevOps プロジェクトを削除できます。

  1. プロジェクトで、ページの左下隅にある プロジェクト設定 歯車アイコンを選択します。
  2. [プロジェクトの概要] ページの下部にある [削除] を選択します。
  3. プロジェクト名を入力し、[削除] を選択します。

これで、Python アプリをビルドしてテストするパイプラインが正常に作成され、実行されました。 Azure Pipelines を使用して、継続的インテグレーションおよび継続的デリバリー (CI/CD) システムの一部として Python アプリとスクリプトをビルド、テスト、デプロイできるようになりました。

次のステップ