CI-esta: make GitHub Actions faster, with evidence
See what holds up your PR, avoid repeating validated work, and run the remaining tests efficiently. CI-esta adds reports, environment caching, reusable execution evidence and test scheduling to your existing GitHub Actions workflows. No account, hosted service or application-language change is required.
Choose your first improvement
| Your problem | What you gain | Start here |
|---|---|---|
| You need to show whether an optimization helped | Verified before/after gate, runner and step comparisons tied to exact source runs | Measured impact |
| You cannot tell what keeps a PR waiting | A sticky report with gate latency, dependency critical path, step timings and runner usage | Report one workflow |
| Jobs reinstall the same dependencies | A validated environment restore that repairs broken caches and always synchronizes the lock | Replace your setup steps |
| Unaffected tests start expensive services | Python file or whole-job selection before setup, with explanations | Add pytest-selective |
| A new revision repeats work that already passed | Reuse a matching completed lane, including a passing lane from a workflow where another lane failed | Evidence reuse |
| One test shard keeps everyone waiting | Learn file costs from JUnit; balance work inside one larger runner, across runners, or both | Runnable shard recipe |
| Missing shard results could look green | Verify completion receipts and require every planned pool before passing the gate | Completion and gates |
| Tests hang or use less CPU than expected | Process/thread diagnostics, cgroup limits and live shard progress | Runner diagnostics |
Start with one action
In an existing uv test job, keep checkout and your test command. Replace Python setup, uv setup and dependency installation with:
- uses: actions/checkout@v7
- uses: gigaverse-app/ci-esta/actions/setup-cached-uv@v1
with:
python-version: '3.12'
sync-args: '--group test'
- run: uv run --no-sync pytest
Use your project's interpreter and dependency groups. Every action lives under
actions/NAME. Use gigaverse-app/ci-esta/actions/ci-observability@v1 for reports.
Use actions/NAME@v1 for automatic Actions API upgrades. That alias is
independent of Python package versions. Older .github/actions/NAME and top-level
named callers must migrate to actions/NAME; each action has one implementation.
Action API and versioning.
Copy the complete reporting or cache workflow. The actions
set up their own tools; using them does not require adding CI-esta to your app.
For Python execution commands and plugins, install ci-esta[pytest] in the test
environment. Reporting and evidence actions also work with non-Python projects;
Bun users have a native selection adapter.
Give your agent a concrete task
Read https://raw.githubusercontent.com/gigaverse-app/ci-esta/main/skills/ci-esta/SKILL.md
Measure a completed CI run and improve its largest avoidable cost. Use the public
action entry points and tested quickstart examples. Compare one large runner with
multiple runners if tests dominate. Keep required checks and full-suite coverage,
and show the workflow changes, test inventory, elapsed time and runner usage.
Install or update the portable skill. The skill, README and quickstart use the same recipes. Updating the Python package does not update an installed agent skill.
Results you can inspect
| Change | Observed result | Evidence |
|---|---|---|
| Route a README change with pytest-selective | 627 → 48 runner-seconds; 211 → 26 seconds elapsed | Matched selection runs |
| Optimize a full conformance suite's execution | Required gate 538 → 282 seconds, retaining all 982 integration cases per variant and validators | Full execution comparison |
| Remove Windows Git startup overhead | Full gate 249 → 185 seconds with existing cases, platform matrix and coverage retained | Fresh control and raw reports |
These are scenario-specific observations. Selection savings belong to pytest-selective and the consumer's declared inputs; they are not receipt-reuse savings. Runner-seconds are summed execution, not a billing invoice. Measure your own cold/warm setup, full/selected runs and runner layouts before claiming a gain.
How the safeguards fit
A duration estimate changes where a test runs, never whether it belongs in the plan. An environment cache accelerates setup; locked synchronization still runs. A completion receipt can justify reusing the same declared work, but an old green workflow alone cannot. Missing or contradictory proof executes the work again. Explicit reruns and scheduled full checks retain their meaning.
Input declarations, service isolation and conformance requirements belong to your project. Evidence reuse and strict gates explain these boundaries. The optimization guide connects selection, timing feedback, execution and measurement in order.
Further documentation
- Public actions and full toolkit catalog
- Critical path and slack, cost reporting, and environment caching
- Learned timings, runner pools, and Python CI tuning
- Integrations, alternatives, and revision-bound adoption audit
- Contributing, releases, and source provenance
Install the standalone CLI with pip install ci-esta.
Base reporting needs Python 3.11+ and neither pytest nor pytest-selective.
Use ci-esta[selection] for Python selection reports or ci-esta[pytest] for
pytest execution tools. Before 1.0, review each minor release's migration notes.
Metadata
Release files for ci-esta 1.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ci_esta-1.1.2.tar.gz | 831.0 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ci_esta-1.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / ci_esta-1.1.2.tar.gz
| Download URL | ci_esta-1.1.2.tar.gz |
|---|---|
| Size | 831.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c712ec58bd43419049f95001a5c8de8a2d0c8df41197ca555acb071d77f1d144
|
|
BLAKE2b-256 checksum How to use checksums |
832e09ec659ea351cbeff84eb6556741dc676453f27d6813447068dac030c411
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / ci_esta-1.1.2-py3-none-any.whl
| Download URL | ci_esta-1.1.2-py3-none-any.whl |
|---|---|
| Size | 266.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
18cb2f148607bc7e3b25cae9a247dcea3ee33614e6b2abcf00a1ba70859a53b9
|
|
BLAKE2b-256 checksum How to use checksums |
2c30b7efec810de772dbbd232e28e0543db969055957ed2a843ca6125c9728a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logSecurity for ci-esta 1.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for ci_esta-1.1.2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.