Skip to main content

ouro is a Python-based DSL for generating GitHub Actions workflows.

Project description

ouro

ouro is a Python-based DSL (domain specific language) for generating GitHub Actions workflows, without needing to write YAML.

This package is currently under development.

Why ouro?

  • No more YAML
  • Fully programmable
  • Less duplication
  • Sync with GitHub Actions

Quickstart

  1. Install ouro
pip install ouro
  1. Create a Python script
from ouro.core import Workflow, Job, Step
from ouro.primitives import RunnerImage, GHAEvent


def create_workflow():
    steps = [
        Step(name="Checkout", uses="actions/checkout@v2"),
        Step(name="Install dependencies", run="pip install -r requirements.txt"),
        Step(name="Run tests", run="pytest"),
    ]

    jobs = {"test": Job(runs_on=RunnerImage.UBUNTU_LATEST, steps=steps)}

    return Workflow(
        name="CI",
        on={
            GHAEvent.PUSH: {"branches": ["main"], "tags": ["v*"]},
            GHAEvent.PULL_REQUEST: {"branches": ["main"]},
        },
        jobs=jobs,
    )
  1. Run ouro synth to generate your workflow(s)

Built with ❤️ and 🐍

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

ouro_ci-0.1.0.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

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

ouro_ci-0.1.0-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ouro_ci-0.1.0.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.29

File hashes

Hashes for ouro_ci-0.1.0.tar.gz
Algorithm Hash digest
SHA256 39fc4b3b5db08c2d9a68bb93f4ff9840bd7ddd7312c6b96681ede2d64598a94d
MD5 b5ecb6d396c10b12339c9dba3266e073
BLAKE2b-256 163bddf1b9f5e89d03a068b7831c73386a6730f5027f23f3b155e773b5fad533

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ouro_ci-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.29

File hashes

Hashes for ouro_ci-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a8cba524edd9d66baf8fea96f46198ea5d5386dc13c3ef88c7d8e818434034d2
MD5 cf1c44303ffef6d04c7800dac007e686
BLAKE2b-256 0deb4f60ebaefb01711b8b7af15759117933895886cd2f86a61b2197fa044d24

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