リリースパイプラインに相当するYAMLとは何ですか?

Aug 17 2020

私はAzureDevOpsを調べていましたが、何かに戸惑っています。Microsoftは、従来のパイプラインではなくYAMLパイプラインの使用を強く推奨しているようです。十分に公平ですが、古典的なパイプラインにあったすべての機能を置き換える必要があります。「リリースパイプライン」機能をYAMLパイプラインに置き換えるにはどうすればよいですか?

したがって、たとえば、従来のリリースパイプラインでは、手動トリガーを備えた本番環境にデプロイするパイプラインを設定できます(「ユーザーによる手動」を参照)。

https://docs.microsoft.com/en-us/azure/devops/pipelines/release/triggers?view=azure-devops#pull-request-triggers

これに相当するYAMLパイプラインは何ですか?明らかに、本番環境に自動的にデプロイされるトリガーは必要ありません-常にそのデプロイメントを厳密に手動で開始する必要があります-しかし、ヘルプ記事はYAMLの代替手段を提供していないようです。

回答

1 LanceLi-MSFT Aug 18 2020 at 03:42

ダニエルの上記のコメント、YAMLのパイプラインは、CDのための多段階YAMLパイプラインをサポートしています。詳細については、Azure DevOpsパイプライン–マルチステージパイプラインと継続的デリバリー用のYAMLを確認できます。

Azure devops yamlマルチステージパイプラインとクラシックリリースパイプラインはどちらもCDに使用できますが、いくつかの違いがあります。そして、私が知っているように、YAMLパイプラインのどの機能もmanual triggerクラシックリリース機能と同等にすることはできません

今のところ、手動​​トリガーはYAMLパイプラインではサポートされていません。この説明を参照してください。良いニュースは、製品チームが機能のリクエストを検討し、新機能がロードマップにあることです。(おそらく2020年第3四半期の計画中)

そこでのチームによると、彼らがここで考えている新機能の範囲は、ステージを「常に手動で開始する」とマークできるようにすることです。このステージに依存する他のステージがある場合、それらはこのステージが実行されるまで待機し続けます。

manual triggerYamlパイプラインで機能が実現するまで、しばらく待たなければならない場合があります。新しい機能があなたのニーズを満たすことを願っています。

AlexanderVolok Aug 18 2020 at 10:10

Microsoftによると、チームは内部でリリースフロー分岐戦略を使用しています。リリースフロー:VSTSチームでの分岐方法

リリースフローとは、リリースをトリガーするためにリリースブランチを作成する必要があることを意味します。これは、次のようになります。

リリース/製品名-sprint02

したがって、そのようなブランチの作成は手動トリガーとして機能できます

マルチステージYAMLパイプラインでは、パイプラインの実行がリリースブランチコンテキストである場合にトリガーされるように本番デプロイステージをコーディングする必要があります。これは、condition:とチェックを含む式を使用して行うのは難しくありません。

${{ startsWith(variables['Build.SourceBranch'], 'refs/heads/releases')

ps同様のテーマに関する最近のブログ:Azure DevOps –YAMLパイプラインと分岐戦略