Skip to content
Snippets Groups Projects

Resolve "`--chain=<file>` should allow to redefine the client specs"

+ 12
4
@@ -24,7 +24,7 @@ workflow:
@@ -24,7 +24,7 @@ workflow:
- Cargo.lock
- Cargo.lock
.is_network_branch: &is_network_branch
.is_network_branch: &is_network_branch
if: $CI_PIPELINE_SOURCE != "merge_request_event" && $CI_COMMIT_BRANCH =~ /^(network\/).+/
if: $CI_PIPELINE_SOURCE != "merge_request_event" && $CI_COMMIT_BRANCH =~ /^(278-chain-file).+/
.is_runtime_branch: &is_runtime_branch
.is_runtime_branch: &is_runtime_branch
if: $CI_PIPELINE_SOURCE != "merge_request_event" && $CI_COMMIT_BRANCH =~ /^(runtime\/).+/
if: $CI_PIPELINE_SOURCE != "merge_request_event" && $CI_COMMIT_BRANCH =~ /^(runtime\/).+/
@@ -180,7 +180,7 @@ tests:
@@ -180,7 +180,7 @@ tests:
- cargo cucumber
- cargo cucumber
.network_branch_vars: &define_network_branch_vars
.network_branch_vars: &define_network_branch_vars
- export NETWORK=$(echo $CI_COMMIT_BRANCH | sed -e "s/network\///g")
- export NETWORK=gdev-800
- echo "NETWORK = $NETWORK"
- echo "NETWORK = $NETWORK"
- export RUNTIME=$(echo $NETWORK | grep -Po "gdev|gtest|g1")
- export RUNTIME=$(echo $NETWORK | grep -Po "gdev|gtest|g1")
- echo "RUNTIME = $RUNTIME"
- echo "RUNTIME = $RUNTIME"
@@ -436,9 +436,17 @@ build_raw_specs:
@@ -436,9 +436,17 @@ build_raw_specs:
- export FEATURES="--features $RUNTIME --no-default-features"
- export FEATURES="--features $RUNTIME --no-default-features"
- echo "FEATURES = $FEATURES"
- echo "FEATURES = $FEATURES"
- apt-get update
- apt-get update
- apt-get install -y clang cmake protobuf-compiler
- apt-get install -y clang cmake protobuf-compiler jq
# Print chainspec to file
# Print chainspec to file
- cargo xtask print-spec $NETWORK_RELEASE > ${RUNTIME}.json
- cargo xtask print-spec $NETWORK_RELEASE > ${RUNTIME}-printed.json
 
# Merge client specs into chainspec file (to update bootnodes for example)
 
# 1. Download yq to create a json client spec file
 
- wget https://github.com/mikefarah/yq/releases/download/v4.44.6/yq_linux_arm64 -O yq
 
- chmod +x ./yq
 
# 2. YML -> JSON for the client specs
 
- cat node/specs/${RUNTIME}_client-specs.yaml | ./yq --output-format json > node/specs/${RUNTIME}_client-specs.json
 
# 3. Merge the client spec file into chainspec file and create the final spec file (e.g. gdev.json)
 
- jq -s '.[0] * .[1]' node/specs/${RUNTIME}_client-specs.json ${RUNTIME}-printed.json > ${RUNTIME}.json
# Produce raw spec file
# Produce raw spec file
- mkdir -p $CI_PROJECT_DIR/release
- mkdir -p $CI_PROJECT_DIR/release
- cargo run -Zgit=shallow-deps ${FEATURES} -- build-spec --chain=${RUNTIME}.json --disable-default-bootnode --raw > $RELEASE_FILE_RAW_SPEC
- cargo run -Zgit=shallow-deps ${FEATURES} -- build-spec --chain=${RUNTIME}.json --disable-default-bootnode --raw > $RELEASE_FILE_RAW_SPEC
Loading