A CI-ready run
Chapter lab: Operations capstone
This chapter works in a prepared project. Download it before the first task; it unpacks into its own folder.
Download ch26-operations-capstone.zip
Or fetch and unpack it from a terminal in VS Code:
curl -fsSLO https://manykarim.github.io/robotframework-essentials-web/labs/ch26-operations-capstone.zip && unzip -q ch26-operations-capstone.zip && rm ch26-operations-capstone.zipInvoke-WebRequest https://manykarim.github.io/robotframework-essentials-web/labs/ch26-operations-capstone.zip -OutFile ch26-operations-capstone.zip; Expand-Archive ch26-operations-capstone.zip -DestinationPath .; Remove-Item ch26-operations-capstone.zipOpen the folder in VS Code with code rfe-ch26-operations-capstone (or File → Open Folder…) and accept the recommended RobotCode and Python extensions. Then set it up:
uv syncpython3 -m venv .venvsource .venv/bin/activatepip install -r requirements.txtpython -m venv .venv.venv\Scripts\Activate.ps1pip install -r requirements.txtKeep the environment active in every terminal where you run lesson commands.
poetry install --no-rootPython 3.13 or newer is required; uv installs it when it is missing.
Open in browserNo setup? Try the lab right here: its files, an editor and a terminal, running in your browser.
What's inside
Directoryrfe-ch26-operations-capstone/
Directory.vscode/
- extensions.json
Directorychecks/
- alpha.robot
- beta.robot
- unformatted.robot
- .gitignore
- .python-version
- LAB.md
- pyproject.toml
- README.md
- requirements.txt
- uv.lock
Put the operations skills together into the shape of a real continuous-integration step: a clean, consistently-formatted suite tree, run in parallel, producing one report. That is what a green pipeline looks like.
You have already met the pieces — Robocop to format, Pabot to parallelise, one
output.xml to report on. Now assemble them.
Task 1 — Make it clean
Section titled “Task 1 — Make it clean”Format the messy suite so the whole tree is consistent:
uv run robocop format checks/unformatted.robotrobocop format checks/unformatted.robotpoetry run robocop format checks/unformatted.robotDone when
checks/unformatted.robot is consistently formatted.
Task 2 — Run it like CI
Section titled “Task 2 — Run it like CI”Run all the clean suites in parallel, into a single report:
uv run pabot --outputdir results checks/alpha.robot checks/beta.robot checks/unformatted.robotpabot --outputdir results checks/alpha.robot checks/beta.robot checks/unformatted.robotpoetry run pabot --outputdir results checks/alpha.robot checks/beta.robot checks/unformatted.robotEvery suite runs at once, into one green report:
Every test from every suite runs concurrently and lands in one
results/output.xml — formatted, fast, and green. Wire exactly this command into
a CI job and you have a working pipeline step.
Done when
the parallel run passes with every test — the operations tier complete.
Check your understanding
Quick recall. Your first answer stays in this browser; the quiz never blocks your progress.
A CI-ready run combines…
The shape of a green pipeline step: consistent formatting, parallel execution, and a single report.
Show the answer
Answer: clean/formatted suites + parallel run + one report — The shape of a green pipeline step: consistent formatting, parallel execution, and a single report.
Why does one
output.xmlmatter for CI?A single output is what a CI job publishes and what
rebot/dashboards consume.Show the answer
Answer: one artifact carries every result for reporting and history — A single output is what a CI job publishes and what
rebot/dashboards consume.
Key terms
- CI-ready runconcept
- Formatted + parallel + one report — a working pipeline step.