This document provides a comprehensive guide to configuring and using Conveyor, a lightweight, local-first CI/CD runner.
- Navigation & Controls
- Pipeline Configuration (pipeline.yaml)
- Environment & Secrets
- Headless Mode
- Remote Repositories
Conveyor provides a real-time TUI for managing your builds.
- '1' / '2' / '3' / '4': Switch between Dashboard, History, Pipeline Config, and Env Variables.
- Up/Down Arrows:
- Dashboard: Select a job to view its logs.
- History: Select a previous build record.
- 'Enter':
- History: View the full details and logs of the selected historical build.
- 'Esc':
- History Detail: Return to the build list.
- Search: Clear search query or exit search mode.
- 'R': Retry the current pipeline (resets states and starts fresh).
- '/': Enter Search Mode to filter and highlight logs in real-time.
- 'PgUp' / 'PgDn': Scroll through logs.
- 'q': Quit the application.
Conveyor searches for pipeline.yaml in your project root.
Stages allow you to group related jobs. Jobs within a stage can run in parallel, while stages themselves generally progress sequentially.
You can omit verbose fields for simple tasks:
- Shorthand Step: A string instead of an object if only a command is needed.
- Shorthand Job: Use
commanddirectly on the job if it only has one step.
# Optional: Defaults to 'Conveyor Build'
name: My Pipeline
schedule: "0 */1 * * * *" # Cron: sec min hour day month dow
stages:
- name: Build
jobs:
- name: Compile
command: cargo build --release # Shorthand job
artifacts:
- "target/release/app"
- name: Test
jobs:
- name: Unit Tests
steps:
- cargo test # Shorthand stepUse needs to define a Directed Acyclic Graph of dependencies.
jobs:
- name: Deploy
needs: ["Unit Tests", "Integration Tests"]
command: ./deploy.shSpecify files or directories to preserve after a successful job. They are stored in history/build_{id}/artifacts/.
artifacts:
- "target/release/binary"
- "docs/html/"Standard 6-field cron expressions are supported for automated runs.
sec min hour day month dow
Store non-sensitive local variables here.
DEBUG: "true"
API_URL: "http://localhost:8080"Store sensitive credentials here. Values are automatically masked in all TUI logs.
DATABASE_PASSWORD: "super-secret-password"To require a secret, declare it in pipeline.yaml. Conveyor will prompt for it at startup if missing.
secrets:
- DATABASE_PASSWORDRun the default pipeline.yaml in the current directory:
cargo runUse the -f or --file flag to run a specific configuration:
cargo run -- -f my-pipeline.yamlFor use in CI environments or by AI agents. Logs stream to stdout and the process exits with 0 (success) or 1 (failure).
cargo run -- --headlessRun a pipeline directly from a Git URL. Conveyor clones it into a unique temporary workspace.
cargo run -- https://github.com/user/repo.git [optional-branch]