Skip to main content

idf-ci

Documentation Status Python 3.7+

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 pytest with 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.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 idf-ci 1.4.0
File Size Uploaded Provenance Actions
idf_ci-1.4.0.tar.gz 91.2 kB With provenance Details for idf_ci-1.4.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for idf-ci 1.4.0
File Interpreter ABI Platform Actions
idf_ci-1.4.0-py3-none-any.whl Python 3 none any Details for idf_ci-1.4.0-py3-none-any.whl

Total release size: 166.9 kB

Release files / idf_ci-1.4.0.tar.gz

Download URL idf_ci-1.4.0.tar.gz
Size 91.2 kB
Tags Source
SHA-256 checksum
How to use checksums
bc3115ad9003bde6eb34915c286f2b34e6ba640278181ed1f1c5871cc3d19514
BLAKE2b-256 checksum
How to use checksums
8f437f603a7a27245d2c77a4b01fb07c0ded3fd9561433b33b5852680c5d840d
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 log

Release files / idf_ci-1.4.0-py3-none-any.whl

Download URL idf_ci-1.4.0-py3-none-any.whl
Size 75.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
73d7e7be17b1169a68f3af3597e32ef4f710b220b58238d5dd261af9bac9d32b
BLAKE2b-256 checksum
How to use checksums
e46a5db7e25da998afb132b48a0db7e6e1fd90cd3718a69dc326b55eafefacb1
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 log

Security for idf-ci 1.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

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for idf_ci-1.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 Nov 4, 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.

Release history Release notifications | RSS feed

This release

1.4.0 This release

2 release files Full provenance

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