Build Status
This page explains the different build statuses that apps can have during the build process and what each status means.
Each app in idf-build-apps has a build status that indicates its current state in the build pipeline. Understanding these statuses is crucial for interpreting build results and troubleshooting issues.
Available Statuses
The following build statuses are available:
unknown
The default status when an app is first discovered. The app’s build status has not yet been determined.
This status indicates that:
The app has been found but not yet processed
Further
idf.py reconfigure
is needed to determine if the build can proceed
disabled
The app supports the target architecture, but has been disabled by manifest rules or configuration.
This status indicates that:
The app is compatible with the target but explicitly disabled
Manifest rules contain
disable
clauses that match this app and target combination
Apps with this status will not be built unless specifically included with --include-disabled-apps
.
skipped
The app supports the target and could potentially be built, but has been skipped due to dependency-driven build logic or dry run mode.
This status indicates that:
Dependency-driven build: The app doesn’t depend on any of the modified components/files in the current build
Dry run mode: The
--dry-run
flag was used, so no actual building occurs
Apps with this status will not be built unless specifically included with --include-skipped-apps
.
should be built
The app should be built but hasn’t been built yet.
This status indicates that:
The app has passed all checks and is ready for building
Dependency analysis shows the app should be included in this build
The app has not been built yet in the current run
build failed
The app build process was attempted but failed.
This status indicates that:
The build process started but encountered an error
Compilation, linking, or other build steps failed
The failure reason is typically available in the build comment and build logs
build success
The app was successfully built.
This status indicates that:
All build steps completed without errors
The app binary was generated successfully
The build process finished normally
Status Transition Flow
The typical flow of build statuses is:
unknown → Initial state when app is discovered
unknown → disabled (if app doesn’t support target or is disabled by manifest)
unknown → skipped (if dependency checks show app shouldn’t be built)
unknown → should be built (if app passes all checks)
should be built → build failed (if build encounters errors)
should be built → build success (if build completes successfully)
Note
Apps in disabled
or skipped
status will not transition to should be built
unless the conditions change or specific inclusion flags are used.
Viewing Build Status
You can view the build status of apps in several ways:
JSON output: Use
--json-output
to save detailed status informationBuild logs: Status and comments are included in build output
Summary reports: Final status counts are shown at the end of builds
Including Apps by Status
By default, only apps with unknown
, should be built
, build failed
, and build success
statuses are processed. You can include additional apps using:
--include-disabled-apps
: Include apps withdisabled
status--include-skipped-apps
: Include apps withskipped
status
This is useful for:
Testing disabled apps during development
Force-building apps that would normally be skipped
Comprehensive testing regardless of dependency analysis