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

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.1
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)

Table of built distributions (wheels) for idf-ci 1.4.1
File Interpreter ABI Platform Actions
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 log

Release 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 log

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

Select from 2 files

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