diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0f4f3f7b8a453562d3ef960ccac527cdb17a627d..ff1d2eb14f975548d335b48571c0145be8c715aa 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -436,9 +436,17 @@ build_raw_specs:
     - export FEATURES="--features $RUNTIME --no-default-features"
     - echo "FEATURES = $FEATURES"
     - apt-get update
-    - apt-get install -y clang cmake protobuf-compiler
+    - apt-get install -y clang cmake protobuf-compiler jq
     # 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
     - 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