Pre-commit Hooks

The idf-ci package provides pre-commit hooks to catch critical issues before code is committed.

Setup

Add the following to your .pre-commit-config.yaml:

repos:
  - repo: https://github.com/espressif/idf-ci
    rev: v0.7.0  # Use the latest version
    hooks:
      - id: check-tests-missing-config

Run manually:

pre-commit run check-tests-missing-config

Available Hooks

check-tests-missing-config

Validates that test cases reference existing sdkconfig files.

What It Checks

The hook scans modified files, collects test cases from their parent directories, and verifies that each test case’s config parameter corresponds to an actual sdkconfig file in the project.

For example, if a test case specifies release config, the hook checks that a file like sdkconfig.ci.release exists.

When It Runs

  • pre-commit: Before each commit

  • pre-merge-commit: Before merge commits

  • manual: When explicitly invoked

Example Output

When the hook detects missing sdkconfig files, it produces output like:

Error: Test cases requiring missing sdkconfig files.

Please make sure the following sdkconfig files exist or update config name in test case parameters.
For more information, refer to documentation: https://docs.espressif.com/projects/idf-build-apps/en/latest/explanations/config_rules.html

./foo
        Sdkconfig file "release" is missing for test cases:
                - test_case_1
                - test_case_2

How to Fix

  • Create the missing sdkconfig file: Ensure that the sdkconfig file referenced in the test case exists in the project. If it doesn’t, create it.

  • Update the test case: Change the config name in the test case to match an existing sdkconfig file.

  • Use default config: Remove the config parameter if no special configuration is needed.

For details on sdkconfig file naming conventions, see the idf-build-apps config rules documentation.