Productivity

eve-pipelines-workflows

incept5/eve-skillpacks · updated Apr 8, 2026

$npx skills add https://github.com/incept5/eve-skillpacks --skill eve-pipelines-workflows
summary

Use these patterns to automate build and deploy actions and invoke workflow jobs.

skill.md

Eve Pipelines and Workflows

Use these patterns to automate build and deploy actions and invoke workflow jobs.

Pipelines (v2 steps)

  • Define pipelines under pipelines in .eve/manifest.yaml.
  • Steps can be action, script, or agent.
  • Use depends_on to control ordering.
  • Built-in actions include build, release, deploy, run, job, create-pr.
  • Run manually:
    • eve pipeline list
    • eve pipeline show <project> <name>
    • eve pipeline run <name> --ref <sha> --env <env> --repo-dir ./my-app
  • Trigger blocks exist in the manifest; GitHub and Slack webhooks can create pipeline runs.

Built-in Actions

build action

Build actions create BuildSpec and BuildRun records that are tracked and observable:

  • Creates BuildSpec (defines what to build) and BuildRun (execution record) in the database
  • Outputs include build_id and image_digests map (service name to SHA256 digest)
  • These outputs automatically flow to dependent steps (release uses build_id)
  • Inspect builds independently: eve build show, eve build diagnose, eve build runs, eve build logs

Agent steps

Use agent steps when a pipeline stage should run an AI agent job:

pipelines:
  remediation:
    steps:
      - name: analyze
        agent:
          prompt: "Analyze the failure and propose a fix"

Canonical pipeline flow

Every deploy pipeline should follow this pattern:

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

Promotion workflow

Build once in test, then promote the same build artifacts to staging/production:

  • The build step creates a BuildRun with artifacts (image digests)
  • Releases carry the build_id forward, ensuring identical images across environments
  • This pattern guarantees you deploy exactly what you tested

Track pipeline execution:

eve job list --phase active
eve job follow <job-id>
eve job result <job-id>

Pipeline Logs & Streaming

Monitor pipeline runs in real time:

# 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>

Failed steps include failure hints and link to build diagnostics when applicable.

Environment Deploy as Pipeline Alias

When an environment has a pipeline configured in the manifest, eve env deploy <env> --ref <sha> automatically triggers that pipeline instead of doing a direct deploy.

Basic usage

# 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

Promotion flow example

# 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"}'

Key behaviors

  • If environments.<env>.pipeline is set, eve env deploy <env> triggers that pipeline
  • Use --direct flag to bypass the pipeline and perform a direct deploy
  • Use --inputs '{"key":"value"}' to pass inputs to the pipeline run
  • Default inputs can be configured via environments.<env>.pipeline_inputs in the manifest
  • The --ref flag specifies which git SHA to deploy (40-character SHA or ref resolved via --repo-dir)
  • Environment variables and secrets are interpolated as usual

This pattern enables promotion workflows where you build once in a lower environment and promote the same artifact through higher environments.

Workflows

  • Define workflows under workflows in the manifest.
  • db_access is honored when present (read_only, read_write).
  • Invoke manually:
    • eve workflow list
    • eve workflow show <project> <name>
    • eve workflow run <project> <name> --input '{"k":"v"}' (fire-and-forget)
    • eve workflow invoke <project> <name> --input '{"k":"v"}' (wait for result)
    • eve workflow logs <job-id>
  • Invocation creates a job; track it with normal job commands.

Workflow Hints

Control gating, timeouts, and harness preferences via hints:

workflows:
  remediate:
    hints:
      gates: ["remediate:proj_abc123:staging"]