ソースを参照

run network test with chain-spec-builder generated chain

Mokhtar Naamani 4 年 前
コミット
0559499a55
2 ファイル変更53 行追加3 行削除
  1. 1 3
      .github/workflows/run-network-tests.yml
  2. 52 0
      tests/network-tests/run-tests.sh

+ 1 - 3
.github/workflows/run-network-tests.yml

@@ -90,10 +90,8 @@ jobs:
         run: yarn install --frozen-lockfile
       - name: Ensure tests are runnable
         run: yarn workspace network-tests build
-      - name: Start chain
-        run: docker-compose up -d
       - name: Execute network tests
-        run: yarn workspace network-tests test
+        run: tests/network-tests/run-tests.sh
 
   network_tests_2:
     name: Query Node Tests (Placeholder)

+ 52 - 0
tests/network-tests/run-tests.sh

@@ -0,0 +1,52 @@
+#!/usr/bin/env bash
+set -e
+
+# Location that will be mounted as the /data volume in containers
+# This is how we access the initial members and balances files from
+# the containers and where generated chainspec files will be located.
+DATA_PATH=${DATA_PATH:=~/tmp}
+ALICE_INITIAL_BALANCE=${ALICE_INITIAL_BALANCE:=100000000}
+
+mkdir -p ${DATA_PATH}
+
+# Alice is the source of funds for all new members that are created in the tests.
+echo "{
+  \"balances\":[
+    [\"5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY\", ${ALICE_INITIAL_BALANCE}]
+  ]
+}" > ${DATA_PATH}/initial-balances.json
+
+# Make Alice a member
+echo '
+  [{
+    "member_id":0,
+    "root_account":"5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",
+    "controller_account":"5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",
+    "handle":"alice",
+    "avatar_uri":"https://alice.com/avatar.png",
+    "about":"Alice",
+    "registered_at_time":0
+  }]
+' > ${DATA_PATH}/initial-members.json
+
+# Create a chain spec file
+docker run -v ${DATA_PATH}:/data --entrypoint ./chain-spec-builder joystream/node \
+  new \
+  --authority-seeds Alice \
+  --sudo-account  5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY \
+  --deployment dev \
+  --chain-spec-path /data/chain-spec.json \
+  --initial-balances-path /data/initial-balances.json \
+  --initial-members-path /data/initial-members.json
+
+# Convert the chain spec file to a raw chainspec file
+docker run -v ${DATA_PATH}:/data joystream/node build-spec \
+  --raw --disable-default-bootnode \
+  --chain /data/chain-spec.json > ~/tmp/chain-spec-raw.json
+
+# Start a chain with generated chain spec
+docker run -v ${DATA_PATH}:/data -d -p 9944:9944 joystream/node \
+  --validator --alice --unsafe-ws-external --rpc-cors=all --log runtime \
+  --chain /data/chain-spec-raw.json
+
+yarn workspace network-tests test