Skip to main content

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.

CI PyPI Apache-2.0

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/setup-cached-uv@main
  with:
    python-version: '3.12'
    sync-args: '--group test'
- run: uv run --no-sync pytest

Use your project's interpreter and dependency groups. The root action, gigaverse-app/ci-esta@main, produces the report; named actions use short paths such as /setup-cached-uv and /plan-runner-pools.

Public-path availability: these entry points are new on main. Existing releases through v0.3.0 predate them. Until the next release publishes them, pin a reviewed commit containing action.yml, or use @main to evaluate them. Then use that release's compatible tag or immutable SHA. Existing .github/actions/... entry points remain compatible. 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

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 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ci-esta 0.4.0
File Size Uploaded Provenance
ci_esta-0.4.0.tar.gz 834.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ci-esta 0.4.0
File Interpreter ABI Platform
ci_esta-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / ci_esta-0.4.0.tar.gz

Download URL ci_esta-0.4.0.tar.gz
Size 834.7 kB
Tags Source
SHA-256 checksum
How to use checksums
393820ad962392fb165585f7bd348d5bef56b5594d7a390f9c06edb35da3566f
BLAKE2b-256 checksum
How to use checksums
effb2f91b58bd7f629aeaa4c5385bd4404e8a72fbfef45bdba8256572b2d42fd
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 log

Release files / ci_esta-0.4.0-py3-none-any.whl

Download URL ci_esta-0.4.0-py3-none-any.whl
Size 256.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8d3353725573b80ed8e06b756fd525cd906dc5e2c48f35c92c90f693795f86f2
BLAKE2b-256 checksum
How to use checksums
202cd41fdbba59c5acd34036c11938eb61c2b0684b5842c456f2d5cc5242d9a9
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 log

Security for ci-esta 0.4.0

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.

Select from 2 files

Attestation for ci_esta-0.4.0.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 log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page