ln-732-cicd-generator について
.NET または Python のプロジェクト向けに、GitHub Actions の CI ワークフローを生成するスキルです。フロントエンドや Docker のジョブも含められ、生成した YAML を検証します。デプロイや CD の設定は対象外です。
主な機能
- 01.NET または Python のスタック検出
- 02フロントエンドのコマンドとバージョン検出
- 03`.github/workflows/ci.yml` の生成
- 04lint、ビルド、テスト、Docker のジョブ
- 05YAML 検証と上書き前の警告
活用シーン
- 01.NET プロジェクトの CI 設定
- 02Python の lint・テスト用ワークフロー作成
- 03パイプラインへのフロントエンド検査追加
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ levnikolaevich/ claude-code-skills --skill ln-732-cicd-generatorインストール後、Claude Code で/ln-732-cicd-generatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/github_ci_dotnet.template.ymlgithub_ci_python.template.ymlgithub_ci.template.yml詳細
パス: ファイルパス(
references/、../ln-*)はこのスキルディレクトリからの相対パスです。
ln-732-cicd-generator
種類: L3 Worker カテゴリー: 7XX Project Bootstrap
自動テストと検証のための GitHub Actions CI パイプラインを生成します。
目的と範囲
GitHub 用の CI/CD ワークフローを作成します。
- 実行すること: lint、test、build、docker のジョブを含む .github/workflows/ci.yml を生成します
- 実行しないこと: デプロイの設定、シークレットの管理、CD パイプラインのセットアップ
入力
| 入力 | ソース | 説明 |
|---|---|---|
| スタックの種類 | ln-730 coordinator | backend-dotnet、backend-python |
| バージョン | 自動検出 | Node.js、.NET、または Python のバージョン |
| フロントエンドのパス | 自動検出 | フロントエンドディレクトリのパス |
| ビルドコマンド | 自動検出 | npm スクリプト、dotnet/pytest コマンド |
出力
| ファイル | 目的 | テンプレート |
|---|---|---|
.github/workflows/ci.yml | メインの CI パイプライン | github_ci_dotnet.template.yml または github_ci_python.template.yml |
ワークフロー
フェーズ 1:スタック分析
使用するテンプレートを特定します。
| 検出条件 | バックエンドテンプレート |
|---|---|
.sln または .csproj が存在 | github_ci_dotnet.template.yml |
requirements.txt または pyproject.toml が存在 | github_ci_python.template.yml |
コマンドを検出します。
- フロントエンド:package.json からスクリプト(lint、build、test)を読み取ります
- .NET:標準の dotnet restore/build/test
- Python:pip install、ruff lint、pytest
フェーズ 2:変数の置換
テンプレート変数を置換します。
| 変数 | ソース | デフォルト |
|---|---|---|
{{NODE_VERSION}} | package.json engines | 22 |
{{DOTNET_VERSION}} | *.csproj TargetFramework | 9.0.x |
{{PYTHON_VERSION}} | pyproject.toml | 3.12 |
{{FRONTEND_PATH}} | ディレクトリ検出 | src/frontend |
フェーズ 3:ディレクトリの作成
.github/workflows/ ディレクトリが存在しない場合は作成します。
フェーズ 4:ファイルの生成
選択したテンプレートから ci.yml を生成します。
- ワークフローがすでに存在するか確認します(上書き前に警告します)
- 変数を置換します
.github/workflows/ci.ymlに書き込みます- YAML 構文を検証します
生成されるパイプラインの構成
ジョブの概要
| ジョブ | 目的 | 依存関係 |
|---|---|---|
| frontend | React/Vite の lint、build、test | なし |
| backend | .NET または Python の build、test | なし |
| docker | イメージのビルド、ヘルスチェック | frontend、backend |
フロントエンドのジョブ手順
- コードをチェックアウトします
- キャッシュを有効にして Node.js をセットアップします
- 依存関係をインストールします(
npm ci) - リンターを実行します(
npm run lint) - アプリケーションをビルドします(
npm run build) - テストを実行します(
npm test)
バックエンドのジョブ手順(.NET)
- コードをチェックアウトします
- .NET SDK をセットアップします
- 依存関係を復元します(
dotnet restore) - ビルドします(
dotnet build) - テストを実行します(
dotnet test)
バックエンドのジョブ手順(Python)
- コードをチェックアウトします
- pip キャッシュを有効にして Python をセットアップします
- 依存関係をインストールします(
pip install -r requirements.txt) - リンターを実行します(
ruff check) - テストを実行します(
pytest)
Docker ジョブの手順
- コードをチェックアウトします
- イメージをビルドします(
docker compose build) - コンテナーを起動します(
docker compose up -d) - 起動を待ちます(30 秒)
- フロントエンドのヘルスチェックを行います(ポート 3000)
- バックエンドのヘルスチェックを行います(ポート 5000/8000)
- 失敗時にログを表示します
- コンテナーを停止します(
docker compose down)
トリガー
| イベント | ブランチ |
|---|---|
| Push | main、develop |
| Pull Request | main |
適用されるベストプラクティス
| プラクティス | 実装 |
|---|---|
| 依存関係のキャッシュ | npm cache、pip cache |
| バージョンの固定 | actions/checkout@v4、setup-node@v4 |
| ジョブの並列実行 | frontend と backend を並列実行します |
| 迅速な失敗検出 | docker ジョブは両方のジョブの成功を待ちます |
| クリーンアップ | docker compose down を常に実行します |
| デバッグのサポート | 失敗時にログを表示します |
品質基準
生成されるワークフローは、次の条件を満たす必要があります。
- YAML 構文の検証に合格する
- 固定されたアクションのバージョンを使用する(
@latestは不可) - 依存関係のキャッシュを含める
- docker ジョブのヘルスチェックを含める
- 完了時にリソースをクリーンアップする
重要な注意事項
- GitHub Actions のみ:このスキルが生成するのは GitHub Actions のワークフローのみです。Azure/GitLab はサポートされません。
- テンプレートベース:references/ のテンプレートを使用してください。ワークフローの内容をハードコードしないでください。
- 冪等性:.github/workflows/ が存在するか確認してください。ci.yml を上書きする前に警告してください。
- バージョン検出:ハードコードされたデフォルトではなく、検出されたバージョンを使用してください。
参照ファイル
| ファイル | 用途 |
|---|---|
| github_ci.template.yml | コメント付きの完全なテンプレート |
| github_ci_dotnet.template.yml | コンパクトな .NET スタックテンプレート |
| github_ci_python.template.yml | コンパクトな Python スタックテンプレート |
完了の定義
-
.github/workflows/ci.ymlが生成され、YAML 検証に合格している - パイプラインに lint、build、test、docker の各ジョブが含まれている
- すべてのアクションのバージョンが固定されている(
@latestは不可)
バージョン: 1.1.0 最終更新日: 2026-01-10
コメント
Markdown 対応