Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

add Extrinsic Ordering check that runs against a local reference node #5790

Merged
merged 7 commits into from
Jul 19, 2022
Merged
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# 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:
chain: [polkadot, kusama, westend, rococo]
coderobe marked this conversation as resolved.
Show resolved Hide resolved

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