web-dev-qa-db-ja.com

Azure-pipeline.yamlファイルを整理する方法

公式ドキュメントを読んで、yamlファイルをプロジェクトのルートに配置しました。さまざまなプロジェクトのさまざまなパイプラインワークフローを担当するいくつかのyamlファイルを含む、ある種のパイプラインレポを作成しようと考えています。ただし、AzureパイプラインはAzure-pipeline.yamlファイル名のみを認識します。

問題:同じフォルダーの下に同じAzure-pipeline.yamlの名前で複数のyamlファイルを作成することは明らかに不可能です。 Azureパイプラインのyamlファイルを整理するためのベストプラクティスは何ですか?それをプロジェクトのルートに配置しますか?

3
SLN

同じフォルダー内に同じAzure-pipeline.yaml名を持つ複数のyamlファイルを作成することは明らかに不可能です。

はい、同じフォルダに同じ名前で複数のyamlパイプラインを作成することはできません。 yamlパイプラインがバージョン管理下にあり、Azure Devops gitが同じフォルダー内の同じ名前の2つのファイルをサポートしていないため...

私たちにできることは、Azure-pipeline.yamlAzure-pipelines-1.ymlAzure-pipelines-2.ymlなどのように、同じフォルダーに異なる名前でいくつかのパイプラインを作成することです。

Yamlパイプラインを編集するときにこのオプションを知っているかどうかはわかりません:

enter image description here

ソース管理でyamlファイルの名前を簡単に変更できます。ここでパスを変更するだけです。

enter image description here

Azureパイプラインのyamlファイルを整理するためのベストプラクティスは何ですか?それをプロジェクトのルートに配置しますか?

2つのリポジトリAとBを持つ1つのチームプロジェクトを所有していると仮定します。

AとBの両方が1つの最終製品のモジュールを表す場合は、AとBに対応するパイプラインが必要です。つまり、ほとんどのシナリオでは、RepoAとRepoBに少なくとも1つのパイプラインが必要です。それらはすべて対応するAzure-pipeline.yamlファイルを必要とします。

ここで、RepoAのAzure-pipeline.yamlとRepoBのAzure-pipeline.yamlに同じ変数/タスク/ジョブが多数ある場合、重複した内容を templates に移動することを検討できます。同じプロジェクトでRepoCを作成してテンプレートを保存できます。このテンプレートリポジトリでは、ここにyamlパイプラインを作成する必要はありません。

RepoAのパイプラインでRepoCのテンプレートを参照する方法については、 このドキュメント を参照してください。ソースがgithubにある場合は、Krzysztofのリンクを確認できます。そして、RepoCがAzure Devops Repos内にあり、RepoAおよびRepoBと同じプロジェクトである場合は、次の形式にする必要があります。

resources:
  repositories:
  - repository: templates
    type: git
    name: RepoC
    ref: refs/heads/master

要約すると、機能的リポジトリ(ソースコードを含む)には、対応するyamlパイプラインが含まれている必要があります。また、ある目的で1つのリポジトリ(ソースコードなし)の変更を監視する場合は、その中に1つのyamlパイプラインを含めることもできます。テンプレートリポジトリの場合、yamlパイプラインは必要ありません。

また、yamlパイプラインとは別に、バージョン管理下にないClassic Build/Releaseパイプラインを使用することもあります。 this を参照してください。

1
Lance Li-MSFT