mcpField
L
local-ci

local-ci

github.com/redwoodjsテスト・品質81068 回インストール7 週間前に更新
リポジトリ

local-ci について

Local CIは、変更をプッシュする前にCIパイプライン全体をローカルで実行するコマンドラインツールです。失敗時に一時停止し、指定ステップから再実行できます。プログラムやエージェント向けのNDJSONイベントも出力します。

主な機能

  1. 01CIパイプライン全体をローカル実行
  2. 02失敗時の自動一時停止
  3. 03失敗または指定ステップから再実行
  4. 04NDJSONイベントストリームの出力
  5. 05構造化された実行状態の提供

活用シーン

  1. 01プッシュ前のコード変更チェック
  2. 02失敗ステップの修正後に再開
  3. 03エージェントによるCI進捗の監視

インストール

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

$npx skills add https://github.com/redwoodjs/local-ci --skill local-ci

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

詳細

ローカル CI

プッシュする前に、CI パイプライン全体をローカルで実行してください。作業を始める前は CI に失敗がありませんでした。失敗が発生した場合は、変更が原因です。

実行

npx run-local-ci run --quiet --all --pause-on-failure

パイプは安全です。| tee log、> log.txt などを使っても、一時停止時の処理は機能します。標準出力が TTY ではない場合、ランチャーは実行をデタッチし、ステップが一時停止した時点でフォアグラウンドプロセスを終了コード 77 で終了します。これにより、コンテナは retry のために一時停止したまま、パイプが解放されます。

再試行

ステップが失敗すると、実行は自動的に一時停止します。問題を修正してから、再試行してください。

npx run-local-ci retry --name <runner-name>

前のステップから再実行するには:

npx run-local-ci retry --name <runner-name> --from-step <N>

すべてのジョブが成功するまで繰り返してください。local-ci でローカル実行できる場合は、リモート CI を起動するためにプッシュしないでください。

機械可読な出力(--json)

プログラムから監視するには、--json を追加するか(または LOCAL_CI_JSON=1 を設定して)、標準出力に NDJSON イベントストリーム(1 行につき 1 つの JSON オブジェクト)を出力します。イベントは次のとおりです。

  • run.start(schemaVersion: 1、runId を含む)
  • job.start、job.finish(status: passed|failed)
  • step.start、step.finish(status: passed|failed|skipped)
  • run.paused(runner と retry_cmd を含む)
  • run.finish(status: passed|failed)
  • diagnostic

--json は --quiet とは独立しており、差分レンダラーは --json 使用時に自動的に抑制されるため、ANSI シーケンスがストリームと衝突しません。上記の終了コード 77 による一時停止通知と組み合わせることで、エージェントにとって堅牢な連携方法が得られます。run.paused イベントを解析して対応し、retry を呼び出せばよく、プレーンテキストを grep する必要はありません。

コメント