A tool designed to streamline CI/CD for ESP-IDF projects, with support for both GitLab CI/CD and GitHub Actions.
pip install -U idf-ci-
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.
# 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 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-runWe 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 esp32For detailed usage and configuration options, please refer to the documentation.