mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 00:37:57 +00:00
631a5db536
* Move CI scripts and update references * Update paths in .gitlab-ci.yml * Removed outdated entries from CODEOWNERS
83 lines
2.3 KiB
Bash
Executable File
83 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
# Include the common functions library
|
|
#shellcheck source=../common/lib.sh
|
|
. "$(dirname "${0}")/../common/lib.sh"
|
|
|
|
HEAD_BIN=./artifacts/polkadot
|
|
HEAD_WS=ws://localhost:9944
|
|
RELEASE_WS=ws://localhost:9945
|
|
|
|
runtimes=(
|
|
"westend"
|
|
"kusama"
|
|
"polkadot"
|
|
)
|
|
|
|
# First we fetch the latest released binary
|
|
latest_release=$(latest_release 'paritytech/polkadot')
|
|
RELEASE_BIN="./polkadot-$latest_release"
|
|
echo "[+] Fetching binary for Polkadot version $latest_release"
|
|
curl -L "https://github.com/paritytech/polkadot/releases/download/$latest_release/polkadot" > "$RELEASE_BIN" || exit 1
|
|
chmod +x "$RELEASE_BIN"
|
|
|
|
|
|
for RUNTIME in "${runtimes[@]}"; do
|
|
echo "[+] Checking runtime: ${RUNTIME}"
|
|
|
|
release_transaction_version=$(
|
|
git show "origin/release:runtime/${RUNTIME}/src/lib.rs" | \
|
|
grep 'transaction_version'
|
|
)
|
|
|
|
current_transaction_version=$(
|
|
grep 'transaction_version' "./runtime/${RUNTIME}/src/lib.rs"
|
|
)
|
|
|
|
echo "[+] Release: ${release_transaction_version}"
|
|
echo "[+] Ours: ${current_transaction_version}"
|
|
|
|
if [ ! "$release_transaction_version" = "$current_transaction_version" ]; then
|
|
echo "[+] Transaction version for ${RUNTIME} has been bumped since last release."
|
|
exit 0
|
|
fi
|
|
|
|
# Start running the nodes in the background
|
|
$HEAD_BIN --chain="$RUNTIME-local" --tmp &
|
|
$RELEASE_BIN --chain="$RUNTIME-local" --ws-port 9945 --tmp &
|
|
jobs
|
|
|
|
# Sleep a little to allow the nodes to spin up and start listening
|
|
TIMEOUT=5
|
|
for i in $(seq $TIMEOUT); do
|
|
sleep 1
|
|
if [ "$(lsof -nP -iTCP -sTCP:LISTEN | grep -c '994[45]')" == 2 ]; then
|
|
echo "[+] Both nodes listening"
|
|
break
|
|
fi
|
|
if [ "$i" == $TIMEOUT ]; then
|
|
echo "[!] Both nodes not listening after $i seconds. Exiting"
|
|
exit 1
|
|
fi
|
|
done
|
|
sleep 5
|
|
|
|
changed_extrinsics=$(
|
|
polkadot-js-metadata-cmp "$RELEASE_WS" "$HEAD_WS" \
|
|
| sed 's/^ \+//g' | grep -e 'idx: [0-9]\+ -> [0-9]\+' || true
|
|
)
|
|
|
|
if [ -n "$changed_extrinsics" ]; then
|
|
echo "[!] Extrinsics indexing/ordering has changed in the ${RUNTIME} runtime! If this change is intentional, please bump transaction_version in lib.rs. Changed extrinsics:"
|
|
echo "$changed_extrinsics"
|
|
exit 1
|
|
fi
|
|
|
|
echo "[+] No change in extrinsics ordering for the ${RUNTIME} runtime"
|
|
jobs -p | xargs kill; sleep 5
|
|
done
|
|
|
|
# Sleep a little to let the jobs die properly
|
|
sleep 5
|