diff --git a/contrib/source-control-tools/automated-commits.sh b/contrib/source-control-tools/automated-commits.sh index d29ce538c..e7153e98d 100755 --- a/contrib/source-control-tools/automated-commits.sh +++ b/contrib/source-control-tools/automated-commits.sh @@ -1,210 +1,189 @@ #!/usr/bin/env bash # Note: Any bot running this script must have the appropriate permissions to # push commits upstream. When running locally, this script will git push in a # dry run by default. export LC_ALL=C.UTF-8 set -euxo pipefail help_message() { cat < "${RELEASE_NOTES_FILE}" git add "${RELEASE_NOTES_FILE}" "${RELEASE_NOTES_ARCHIVE}" git commit -m "${BOT_PREFIX} Archive release notes for version ${RELEASE_NOTES_VERSION}" ;; - update-chainparams) - CHAINPARAMS_SCRIPTS_DIR="${DEVTOOLS_DIR}"/chainparams - - # Assumes bitcoind instances are already running on mainnet and testnet - pushd "${CHAINPARAMS_SCRIPTS_DIR}" - CHAINPARAMS_MAINNET_TXT="chainparams_main.txt" - ./make_chainparams.py > "${CHAINPARAMS_MAINNET_TXT}" - git add "${CHAINPARAMS_MAINNET_TXT}" - - CHAINPARAMS_TESTNET_TXT="chainparams_test.txt" - ./make_chainparams.py -a 127.0.0.1:18332 > "${CHAINPARAMS_TESTNET_TXT}" - git add "${CHAINPARAMS_TESTNET_TXT}" - - CHAINPARAMS_CONSTANTS="${TOPLEVEL}"/src/chainparamsconstants.h - ./generate_chainparams_constants.py . > "${CHAINPARAMS_CONSTANTS}" - git add "${CHAINPARAMS_CONSTANTS}" - popd - - git commit -m "${BOT_PREFIX} Update chainparams" - ;; - update-seeds) # Assumes seeder instances are already running on mainnet and testnet pushd "${TOPLEVEL}"/contrib/seeds : "${SEEDS_MAIN:=seeds_main.txt}" ./makeseeds.py < "${SEEDS_MAIN}" > nodes_main.txt git add nodes_main.txt : "${SEEDS_TEST:=seeds_test.txt}" ./makeseeds.py < "${SEEDS_TEST}" > nodes_test.txt git add nodes_test.txt SEEDS_HEADER="${TOPLEVEL}"/src/chainparamsseeds.h ./generate-seeds.py . > "${SEEDS_HEADER}" git add "${SEEDS_HEADER}" popd # Check that seeds have good connectivity "${DEVTOOLS_DIR}"/build_cmake.sh SEEDS_DIR="${TOPLEVEL}"/contrib/seeds RPC_PORT=18832 "${SEEDS_DIR}"/check-seeds.sh main 80 RPC_PORT=18833 "${SEEDS_DIR}"/check-seeds.sh test 70 git commit -m "${BOT_PREFIX} Update seeds" ;; update-timings) "${DEVTOOLS_DIR}"/build_cmake.sh pushd "${BUILD_DIR}" ninja check-functional-extended TIMING_SRC_FILE="${TOPLEVEL}"/test/functional/timing.json mv timing.json "${TIMING_SRC_FILE}" popd # Check that all tests are included in timing.json pushd "${TOPLEVEL}"/test/functional NON_TESTS=$(python3 -c 'from test_runner import NON_SCRIPTS; print(" ".join(NON_SCRIPTS))') export NON_TESTS check_missing() { # Exclude non-tests from the check if [[ "${NON_TESTS}" =~ $1 ]]; then exit 0 fi if ! grep -q $1 timing.json ; then echo "Error: Test file '$1' is missing from timing.json" exit 1 fi } export -f check_missing find . -maxdepth 1 -name '*.py' | cut -c 3- | xargs -I'{}' -n1 bash -c 'check_missing {}' popd git add "${TIMING_SRC_FILE}" git commit -m "${BOT_PREFIX} Update timing.json" ;; *) if [ -z "${SCRIPT}" ]; then echo "Error: Invalid commit name '${COMMIT_TYPE}'" exit 10 fi if [ ! -f "${SCRIPT}" ]; then echo "Error: '${SCRIPT}' does not exist" exit 10 fi "${SCRIPT}" "${SCRIPT_ARGS[@]}" ;; esac # Bail early if there's nothing to land if [ "$(git rev-parse HEAD)" == "${OLD_HEAD}" ]; then echo "No new changes. Nothing to do." exit 0 fi # Land the generated commit "${TOPLEVEL}"/contrib/source-control-tools/land-patch.sh "${LAND_PATCH_ARGS[@]}" diff --git a/contrib/source-control-tools/patch-recipes/update-chainparams.sh b/contrib/source-control-tools/patch-recipes/update-chainparams.sh new file mode 100755 index 000000000..ef910e7ae --- /dev/null +++ b/contrib/source-control-tools/patch-recipes/update-chainparams.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +export LC_ALL=C.UTF-8 + +set -euxo pipefail + +TOPLEVEL=$(git rev-parse --show-toplevel) +CHAINPARAMS_SCRIPTS_DIR="${TOPLEVEL}"/contrib/devtools/chainparams + +# Assumes bitcoind instances are already running on mainnet and testnet +pushd "${CHAINPARAMS_SCRIPTS_DIR}" +CHAINPARAMS_MAINNET_TXT="chainparams_main.txt" +./make_chainparams.py > "${CHAINPARAMS_MAINNET_TXT}" +git add "${CHAINPARAMS_MAINNET_TXT}" + +CHAINPARAMS_TESTNET_TXT="chainparams_test.txt" +./make_chainparams.py -a 127.0.0.1:18332 > "${CHAINPARAMS_TESTNET_TXT}" +git add "${CHAINPARAMS_TESTNET_TXT}" + +CHAINPARAMS_CONSTANTS="${TOPLEVEL}"/src/chainparamsconstants.h +./generate_chainparams_constants.py . > "${CHAINPARAMS_CONSTANTS}" +git add "${CHAINPARAMS_CONSTANTS}" +popd + +git commit -m "[Automated] Update chainparams"