Skip to content

sumant1122/Conveyor

Conveyor 🏗️

A lightweight, local-first CI/CD tool written in Rust with a modern, real-time Terminal User Interface (TUI).

Key Features

  • Real-time TUI: Modern, OneDark-inspired interface for live build monitoring.
  • Artifacts & History: Preserve build outputs and browse full logs of previous runs.
  • Dependency Tracking: Fine-grained execution control with DAG-based job dependencies.
  • Flexible Scheduling: Automate builds with standard Cron expressions.
  • Secure by Default: Automatic masking of secrets in logs and interactive credential prompting.
  • Headless Mode: Ideal for AI agents and CLI automation.

Quick Start

1. Installation

git clone https://github.com/sumant1122/conveyor.git
cd conveyor
cargo build --release

2. Define your Pipeline

Create a pipeline.yaml in your project root:

jobs:
  - name: Build
    command: cargo build
  - name: Test
    command: cargo test

3. Run

# Run default pipeline.yaml
cargo run

# Run a custom file
cargo run -- -f my-pipeline.yaml

Pipeline Examples

1. Simple Build & Test

A minimal pipeline for a standard Rust project.

jobs:
  - name: Build
    command: cargo build --release
  - name: Test
    command: cargo test

2. Parallel Multi-Language Pipeline

Run independent tasks (e.g., frontend and backend checks) concurrently.

jobs:
  - name: Backend Test
    command: cargo test
  - name: Frontend Test
    parallel: true
    command: npm test

3. Complex DAG (Dependency Graph)

Define exactly which jobs must finish before others start.

stages:
  - name: Setup
    jobs:
      - name: Install
        command: npm install
  - name: Quality
    jobs:
      - name: Lint
        needs: ["Install"]
        command: npm run lint
      - name: Unit Tests
        needs: ["Install"]
        command: npm test
  - name: Deploy
    jobs:
      - name: Publish
        needs: ["Lint", "Unit Tests"]
        command: npm publish

4. Artifact Collection

Capture build outputs for later retrieval.

jobs:
  - name: Build Binary
    command: cargo build --release
    artifacts:
      - "target/release/conveyor"
  - name: Generate Docs
    command: cargo doc
    artifacts:
      - "target/doc/"

Documentation

For detailed information on configuration, navigation, and advanced features, see documentation.md.

License

MIT

About

Fast, secure, local-first CI/CD pipelines with a real-time TUI. DAG workflows, cron triggers, and artifact management powered by Rust.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages