diff options
Diffstat (limited to 'tests/git-scripts')
-rw-r--r-- | tests/git-scripts/README.md | 16 | ||||
-rwxr-xr-x | tests/git-scripts/pre-push.sh | 34 |
2 files changed, 50 insertions, 0 deletions
diff --git a/tests/git-scripts/README.md b/tests/git-scripts/README.md new file mode 100644 index 00000000000..23db168c37e --- /dev/null +++ b/tests/git-scripts/README.md @@ -0,0 +1,16 @@ +README for git hooks script +=========================== +git has a way to run scripts, which are invoked by specific git commands. +The git hooks are located in `<Mbed TLS root>/.git/hooks`, and as such are not under version control +for more information, see the [git documentation](https://git-scm.com/docs/githooks). + +The Mbed TLS git hooks are located in `<Mbed TLS root>/tests/git-scripts` directory, and one must create a soft link from `<Mbed TLS root>/.git/hooks` to `<Mbed TLS root>/tests/git-scripts`, in order to make the hook scripts successfully work. + +Example: + +Execute the following command to create a link on Linux from the Mbed TLS `.git/hooks` directory: +`ln -s ../../tests/git-scripts/pre-push.sh pre-push` + +**Note: Currently the Mbed TLS git hooks work only on a GNU platform. If using a non-GNU platform, don't enable these hooks!** + +These scripts can also be used independently. diff --git a/tests/git-scripts/pre-push.sh b/tests/git-scripts/pre-push.sh new file mode 100755 index 00000000000..9192678a5c1 --- /dev/null +++ b/tests/git-scripts/pre-push.sh @@ -0,0 +1,34 @@ +#!/bin/sh +# pre-push.sh +# +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later +# +# Purpose +# +# Called by "git push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# This script can also be used independently, not using git. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# <local ref> <local sha1> <remote ref> <remote sha1> +# + +REMOTE="$1" +URL="$2" + +echo "REMOTE is $REMOTE" +echo "URL is $URL" + +set -eu + +tests/scripts/all.sh -q -k 'check_*' |