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:

  1. unknown → Initial state when app is discovered

  2. unknowndisabled (if app doesn’t support target or is disabled by manifest)

  3. unknownskipped (if dependency checks show app shouldn’t be built)

  4. unknownshould be built (if app passes all checks)

  5. should be builtbuild failed (if build encounters errors)

  6. should be builtbuild 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 information

  • Build 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 with disabled status

  • --include-skipped-apps: Include apps with skipped status

This is useful for:

  • Testing disabled apps during development

  • Force-building apps that would normally be skipped

  • Comprehensive testing regardless of dependency analysis