Python アプリをビルドする

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

Azure Pipelines を使用して、CI/CD システムの一部として Python アプリとスクリプトをビルド、テスト、デプロイできます。

このクイック スタートでは、Python アプリをビルドしてテストするパイプラインを作成する方法について説明します。

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

前提条件

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

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

  1. python-sample-vscode-flask-tutorial リポジトリに移動します。
  2. ページの右上隅にある [Fork] を選択します。
  3. リポジトリをフォークする GitHub アカウントを選択し、フォークされるリポジトリの名前を入力します。

2. パイプラインを作成する

  1. [Azure Pipelines] に移動し、[無料で開始する] を選択します。 メッセージが表示されたら、DevOps アカウントにサインインします。

  2. プロジェクトに移動し、[パイプライン]>[パイプラインの作成] を選択します。

  3. ソース コードの場所として [GitHub] を選択します。

  4. サインインするために GitHub にリダイレクトされた場合は、GitHub の資格情報を入力します。

  5. リポジトリの一覧が表示されたら、フォークされたサンプル リポジトリを選択します。

  6. [パイプラインを構成する] タブで、[スタート パイプライン] を選択します。

  1. ブラウザーで、DevOps Server コレクションにアクセスします。

  2. プロジェクトに移動し、[パイプライン]>[新しいパイプラインの作成] の順に選択します。

  3. ソース コードの場所として [GitHub Enterprise Server] を選択します。

  4. サインインするために GitHub にリダイレクトされた場合は、GitHub の資格情報を入力します。

  5. リポジトリの一覧が表示されたら、フォークされたサンプル リポジトリを選択します。

  6. [パイプラインを構成する] タブで、[スタート パイプライン] を選択します。

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

生成された azure-pipelines.yml の内容を、以下のコードに置き換えます。 このコードは、必要な Python バージョンと依存関係をインストールし、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 をカスタマイズします。

  1. 生成された YAML を以下のコードに置き換えます。 このコードは、必要な Python バージョンと依存関係をインストールし、Python パッケージをパイプラインに発行された zip ファイルにパッケージ化し、テストを実行します。
  2. 別のエージェント プールがある場合は、プールの name パラメーターを変更します。
  3. セルフホステッド エージェントにインストールされたバージョンと一致するように、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'

4. パイプラインを実行する

パイプラインを保存し、実行します。

  1. [保存して実行] を選択します。
  2. [保存および実行] ダイアログで、[保存および実行] を選択します。
  3. [概要] タブから、パイプライン実行の状態を確認できます。
  1. [実行] を選択します。
  2. ページの上部に、ビルド番号が表示されます。 ビルド番号を選択して、ビルドの詳細を表示します。

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

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

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

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

[成果物] ページに、発行されたビルド成果物が表示されます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

クリーンアップ

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

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

おめでとうございます。このクイック スタートを正常に完了しました。

次のステップ