mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-08 14:34:53 -05:00

Allowing to call the check from the test_runner allows for consistent error messages and better UX by having a single test_runner for all checks. This requires the env var to be set for now. The next commit makes the commit range optional.
42 lines
1.7 KiB
Bash
Executable file
42 lines
1.7 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# Copyright (c) 2018-2022 The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
export LC_ALL=C
|
|
|
|
set -ex
|
|
|
|
if [ -n "$CIRRUS_PR" ]; then
|
|
COMMIT_RANGE="HEAD~..HEAD"
|
|
if [ "$(git rev-list -1 HEAD)" != "$(git rev-list -1 --merges HEAD)" ]; then
|
|
echo "Error: The top commit must be a merge commit, usually the remote 'pull/${PR_NUMBER}/merge' branch."
|
|
false
|
|
fi
|
|
else
|
|
# Otherwise, assume that a merge commit exists. This merge commit is assumed
|
|
# to be the base, after which linting will be done. If the merge commit is
|
|
# HEAD, the range will be empty.
|
|
COMMIT_RANGE="$( git rev-list --max-count=1 --merges HEAD )..HEAD"
|
|
fi
|
|
export COMMIT_RANGE
|
|
|
|
echo
|
|
git log --no-merges --oneline "$COMMIT_RANGE"
|
|
echo
|
|
RUST_BACKTRACE=1 "${LINT_RUNNER_PATH}/test_runner"
|
|
|
|
if [ "$CIRRUS_REPO_FULL_NAME" = "bitcoin/bitcoin" ] && [ "$CIRRUS_PR" = "" ] ; then
|
|
# Sanity check only the last few commits to get notified of missing sigs,
|
|
# missing keys, or expired keys. Usually there is only one new merge commit
|
|
# per push on the master branch and a few commits on release branches, so
|
|
# sanity checking only a few (10) commits seems sufficient and cheap.
|
|
git log HEAD~10 -1 --format='%H' > ./contrib/verify-commits/trusted-sha512-root-commit
|
|
git log HEAD~10 -1 --format='%H' > ./contrib/verify-commits/trusted-git-root
|
|
mapfile -t KEYS < contrib/verify-commits/trusted-keys
|
|
git config user.email "ci@ci.ci"
|
|
git config user.name "ci"
|
|
${CI_RETRY_EXE} gpg --keyserver hkps://keys.openpgp.org --recv-keys "${KEYS[@]}" &&
|
|
./contrib/verify-commits/verify-commits.py;
|
|
fi
|