https://github.com/essinn/zolo
Zolo npm package
https://github.com/essinn/zolo
cli json task-runner yaml zolo
Last synced: 2 months ago
JSON representation
Zolo npm package
- Host: GitHub
- URL: https://github.com/essinn/zolo
- Owner: essinn
- Created: 2025-02-02T21:27:16.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-03T20:14:09.000Z (over 1 year ago)
- Last Synced: 2025-10-10T18:06:00.205Z (9 months ago)
- Topics: cli, json, task-runner, yaml, zolo
- Language: JavaScript
- Homepage:
- Size: 50.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Zolo
Zolo is a Simple CLI tool to run tasks defined in YAML or JSON configs.
What it does:
It defines and runs complex task workflows (e.g., build, test, deploy) with dependencies, retries, and parallel execution.
Why it’s useful:
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
1. [Installation](#step-1-installation)
2. [Create a Task Configuration File](#step-2-create-a-task-configuration-file)
3. [Run the CLI Tool](#step-3-run-the-cli-tool)
4. [Expected Output](#step-4-output)
5. [Advanced Use Cases](#step-5-advanced-use-cases)
6. [Key Features](#key-features)
## Step 1: Installation
```bash
npm i zolo
```
## Step 2: Create a Task Configuration File
Example `tasks.yaml`:
```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`:
```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
```bash
zolo --config tasks.yaml
#or
zolo --config tasks.json
```
## Step 4: Output
When the user runs the CLI tool, they’ll see output like this:
```bash
✔ Running task: npm run build
✔ Running task: npm test
✔ Running task: npm run deploy
```
If a task fails and retries are configured, they’ll see something like this:
```bash
✖ 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 deploy
```
## Step 5: Advanced Use Cases
- Parallel Execution:
If the user wants to run tasks in parallel, they can modify the `tasks.yaml` file:
```yaml
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:
```yaml
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.