🚀 Open-source workflow engine for DevOps, CI/CD, and automation
⚡️ Automate, test, and orchestrate anything—shell, container, or cloud
- ⚡️ 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
git clone https://github.com/yindia/iapetus.git
cd iapetus/example/yaml
go run main.goname: hello-world
steps:
- name: say-hello
command: echo
args: ["Hello, iapetus!"]
raw_asserts:
- output_contains: iapetustask := 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()- 🔄 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
We welcome PRs, issues, and feedback! See Contributing Guide.
🌟 Star iapetus if you love it!
