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/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. The root action, gigaverse-app/ci-esta@v1, produces the report; individual actions share the actions/ directory, such as /actions/setup-cached-uv and /actions/plan-runner-pools.

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

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.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 1.1.0
File Size Uploaded Provenance
ci_esta-1.1.0.tar.gz 832.9 kB With provenance Details

Built distribution (wheel)

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

Total release size: 1.1 MB

Release files / ci_esta-1.1.0.tar.gz

Download URL ci_esta-1.1.0.tar.gz
Size 832.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0d899f3430614c963dcf4d0ae95a1f55fdf21add38711c033a4dd81d14c1b950
BLAKE2b-256 checksum
How to use checksums
6cf07b93697283bd95b92948ee82b2db481c7123c0a8ef9bff96d71d05e9fc71
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-1.1.0-py3-none-any.whl

Download URL ci_esta-1.1.0-py3-none-any.whl
Size 266.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3ed1e97496044aa605dfdb83857320ecc97b36973e09a9ee031097539e1aef9b
BLAKE2b-256 checksum
How to use checksums
41ef9fd0a287de227a784ed4f6bae6ecba7a372c44440f9697b80566435eb774
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 1.1.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-1.1.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