The python library for CI/CD of ESP-IDF projects
Project description
idf-ci
A tool designed to streamline the CI/CD of 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 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 implement a pytest plugin to run tests with sensible defaults with another plugin pytest-embedded
# Only collect tests that would run
pytest --collect-only
# Run tests with target esp32
pytest --target esp32
Documentation
For detailed usage and configuration options, please refer to the documentation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file idf_ci-1.0.0b4.tar.gz.
File metadata
- Download URL: idf_ci-1.0.0b4.tar.gz
- Upload date:
- Size: 67.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8d97af834ee8f6d1a291402ea5fef6bd71cbae9b561196f88f448c4ccc9c662
|
|
| MD5 |
2194128426974d1e53f5800ceb5eebf3
|
|
| BLAKE2b-256 |
98defa60eddedab2a91aeab2158f858c346c17cb09e4c741bc2220cf1030dc5d
|
Provenance
The following attestation bundles were made for idf_ci-1.0.0b4.tar.gz:
Publisher:
publish-to-pypi.yml on espressif/idf-ci
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
idf_ci-1.0.0b4.tar.gz -
Subject digest:
c8d97af834ee8f6d1a291402ea5fef6bd71cbae9b561196f88f448c4ccc9c662 - Sigstore transparency entry: 940451025
- Sigstore integration time:
-
Permalink:
espressif/idf-ci@9271bee7e40f78268266cbf8e6ecf1d60988460e -
Branch / Tag:
refs/tags/v1.0.0b4 - Owner: https://github.com/espressif
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@9271bee7e40f78268266cbf8e6ecf1d60988460e -
Trigger Event:
push
-
Statement type:
File details
Details for the file idf_ci-1.0.0b4-py3-none-any.whl.
File metadata
- Download URL: idf_ci-1.0.0b4-py3-none-any.whl
- Upload date:
- Size: 64.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ea2aa43066fcf015fdc108c30e2f95ff074d40a01c233d57b31505d5a26663c
|
|
| MD5 |
c98452a9b390e975c4ebe12ac834eeff
|
|
| BLAKE2b-256 |
05a02ad2d2ab0ad4dcdfe38909185e48fb711676439ec3df765cc264d132ac96
|
Provenance
The following attestation bundles were made for idf_ci-1.0.0b4-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on espressif/idf-ci
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
idf_ci-1.0.0b4-py3-none-any.whl -
Subject digest:
6ea2aa43066fcf015fdc108c30e2f95ff074d40a01c233d57b31505d5a26663c - Sigstore transparency entry: 940451027
- Sigstore integration time:
-
Permalink:
espressif/idf-ci@9271bee7e40f78268266cbf8e6ecf1d60988460e -
Branch / Tag:
refs/tags/v1.0.0b4 - Owner: https://github.com/espressif
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@9271bee7e40f78268266cbf8e6ecf1d60988460e -
Trigger Event:
push
-
Statement type: