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

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

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

前提条件

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 にリダイレクトされたりすることがあります。 画面の指示に従ってプロセスを完了します。 詳細については、「 Access to 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 ジョブのスクリーンショット。

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

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

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

[実行] を選択します。

ページの上部に、ビルド番号が表示されます。 ビルド番号を選択して、ビルドの詳細を表示します。

パイプライン ビルド リンクのスクリーンショット。

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

ビルド成果物をダウンロードするには、[公開されたビルド成果物] セクションから [ドロップ] リンクを選択します。

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

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

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

クリーンアップ

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

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

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

次のステップ