mcpField
N
neo-azure-pipelines

neo-azure-pipelines

github.com/benknightdarkクラウド・DevOps739 回インストール4 日前に更新
リポジトリ

neo-azure-pipelines について

プロジェクトの言語、デプロイ先、セキュリティ要件に基づき、Azure DevOps Pipeline の YAML 設計を支援するスキルです。再利用可能なテンプレートを優先して CI/CD を構成します。

主な機能

  1. 01プロジェクトとデプロイ先の評価
  2. 02再利用可能なパイプラインテンプレートの選定
  3. 03複数ステージの CI/CD 設計
  4. 04トリガーと条件の計画
  5. 05パイプライン YAML とタスク参照

活用シーン

  1. 01.NET ビルドパイプラインの作成
  2. 02Azure App Service へのデプロイ
  3. 03オンプレミス IIS へのデプロイ
  4. 04パイプラインのトリガーとステージの計画

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/benknightdark/neo-skills --skill neo-azure-pipelines

インストール後、Claude Code で/neo-azure-pipelinesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

templates/deploy/
deploy-app-service.yml
deploy-iis.yml
templates/util/
clean-artifact.yml
extract-artifact.yml
set-aspnetcore-env.yml
templates/util/iis/
iis-backup.yml
iis-deploy-files.yml
iis-manage-website.yml
iis-rollback.yml
iis-start-website.yml
iis-stop-website.yml
iis-task.yml

詳細

Azure Pipeline スクリプトの設計仕様

把握

  1. バージョン固有の構文やタスクのバージョンが重要な場合は、https://learn.microsoft.com/en-us/azure/devops/pipelines/?view=azure-devops で確認します。ブラウジングできない場合は、不確実であることを明記し、同梱テンプレートとプロジェクトの情報に基づいて判断します。
  2. アプリケーションの開発言語(例:.NET、Java、Python、Node.js)と、具体的なバージョン要件を特定します。
  3. 対象のデプロイ先プラットフォーム(例:Azure App Service、Azure Kubernetes Service、Function App、オンプレミスサーバー)を特定します。
  4. プロジェクトのソースコード構成を確認し、ビルドツール(例:Maven、Gradle、Npm、NuGet)とテストフレームワークを特定します。
  5. 静的アプリケーションセキュリティテスト(SAST)、パッケージの脆弱性スキャン、コンテナーイメージのスキャンなど、セキュリティおよびコンプライアンス要件を確認します。
  6. 環境変数の要件、シークレット情報の取得元(例:Azure Key Vault)、Service Connection のアクセス許可を確認します。
  7. 既存の再利用可能なテンプレートリソースを特定するため、skills/neo-azure-pipelines/templates/ ディレクトリを積極的にスキャンします。対象には以下が含まれます。
    • ビルド:build/build-dotnet.yml
    • デプロイ:deploy/deploy-app-service.yml、deploy/deploy-iis.yml
    • ユーティリティ:util/clean-artifact.yml、util/extract-artifact.yml、util/iis/*.yml など

検討

  1. ドキュメントに記載されたタスクのバージョンを既存の構成と比較し、タスクのバージョンを更新する必要があるか判断します(例:Checkout@v1 ではなく Checkout@v4 を使用)。
  2. プロジェクトの規模に応じてマルチステージアーキテクチャを採用するかどうかを判断し、ビルド、テスト、ステージング、本番環境を論理的に分離します。
  3. ビルドキャッシュ戦略を評価して設計し、依存パッケージのフォルダーを最適化して実行時間を短縮します。
  4. ブランチ戦略に基づいてトリガーの仕組みを設計し、継続的インテグレーション(CI)と継続的デプロイ(CD)のトリガーパスを区別します。
  5. ブルーグリーン、カナリア、ローリングアップデートなどのデプロイ戦略が適用可能か判断します。
  6. Pipeline ロジックの条件付き実行構文(Conditions)を検証し、特定のブランチでのみ、または前提条件の成功後にのみ後続のステップが実行されるようにします。
  7. YAML を一から記述するのではなく、skills/neo-azure-pipelines/templates/ のテンプレートを優先して使用し、Pipeline を構成します。
    • プロジェクトが .NET で、IIS へのデプロイが必要な場合は、build-dotnet.yml と deploy-iis.yml を組み合わせます。
    • 成果物の操作が必要な場合は、util/extract-artifact.yml の使用を優先します。

実行

一般的な出力基準
  1. 現在のプロジェクトと互換性のある Azure DevOps スキーマに準拠した YAML 構成スクリプトを出力します。タスクの正確なバージョンを確認できない場合は、前提を明記します。
  2. Pipeline の実行における柔軟性と再利用性を高めるため、包括的なパラメーター定義を提示します。
  3. Environments、Approvals、Checks の構成に関する推奨事項を生成します。
  4. スクリプトで使用する Task リソースの参照一覧を出力し、バージョン番号を明記して実行環境との一貫性を確保します。
  5. アクセス許可不足や依存関係の競合など、よくある実行エラーを防ぐためのコメントと説明を記述します。
  6. 選択したテンプレートファイルを参照するには template 構文を使用し、必要なパラメーターを正しく渡します。例:
    - template: skills/neo-azure-pipelines/templates/build/build-dotnet.yml
      parameters:
        buildConfiguration: 'Release'
    
CI ワークフロー:.NET ビルド Pipeline

.NET プロジェクトの CI プロセスを構成する場合:

  1. プロジェクトディレクトリをスキャンして、.NET のバージョン(例:.NET 6/8)、プロジェクト名、ソリューションファイル(.sln)を特定します。
  2. 既存の Pipeline 構成があるか確認します。
  3. .pipelines/templates/build/ と .pipelines/templates/util/ ディレクトリを作成します。
  4. build/build-dotnet.yml と util/clean-artifact.yml のテンプレートを、それぞれ対応する場所にコピーします。
  5. 適切な template 構文を使用し、正しいパラメーターを指定した構成にして、プロジェクトルートに azure-pipelines-ci.yml を生成します。
CD ワークフロー:Azure App Service へのデプロイ

Azure App Service の CD プロセスを構成する場合:

  1. Azure App Service 名、環境名(例:Production/Staging)、Service Connection 名をユーザーまたはプロジェクトのコンテキストから確認します。
  2. Build Artifact 名を特定します。
  3. deploy/deploy-app-service.yml をプロジェクトの .pipelines/templates/deploy/ ディレクトリにコピーします。
  4. デプロイパイプラインファイル(例:azure-pipelines-cd-appservice.yml)をプロジェクトのルートに生成します。
  5. YAML で environment、strategy: runOnce、テンプレート呼び出しが正しく構成されていることを確認します。
  6. Azure DevOps で対応する Environments と Approvals を設定する方法をユーザーに案内します。
CD ワークフロー:オンプレミス IIS へのデプロイ

オンプレミス IIS の CD プロセスを構成する場合:

  1. IIS のパラメーター(Website Name、Physical Path、Deployment Group 名、対象環境)を確認します。
  2. プロジェクトで特定の ASP.NET Core 環境設定が必要かどうかを確認します。
  3. util/iis/ ディレクトリ全体と deploy/deploy-iis.yml テンプレートをプロジェクトの .pipelines/templates/ ディレクトリにコピーします。
  4. プロジェクトのルートにデプロイスクリプト(例:azure-pipelines-cd-iis.yml)を生成し、websiteName や physicalPath などのパラメーターを指定して deploy-iis.yml を参照します。
  5. スクリプトに iis-backup.yml と iis-rollback.yml のロジックが組み込まれていることを確認します。
  6. Service Connection のアクセス許可と Deployment Group の構成要件について説明します。

コメント