MRが楽しい

MRやVRについて学習したことを書き残す

AWESOME-COPILOTのドキュメントを読む その45(Azure DevOps Pipeline YAML Best Practices)

本日はAWESOME-COPILOTの技術調査枠です。
AWESOME-COPILOTのドキュメントを読みながら実際に操作を試して記事に残します。
今回はカスタムインストラクションの一つAzure DevOps Pipeline YAML Best Practicesについてです。

Azure DevOps Pipeline YAML Best Practices

Azure DevOps Pipeline YAML Best PracticesはAzure DevOps Pipeline YAMLファイルのベストプラクティスです。
Azure DevOpsで使うCI/CDパイプラインのYAML(azure-pipelines.yml など)の構成・設計・ステージ分割・セキュリティ・実行順序などの標準を設定します。
以下のページからAzure DevOps Pipeline YAML Best Practicesのインストールボタンをクリックして取得します。
github.com

インストールボタンを押してAzure DevOps Pipeline YAML Best Practicesをダウンロードします。
すると.github/instructions配下にインストラクションがインストールされます。

インストールしたインストラクションはCopilotの動作に自動的に適用されます。
CopilotはAzure DevOps Pipeline(YAML)設計のルールやベストプラクティスを理解した上で以下のような提案・修正・説明を行います。

パイプライン構造の理解と案内

Copilot は、ステージ/ジョブ/タスク/変数/トリガー/条件分岐といったAzure DevOpsのCI/CDの基本構造を前提にしながら理解し、提案・修正や解説を 適切なレベルで出すようになります。
例えば以下のような動作をします。

  • ステージを分けてテスト・ビルド・デプロイを明確に分ける
  • 分岐や条件付き実行の書き方
  • 再利用可能なテンプレートの設計
YAMLのベストプラクティス

CopilotはAzure DevOpsの典型的なYAMLのパターンを理解し、以下のような効率と保守性を高めるベストプラクティスに沿った提案をするようになります。

  • YAML のアンカー/テンプレート活用で重複を減らす
  • 変数グループ/ライブラリ変数の使い方
  • トリガー(main ブランチ、PR、タグ)周りの推奨設計
  • キャッシュ(例:NuGet キャッシュ、npm キャッシュ)を入れるタイミング
多段構成(ステージ → ジョブ → タスク)

Copilot は YAML の構造を読んで以下の識別を行い、目的に合ったコマンドや構成例を提案します。

  • ステージごとの意味(例:build → test → deploy)
  • ジョブ単位での並列処理
  • タスクの種類(例:DotNetCoreCLI、Bash、PowerShell、Publish Build Artifacts)
セキュリティとガバナンス

この指示にはベストプラクティスの観点から安全なパイプライン設計も含まれるので、Copilotは以下を意識した構成例を提案・修正するようになります。

  • 秘密情報の扱い(Azure Key Vault、パイプラインシークレット)
  • 意図しない公開を防ぐ変数管理
  • 環境ごとの分離(Dev / Staging / Prod)
テストとデプロイ統合の案内

CopilotはAzure DevOps Pipelinesでよくある以下のユースケースも理解します。

  • 単体テスト実行
  • カバレッジレポート生成
  • ビルド成果物(アーティファクト)生成
  • Release パイプラインや環境タグ付け
エラー防止とレビュー補助

Copilotは以下のような典型的エラーを防ぐための説明・修正案も表示できるようになります。

  • インデントや構文の整合性
  • 不正なキーや誤字
  • サポートされていないフィールド