eve-pipelines-workflows について
manifest と `eve` コマンドラインで Eve のパイプラインとワークフローを定義・実行するスキルです。ビルドからデプロイへの昇格、エージェントのステップ、呼び出し制御、実行監視を扱います。
主な機能
- 01manifest によるパイプラインとワークフローの定義
- 02ステップの順序制御と条件実行
- 03ビルド、リリース、デプロイのアクション
- 04ワークフロー入力、リソース参照、環境上書き
- 05実行ログ、再試行、通知
活用シーン
- 01ビルドとデプロイの手順の自動化
- 02同じビルド成果物を複数環境へ昇格
- 03エージェントによる修復ワークフローの呼び出し
- 04失敗したワークフロー実行の監視と再試行
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ incept5/ eve-skillpacks --skill eve-pipelines-workflowsインストール後、Claude Code で/eve-pipelines-workflowsを入力して読み込まれたか確認します。
詳細
Eve パイプラインとワークフロー
これらのパターンを使って、ビルドやデプロイのアクションを自動化し、ワークフロージョブを呼び出します。
パイプライン(v2 ステップ)
.eve/manifest.yamlのpipelinesの下にパイプラインを定義します。- ステップには
action、script、agentを指定できます。 depends_onを使って実行順序を制御します。- 組み込みアクションには、
build、release、deploy、run、job、create-prがあります。 - 手動で実行します:
eve pipeline listeve pipeline show <project> <name>eve pipeline run <name> --ref <sha> --env <env> --repo-dir ./my-app
- マニフェストにはトリガーブロックがあり、GitHub や Slack のウェブフックからパイプラインの実行を作成できます。
組み込みアクション
build アクション
ビルドアクションは、追跡および監視可能な BuildSpec レコードと BuildRun レコードを作成します。
- データベースに BuildSpec(ビルド対象の定義)と BuildRun(実行記録)を作成します。
- 出力には
build_idとimage_digestsマップ(サービス名から SHA256 ダイジェストへの対応)が含まれます。 - これらの出力は依存するステップに自動的に渡されます(release は build_id を使用します)。
- ビルドを個別に確認できます:
eve build show、eve build diagnose、eve build runs、eve build logs
エージェントステップ
パイプラインのステージで AI エージェントジョブを実行する場合は、agent ステップを使います。
pipelines:
remediation:
steps:
- name: analyze
agent:
prompt: "Analyze the failure and propose a fix"
標準的なパイプラインの流れ
すべてのデプロイパイプラインでは、次のパターンに従ってください。
pipelines:
deploy:
steps:
- name: build
action:
type: build
# Creates BuildSpec + BuildRun, outputs build_id + image_digests
- name: release
depends_on: [build]
action:
type: release
# References build_id, derives digests from BuildArtifacts
- name: deploy
depends_on: [release]
action:
type: deploy
env_name: staging
# Uses digest-based image refs for immutable deploys
昇格ワークフロー
test で一度だけビルドし、同じビルド成果物を staging/production に昇格させます。
- ビルドステップでは、成果物(イメージダイジェスト)を含む BuildRun が作成されます。
- リリースでは build_id が引き継がれ、環境間で同一のイメージが使われます。
- このパターンにより、テストしたものとまったく同じものをデプロイできます。
パイプラインの実行を追跡します。
eve job list --phase active
eve job follow <job-id>
eve job result <job-id>
パイプラインのログとストリーミング
パイプラインの実行をリアルタイムで監視します。
# Snapshot logs for a run
eve pipeline logs <pipeline> <run-id>
# Real-time SSE streaming
eve pipeline logs <pipeline> <run-id> --follow
# Stream specific step
eve pipeline logs <pipeline> <run-id> --follow --step <name>
失敗したステップには、失敗のヒントと、該当する場合はビルド診断へのリンクが表示されます。
パイプラインエイリアスとしての環境デプロイ
マニフェストで環境に pipeline が設定されている場合、eve env deploy <env> --ref <sha> は直接デプロイする代わりに、そのパイプラインを自動的に実行します。
基本的な使い方
# Triggers the configured pipeline for test environment
eve env deploy test --ref 0123456789abcdef0123456789abcdef01234567
# Pass inputs to the pipeline
eve env deploy staging --ref 0123456789abcdef0123456789abcdef01234567 --inputs '{"release_id":"rel_xxx"}'
# Bypass pipeline and do direct deploy
eve env deploy staging --ref 0123456789abcdef0123456789abcdef01234567 --direct
昇格フローの例
# 1. Build and deploy to test environment
eve env deploy test --ref 0123456789abcdef0123456789abcdef01234567
# 2. Get release info from the test build
eve release resolve v1.2.3
# Output: rel_xxx
# 3. Promote to staging using the release_id
eve env deploy staging --ref 0123456789abcdef0123456789abcdef01234567 --inputs '{"release_id":"rel_xxx"}'
主な動作
environments.<env>.pipelineが設定されている場合、eve env deploy <env>はそのパイプラインを実行します。- パイプラインを経由せずに直接デプロイするには、
--directフラグを使います。 - パイプラインの実行に入力を渡すには、
--inputs '{"key":"value"}'を使います。 - デフォルトの入力は、マニフェストの
environments.<env>.pipeline_inputsで設定できます。 --refフラグは、デプロイする git SHA(40 文字の SHA、または--repo-dir経由で解決される ref)を指定します。- 環境変数とシークレットは通常どおり補間されます。
このパターンを使うと、下位環境で一度ビルドし、同じ成果物を上位環境へ昇格させるワークフローを実現できます。
ワークフロー
- マニフェストの
workflowsの下にワークフローを定義します。 db_accessが設定されている場合は、その値(read_only、read_write)が適用されます。- 呼び出し時の
resource_refsは、依存するステップを含むすべてのワークフローステップでデフォルトで利用できます。ワークフロー全体のデフォルトポリシーを設定するにはワークフローレベルのresource_refsを使い、ステップレベルのresource_refsで上書きします。inherit/all:呼び出し時のすべての ref を渡します。none:ref を渡しません。[brief, design-system]:name、label、mount_path、uri、metadata.nameが一致する ref のみを渡します。
- 手動で呼び出します:
eve workflow listeve workflow show <project> <name>eve workflow run <project> <name> --input '{"k":"v"}'(結果を待たずに実行)eve workflow invoke <project> <name> --input '{"k":"v"}'(結果を待機)eve workflow logs <job-id>
- 呼び出すとジョブが作成されます。通常のジョブコマンドで追跡できます。
ワークフローのヒント
hints を使って、ゲーティング、タイムアウト、ハーネスの設定を制御します。
workflows:
remediate:
hints:
gates: ["remediate:proj_abc123:staging"]
条件付きステップ
上流ステップの結果に応じて、後続のステップをスキップします。条件では名前付きの上流ステップを参照し、ディスパッチ時に評価されます。
workflows:
triage-and-act:
steps:
- name: triage
agent: { prompt: "Classify this incident" }
- name: deep
depends_on: [triage]
condition: "triage.status == 'complex'" # skip if false
agent: { prompt: "Run deep analysis" }
条件では、上流ステップのステータスに対して == と != を使用できます。参照するステップは depends_on に含まれている必要があります。マニフェストの同期時に、参照先のないステップや不正な条件構文は検証で拒否されます。
ステップ単位のハーネスのオーバーライド
ステップごとにハーネスを固定またはオーバーライドできます(ワークフローのステップとパイプラインのステップで、同じ形式を使用します)。
steps:
- name: classify
harness: claude
harness_profile: claude-sonnet
harness_options:
model: claude-sonnet-4-7
reasoning_effort: medium
temperature: 0.2
agent: { prompt: "Classify this" }
ステップ単位の値は、エージェントが解決したデフォルト値より優先されます。harness_profile には、呼び出し元が選択できるように ${inputs.model} のようなテンプレートを指定できます。
ワークフローの env_overrides
ワークフロー、ステップ、呼び出しの3つのレイヤーで環境変数を設定できます。ランタイムはこの順序で統合し、後のレイヤーが優先されます。${secret.KEY} でシークレットを参照できます。リゾルバーはログ内のシークレットをマスキングします。
workflows:
remediate:
env_overrides:
LOG_LEVEL: info
steps:
- name: act
env_overrides:
LOG_LEVEL: debug # step wins over workflow
API_KEY: ${secret.VENDOR_TOKEN}
agent: { prompt: "Remediate" }
呼び出し元は、呼び出し時に3つ目のレイヤーを追加できます。
eve workflow invoke <project> remediate --input '{"k":"v"}' --env-override DRY_RUN=true
パイプラインの env は実行の env_name に引き継がれるため、ステップごとに再宣言しなくても適切なスコープが適用されます。
ジョブ単位のハーネスのオーバーライド(アドホックジョブ)
ワークフロー外でアドホックジョブを実行する場合は、作成時の呼び出しでハーネスをオーバーライドします。
eve job create --description "Investigate" \
--harness claude \
--profile claude-sonnet
# Or pass a full override object:
eve job create --description "..." --harness-override-file ./override.json
# override.json: { "harness": "...", "model": "...", "reasoning_effort": "...", "variant": "...", "temperature": 0.2 }
このオーバーライドはディスパッチとクレームを通じてエンドツーエンドで引き継がれ、エージェントが解決した値より優先されます。
Slack 通知、再試行、ファイル参照
- ワークフローの
hints.slackは、ステップの開始・完了・失敗を設定済みのチャンネルに投稿します。 - 前回の呼び出しで失敗したステップと、上流ステップの失敗によって失敗したステップを再試行できます。
eve workflow retry <root-job-id> --failedeve workflow retry <root-job-id> --from <step>
- ワークフローのステップではファイル参照(パスを指す
resource_refsエントリー)を使用できます。これらは他の参照とともにステップのワークスペースに展開されます。