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 アカウントにフォークします。
- python-sample-vscode-flask-tutorial リポジトリに移動します。
- ページの右上隅にある [Fork] を選択します。
- GitHub アカウントを選択します。 既定では、フォークの名前は親リポジトリと同じですが、別の名前を付けることができます。
重要
次の手順では、 GitHub サービス接続の作成を求められたり サインイン、Azure Pipelines のインストール、Azure Pipelines の承認を行うために GitHub にリダイレクトされたりすることがあります。 画面上の指示に従って、プロセスを完了します。 詳細については、「Github リポジトリへのアクセス」を参照してください。
パイプラインを作成する
- Azure DevOps プロジェクトで、 Pipelines>Create Pipeline を選択し、ソース コードの場所として GitHub を選択します。
- リポジトリの選択画面で、フォークしたサンプル リポジトリを選択します。
- [パイプラインの構成] 画面で、[スタート パイプライン] を選択します。
パイプラインをカスタマイズする
パイプライン 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'
パイプラインを実行する
保存して実行を選択し、もう一度保存して実行を選択します。
[概要] タブに、パイプライン実行の状態が表示されます。
ビルド成果物を表示するには、[概要] タブで [発行済み] リンクを選択します。
[成果物] ページに、発行されたビルド成果物が表示されます。
[成果物] ページに、発行されたビルド成果物が表示されます。
テスト結果を表示するには、[テスト] タブを選択します。
クリーンアップ
このクイック スタートを完了すると、作成した Azure DevOps プロジェクトを削除できます。
- プロジェクトで、ページの左下隅にある プロジェクト設定 歯車アイコンを選択します。
- [プロジェクトの概要] ページの下部にある [削除] を選択します。
- プロジェクト名を入力し、[削除] を選択します。
これで、Python アプリをビルドしてテストするパイプラインが正常に作成され、実行されました。 Azure Pipelines を使用して、継続的インテグレーションおよび継続的デリバリー (CI/CD) システムの一部として Python アプリとスクリプトをビルド、テスト、デプロイできるようになりました。