idf-ci
A tool designed to streamline CI/CD for ESP-IDF projects, with support for both GitLab CI/CD and GitHub Actions.
Installation
pip install -U idf-ci
Key Features
-
Sensible Defaults
Easy setup with default settings for idf-build-apps and pytest-embedded.
-
Build Management
Build ESP-IDF apps for multiple targets (ESP32, ESP32-S2, ESP32-C3, etc.) with parallel builds and smart filtering based on changed files or test needs.
-
Test Management
Run
pytestwith ESP-IDF configs, including target-specific test discovery and marker filtering. -
GitLab CI/CD Integration
Full pipeline support with artifacts, S3 uploads, and auto-generated jobs for builds and tests.
-
GitHub Actions Integration
Generate test matrix from project settings.
Basic Usage
Initialize Configuration Files
# Create .idf_ci.toml with default idf-ci settings
idf-ci init
# Create .idf_build_apps.toml with default build settings
idf-ci build init
# Create pytest.ini with default test settings
idf-ci test init
Build Apps
# Build all apps
idf-ci build run
# Build apps for a specific target
idf-ci build run -t esp32
# Build only test-related apps
idf-ci build run --only-test-related
# Preview what would be built (dry run)
idf-ci build run --dry-run
Run Tests
We provide a pytest plugin that works with pytest-embedded to run tests with sensible defaults.
# Only collect tests that would run
pytest --collect-only
# Run tests for the esp32 target
pytest --target esp32
Agent skill
For an AI agent using idf-ci in another ESP-IDF project, install the
idf-ci skill. It includes a command map, runnable
examples, environment-variable formats, and safety checks for CI and artifacts.
The agent should still check the installed CLI's --help before running a command.
- Hermes Agent:
hermes skills install espressif/idf-ci/skills/idf-ci - Agents supported by the skills CLI:
npx skills add espressif/idf-ci --skill idf-ci
The skill is self-contained in skills/idf-ci/; it is not automatically loaded
by installing the Python package.
Documentation
For detailed usage and configuration options, please refer to the documentation.
Metadata
Release files for idf-ci 1.4.1
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 | Actions |
|---|---|---|---|---|
| idf_ci-1.4.1.tar.gz | 91.9 kB | With provenance | Details for idf_ci-1.4.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| idf_ci-1.4.1-py3-none-any.whl | Python 3 | none | any | Details for idf_ci-1.4.1-py3-none-any.whl |
Total release size: 168.0 kB
Release files / idf_ci-1.4.1.tar.gz
| Download URL | idf_ci-1.4.1.tar.gz |
|---|---|
| Size | 91.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
af04be96b5825a284efb1a68f0650bbf31502930d44c7b6173826a7baeceec70
|
|
BLAKE2b-256 checksum How to use checksums |
d5368ec8325b917afe3a50959cdceda7580731eb2d5dfd2f5616f403f4976aba
|
| 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 Nov 4, 2026.
Transparency logRelease files / idf_ci-1.4.1-py3-none-any.whl
| Download URL | idf_ci-1.4.1-py3-none-any.whl |
|---|---|
| Size | 76.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6da56782fbfc116aa4d303125461b282eb81776440cb5996df0789e817986cc5
|
|
BLAKE2b-256 checksum How to use checksums |
3c9031316240c00314566c3f1b439e4723cfa93bf4b25e4f92b8db834e830450
|
| 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 Nov 4, 2026.
Transparency logSecurity for idf-ci 1.4.1
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
Both files in this release have been uploaded with provenance metadata.
Attestation for idf_ci-1.4.1.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 Nov 4, 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.