A flexible, config-driven CLI tool designed to orchestrate build, publish, and deploy workflows for your services to a VPS. It functions as a lightweight task runner with environment variable management
- Config-Driven: Define all your projects and tasks in a simple
yoda.jsonfile. - Environment Management: Seamless integration with
.envfiles and environment variable substitution. - Task Dependencies: Support for
prehooks to run prerequisite tasks. - Parameter Validation: Define required and optional parameters for your tasks.
pip install yodacliThe package installs a yoda command on your PATH.
pip install .yoda requires a yoda.json file in your working directory. Here is a minimal example:
{
"projects": {
"myweb": {
"env": { "IMAGE": "ghcr.io/x0y-gt/myweb:${TAG}" },
"tasks": {
"deploy": {
"params": ["TAG"],
"run": "docker pull ${IMAGE} && docker restart myweb"
}
}
}
}
}The basic syntax is:
yoda <project> <task> [KEY=VALUE...]Deploy a specific version:
yoda myweb deploy TAG=v1.0.1-
Create a virtual environment:
python3 -m venv .venv source .venv/bin/activate -
Install dependencies:
pip install -e .[dev]
-
Run tests:
pytest
This project is licensed under the terms of the MIT license.