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

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.2
File Size Uploaded Provenance Actions
idf_ci-1.4.2.tar.gz 92.2 kB With provenance Details for idf_ci-1.4.2.tar.gz

Built distribution (wheel)

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

Total release size: 168.4 kB

Release files / idf_ci-1.4.2.tar.gz

Download URL idf_ci-1.4.2.tar.gz
Size 92.2 kB
Tags Source
SHA-256 checksum
How to use checksums
e0141f68fa453cceff8e3be97cf8385c5761fffcde0ca912814265d49d2439e2
BLAKE2b-256 checksum
How to use checksums
293468b5d9bdadf13ea5a290b367c44c9fb85404aff382043c98d9f07a20e14d
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 6, 2026.

Transparency log

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

Download URL idf_ci-1.4.2-py3-none-any.whl
Size 76.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6b3afe2a9a4ee19b91d5c5ebc0d4a9c295baaf5abd202930c3c61dc9fbcd4cd5
BLAKE2b-256 checksum
How to use checksums
3a6246d4c3e6877aac87e9222c5811dd6854f113a834160a95da10ef3a43ba8f
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 6, 2026.

Transparency log

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

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

Select from 2 files

Attestation for idf_ci-1.4.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 Nov 6, 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.2 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