Skip to main content

A simple CLI tool to run jobs from jobs.yaml with proper environment setup

Project description

Steve CLI

A simple CLI tool to run jobs from jobs.yaml with proper environment setup. Perfect for local development and testing of automation kernel jobs.

Installation

Install from local development

cd /home/frank/Projects/7frank/tilt-ts-4/apps/example-hehnke/packages/steve-cli
uv venv
uv pip install -e .

Install from GitHub

uv add git+https://github.com/your-org/tilt-ts-4.git#subdirectory=apps/example-hehnke/packages/steve-cli

Usage

Run a job

steve extract-data
steve transform-data  
steve validate-data

This will:

  1. Look for jobs.yaml in the current directory
  2. Find the specified job by name
  3. Set all environment variables from the job's env section
  4. Execute the job's command with the proper environment

List available jobs

steve ls

Shows all jobs in jobs.yaml with their commands, schedules, dependencies, and environment variables.

Get help

steve help
steve --help

Use custom jobs file

steve -f path/to/custom.yaml extract-data
steve ls -f path/to/custom.yaml

Example

Given a jobs.yaml file:

jobs:
  - name: extract-data
    cron: "0 2 * * *"
    command: ["uv", "run", "src/extract.py"]
    env:
      SOURCE_URL: "https://jsonplaceholder.typicode.com/users"
      OUTPUT_PATH: "/data/raw/extracted_data.parquet"
  
  - name: transform-data
    dependsOn: ["extract-data"]
    command: ["uv", "run", "src/transform.py"]
    env:
      INPUT_PATH: "/data/raw/extracted_data.parquet"
      OUTPUT_PATH: "/data/processed"

Running steve extract-data will:

  1. Set SOURCE_URL=https://jsonplaceholder.typicode.com/users
  2. Set OUTPUT_PATH=/data/raw/extracted_data.parquet
  3. Execute: uv run src/extract.py

Features

  • Simple: Just steve <job-name> to run any job
  • Environment: Automatically sets environment variables from jobs.yaml
  • Discovery: Auto-finds jobs.yaml in current directory
  • Listing: See all available jobs with steve ls
  • Flexible: Supports custom jobs file paths
  • Colorful: Nice colored output for better readability
  • Error handling: Clear error messages for missing jobs or files

Why Steve?

Named after Steve Jobs - because it helps you run jobs locally! 😄

Requirements

  • Python 3.8+
  • click >= 8.0.0
  • pyyaml >= 6.0

Development

# Install in development mode
uv pip install -e .

# Run tests (when added)
pytest

# Format code
black steve_cli/
isort steve_cli/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

steve_cli-0.1.0.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

steve_cli-0.1.0-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file steve_cli-0.1.0.tar.gz.

File metadata

  • Download URL: steve_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"25.04","id":"plucky","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for steve_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1db9bca05d4257cecc6aa5da326c7a5366b979788051963683b793a34902d170
MD5 21e491523103085f8e6385adf0d9d3cf
BLAKE2b-256 912b97ebfba7136f5a98d4b5ecceb367d00bb8140501fd675cb37088c208f705

See more details on using hashes here.

File details

Details for the file steve_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: steve_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"25.04","id":"plucky","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for steve_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 68245f8eedf88f4b2208829fdad204c99af3d79b6b864014dd6c653cdc015332
MD5 2577c574cf339aaf794300448cdde773
BLAKE2b-256 5f1deaf12d380bac61264542ba8716abd725b4d13ac10dd07ffc6138f8add643

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page