UV based Robot Framework external service task runner for Operaton
Project description
pur(jo)
pur(jo) (/ˈpurjo/) is an experimental command line tool for orchestrating Robot Framework test or task suites with the Operaton BPM engine. It long-polls external service tasks from the Operaton engine, executes mapped Robot Framework test and task suites with the uv Python environment manager, and finally reports the results or errors back to the engine.
CLI
Usage: pur [OPTIONS] COMMAND [ARGS]...
pur(jo) is a tool for managing and serving robot packages.
╭─ Commands ───────────────────────────────────────────────────────────────╮
│ serve Serve robot.zip packages (or directories) as BPMN service tasks. │
│ init Initialize a new robot package into the current directory. │
│ wrap Wrap the current directory into a robot.zip package. │
│ run Deploy process resources to BPM engine and start a new instance. │
│ bpm BPM engine operations as distinct sub commands. │
╰──────────────────────────────────────────────────────────────────────────╯
Usage: pur serve [OPTIONS] ROBOTS...
Serve robot.zip packages (or directories) as BPMN service tasks.
╭─ Arguments ────────────────────────────────────────────────────────────────────╮
│ * robots ROBOTS... [default: None] [required] │
╰────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ──────────────────────────────────────────────────────────────────────╮
│ --base-url TEXT default: http://localhost:8080/engine-rest] │
│ --authorization TEXT [default: None] │
│ --timeout INTEGER [default: 20] │
│ --poll-ttl INTEGER [default: 10] │
│ --lock-ttl INTEGER [default: 30] │
│ --max-jobs INTEGER [default: 1] │
│ --worker-id TEXT [default: operaton-robot-runner] │
│ --log-level TEXT [default: DEBUG] │
│ --on-fail [FAIL|COMPLETE|ERROR] [default: FAIL] │
│ --help Show this message and exit. │
╰────────────────────────────────────────────────────────────────────────────────╯
Usage
Start Operaton:
$ podman run --rm -ti -p 8080:8080 operaton/operaton:latest
Create workspace:
$ mkdir hello-world
$ cd hello-world
Init project:
$ uv run --with=purjo -- pur init
Adding .python-version
Adding pyproject.toml
Adding README.md
Adding Hello.py
Adding hello.robot
Adding uv.lock
Adding hello.bpmn
Deploy and start an example process:
$ uv run --with=purjo -- run hello.bpmn
Started: http://localhost:8080/operaton/app/cockpit/default/#/process-instance/36228e79-e97e-11ef-a0ec-52f4bfd829ae/runtime
Serve the project as external task worker:
$ uv run --with=purjo -- serve .
... | DEBUG | ... | Waiting for 1 pending asyncio task: ['My Topic in BPMN:3622b58f-e97e-11ef-a0ec-52f4bfd829ae'].
==============================================================================
Tmpdlb85Jrp
==============================================================================
Tmpdlb85Jrp.Hello
==============================================================================
My Task in Robot | PASS |
------------------------------------------------------------------------------
Tmpdlb85Jrp.Hello | PASS |
1 task, 1 passed, 0 failed
==============================================================================
Tmpdlb85Jrp | PASS |
1 task, 1 passed, 0 failed
==============================================================================
Output: /tmp/nix-shell-49641-0/tmp2721mpez/output.xml
Log: /tmp/nix-shell-49641-0/tmp2721mpez/log.html
Report: /tmp/nix-shell-49641-0/tmp2721mpez/report.html
... | INFO | ... | Completing My Topic in BPMN:3622b58f-e97e-11ef-a0ec-52f4bfd829ae.
More information
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 Distributions
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 purjo-1.0b7-py3-none-any.whl.
File metadata
- Download URL: purjo-1.0b7-py3-none-any.whl
- Upload date:
- Size: 28.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
752dfe812acfe733adfa014232e084a21324f9870869d9e24f4588db1fe73412
|
|
| MD5 |
3762f27dd1cba2bd2746a99d59c78c4e
|
|
| BLAKE2b-256 |
6952473e066e66ecd57a65153fc12a9506b2c55e9ea143b5058e128d0667fcb1
|