Git Hooks

This directory is aimed at providing code snippets which can be inserted to developer’s git hooks, and allow them to run the Static Check Framework before pushing a patch.

For full description and capabilities, please refer to the official documentation for Git SCM Hooks .

Adding a hook

To use a specific hook, please manually copy the snippet to the file with matching name, located at

TF-M-ROOT/.git/hooks/{HOOK_FILENAME}

Pre-Push

Enabling SCF requires adding the snippet on the pre-push hook. This is so that the check can be performed BEFORE a developer pushes a new patch to Gerrit and ONLY IF requested by the user.

With the aim of making the functionality unintrusive, the following environment variables are required.

  • SCF_ORG: To set the Organisation for the purposes of Header/Copyright check.

  • SCF_ENABLE: To enable checking before pushing a patch.

_If not set SCF_ORG defaults to ‘arm’_

Custom directory paths

By default the reference code assumes the standard directory structure for TF-M and dependencies.

└── dev-dir
    ├── tf-m
    ├── tf-m-tools

The user can override this by setting the TFM_ROOT_PATH, SCF_TEST_PATH, SCF_TEST_APP environment variables, to match his needs.

Using SCP

Assuming the developer has already set-up trusted-firmware-m and tf-m-tools and has already copied the snippet over to <TF-M-ROOT>/.git/hooks/pre-push

cd <TF-M-ROOT>
env SCF_ENABLE=1 git push origin HEAD:refs/for/master

Copyright (c) 2021, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-3-Clause