zolo
v1.0.2
Published
A CLI tool to run tasks defined in YAML or JSON configs
Maintainers
Readme
Zolo is a Simple CLI tool to run tasks defined in YAML or JSON configs.
It defines and runs complex task workflows (e.g., build, test, deploy) with dependencies, retries, and parallel execution.
Developers often write custom scripts for task automation, but managing dependencies and retries can be messy. This package would provide a clean, declarative way to define and run tasks.
Table of Contents
- Installation
- Create a Task Configuration File
- Run the CLI Tool
- Expected Output
- Advanced Use Cases
- Key Features
Step 1: Installation
npm i zoloStep 2: Create a Task Configuration File
Example tasks.yaml:
tasks:
build:
command: "npm run build"
retries: 2 # Retry up to 2 times if the task fails
test:
command: "npm test"
dependsOn: ["build"] # Run "build" task before "test"
deploy:
command: "npm run deploy"
dependsOn: ["test"] # Run "test" task before "deploy"or
Example tasks.json:
{
"tasks": {
"build": {
"command": "npm run build",
"retries": 2
},
"test": {
"command": "npm test",
"dependsOn": ["build"]
},
"deploy": {
"command": "npm run deploy",
"dependsOn": ["test"]
}
}
}Step 3: Run the CLI Tool
zolo --config tasks.yaml
#or
zolo --config tasks.jsonStep 4: Output
When the user runs the CLI tool, they’ll see output like this:
✔ Running task: npm run build
✔ Running task: npm test
✔ Running task: npm run deployIf a task fails and retries are configured, they’ll see something like this:
✖ Running task: npm run build
⚠ Task failed: npm run build
ℹ Retrying in 1 seconds...
✔ Running task: npm run build (retry 1)
✔ Running task: npm test
✔ Running task: npm run deployStep 5: Advanced Use Cases
- Parallel Execution:
If the user wants to run tasks in parallel, they can modify the tasks.yaml file:
tasks:
lint:
command: "npm run lint"
build:
command: "npm run build"
test:
command: "npm test"
dependsOn: ["lint", "build"] # Run "lint" and "build" in parallel- Environment Variables:
The user can use environment variables in their commands:
tasks:
deploy:
command: "npm run deploy --env=${DEPLOY_ENV}"Key Features
- Define tasks in a YAML or JSON config.
- Support for parallel and sequential execution.
- Retry failed tasks with exponential backoff.
