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
- Install
ouro
pip install ouro
- 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,
)
- Run
ouro synthto generate your workflow(s)
Built with ❤️ and 🐍
Project details
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39fc4b3b5db08c2d9a68bb93f4ff9840bd7ddd7312c6b96681ede2d64598a94d
|
|
| MD5 |
b5ecb6d396c10b12339c9dba3266e073
|
|
| BLAKE2b-256 |
163bddf1b9f5e89d03a068b7831c73386a6730f5027f23f3b155e773b5fad533
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8cba524edd9d66baf8fea96f46198ea5d5386dc13c3ef88c7d8e818434034d2
|
|
| MD5 |
cf1c44303ffef6d04c7800dac007e686
|
|
| BLAKE2b-256 |
0deb4f60ebaefb01711b8b7af15759117933895886cd2f86a61b2197fa044d24
|