Skip to content

yindia/iapetus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

iapetus 🚀

Go Reference Go Report Card codecov License: MIT

🚀 Open-source workflow engine for DevOps, CI/CD, and automation
⚡️ Automate, test, and orchestrate anything—shell, container, or cloud


✨ Why iapetus?

  • ⚡️ Lightning-fast: Parallel, dependency-aware execution
  • 🔌 Pluggable: Bash, Docker, and custom backends
  • 🧪 Assertions: Output, exit code, JSON, regex, and more
  • 📝 YAML or Go: Use as config or code
  • 🛡️ Battle-tested: For CI/CD, DevOps, and E2E testing

🚀 Demo

demo


⚡️ Quickstart

git clone https://github.com/yindia/iapetus.git
cd iapetus/example/yaml
go run main.go

📝 Example: YAML Workflow

name: hello-world
steps:
  - name: say-hello
    command: echo
    args: ["Hello, iapetus!"]
    raw_asserts:
      - output_contains: iapetus

💻 Example: Go API

task := iapetus.NewTask("say-hello", 2*time.Second, nil).
    AddCommand("echo").
    AddArgs("Hello, iapetus!").
    AssertOutputContains("iapetus")
workflow := iapetus.NewWorkflow("hello-world", zap.NewNop()).AddTask(*task)
workflow.Run()

🧩 Features

  • 🔄 Parallel, dependency-aware execution
  • Built-in & custom assertions
  • ⏱️ Retries, timeouts, env vars, container images
  • 🔌 Plugin backends: Bash, Docker, and more
  • 🪝 Hooks for logging, metrics, and custom logic
  • 📊 Beautiful logs and error reporting

🤝 Contributing

We welcome PRs, issues, and feedback! See Contributing Guide.


🌟 Star iapetus if you love it!

Star History Chart

About

Automate, test, and orchestrate anything that runs in a shell, container, or cloud. No vendor lock-in. 100% open source.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages