From f6831e91ab574d9e33bf75e9368e8f86a08b8dcb Mon Sep 17 00:00:00 2001 From: Mara Robin B Date: Tue, 19 Jul 2022 17:12:55 +0200 Subject: [PATCH] add `Extrinsic Ordering` check that runs against a local reference node (#5790) * add `Extrinsic Ordering` check that runs against a local reference node * cleanup * use different polkadot base path * check all chains & other review nits * fixup * review nits * do not fail-fast --- ...e-21_extrinsic-ordering-check-from-two.yml | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 .github/workflows/release-21_extrinsic-ordering-check-from-two.yml diff --git a/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml b/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml new file mode 100644 index 000000000000..5d8bfddcfeb2 --- /dev/null +++ b/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml @@ -0,0 +1,98 @@ +# This workflow performs the Extrinsic Ordering Check on demand using two reference binaries + +name: Release - Extrinsic API Check with reference bins +on: + workflow_dispatch: + inputs: + reference_binary_url: + description: A url to a Linux binary for the node containing the reference runtime to test against + default: https://releases.parity.io/polkadot/x86_64-debian:stretch/v0.9.26/polkadot + required: true + binary_url: + description: A url to a Linux binary for the node containing the runtime to test + default: https://releases.parity.io/polkadot/x86_64-debian:stretch/v0.9.27-rc1/polkadot + required: true + +jobs: + check: + name: Run check + runs-on: ubuntu-latest + env: + BIN_URL: ${{github.event.inputs.binary_url}} + REF_URL: ${{github.event.inputs.reference_binary_url}} + strategy: + matrix: + fail-fast: false + chain: [polkadot, kusama, westend, rococo] + + steps: + - name: Checkout sources + uses: actions/checkout@v3 + + - name: Fetch reference binary + run: | + echo Fetching $REF_URL + curl $REF_URL -o polkadot-ref + chmod a+x polkadot-ref + ./polkadot-ref --version + + - name: Fetch test binary + run: | + echo Fetching $BIN_URL + curl $BIN_URL -o polkadot + chmod a+x polkadot + ./polkadot --version + + - name: Start local reference node + run: | + echo Running reference on ${{ matrix.chain }}-local + ./polkadot-ref --chain=${{ matrix.chain }}-local --rpc-port=9934 --ws-port=9945 --base-path=polkadot-ref-base/ & + + - name: Start local test node + run: | + echo Running test on ${{ matrix.chain }}-local + ./polkadot --chain=${{ matrix.chain }}-local & + + - name: Prepare output + run: | + REF_VERSION=$(./polkadot-ref --version) + BIN_VERSION=$(./polkadot --version) + echo "Metadata comparison:" >> output.txt + echo "Date: $(date)" >> output.txt + echo "Ref. binary: $REF_URL" >> output.txt + echo "Test binary: $BIN_URL" >> output.txt + echo "Ref. version: $REF_VERSION" >> output.txt + echo "Test version: $BIN_VERSION" >> output.txt + echo "Chain: ${{ matrix.chain }}-local" >> output.txt + echo "----------------------------------------------------------------------" >> output.txt + + - name: Pull polkadot-js-tools image + run: docker pull jacogr/polkadot-js-tools + + - name: Compare the metadata + run: | + CMD="docker run --pull always --network host jacogr/polkadot-js-tools metadata ws://localhost:9945 ws://localhost:9944" + echo -e "Running:\n$CMD" + $CMD >> output.txt + sed -z -i 's/\n\n/\n/g' output.txt + cat output.txt | egrep -n -i '' + SUMMARY=$(./scripts/ci/github/extrinsic-ordering-filter.sh output.txt) + echo -e $SUMMARY + echo -e $SUMMARY >> output.txt + + - name: Show result + run: | + cat output.txt + + - name: Save output as artifact + uses: actions/upload-artifact@v3 + with: + name: ${{ matrix.chain }} + path: | + output.txt + + - name: Stop our local nodes + run: | + pkill polkadot-ref + pkill polkadot +