Python アプリをビルドして発行する
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
このクイック スタートでは、Python アプリをビルドしてテストするパイプラインを作成します。 Azure Pipelines を使用して、継続的インテグレーションおよび継続的デリバリー (CI/CD) システムの一部として Python アプリとスクリプトを構築、テスト、デプロイする方法について説明します。
前提条件
- リポジトリを作成できる GitHub アカウント。 GitHub アカウントを無料で作成。
- Azure DevOps 組織。 無料で作成できます。
- Azure DevOps プロジェクト。 Azure DevOps プロジェクト作成ウィザードを使用して作成します。
- Microsoft がホストするエージェントでパイプラインを実行する機能。 並列ジョブの無料付与を要求するかパラメーター ジョブを購入する必要があります。
Python は、Linux、macOS、および Windows 用の Microsoft でホストされるエージェント にプレインストールされています。 Python プロジェクトをビルドするために、これ以上何も設定する必要はありません。 プレインストールされている Python バージョンを確認するには、Microsoft ホステッド エージェントの使用に関するページを参照してください。
- リポジトリを作成できる GitHub アカウント。 GitHub アカウントを無料で作成。
- Azure DevOps 組織。 無料で作成できます。
- Azure DevOps プロジェクト。 Azure DevOps プロジェクト作成ウィザードを使用して作成します。
- セルフホステッド エージェント。 作成する方法については、「セルフホステッド エージェント」を参照してください。
- セルフホステッド エージェントにインストールされている Python。 エージェントに Python をインストールするには、 UsePythonVersionを参照してください。
サンプル コードをフォークする
サンプル Python リポジトリを GitHub アカウントにフォークします。
- python-sample-vscode-flask-tutorial リポジトリに移動します。
- ページの右上隅にある [Fork] を選択します。
- GitHub アカウントを選択します。 既定では、フォークの名前は親リポジトリと同じですが、別の名前を付けることができます。
重要
次の手順では、 GitHub サービス接続の作成を求められたり サインイン、Azure Pipelines のインストール、Azure Pipelines の承認を行うために GitHub にリダイレクトされたりすることがあります。 画面の指示に従ってプロセスを完了します。 詳細については、「 Access to 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 アプリとスクリプトをビルド、テスト、デプロイできるようになりました。