git.delta.rocks / unique-network / refs/commits / 4f3a2095e1df

difftreelog

ci synchronize forkless data/fork

Yaroslav Bolyukin2022-08-18parent: #7f428c4.patch.diff
in: master

6 files changed

modified.docker/Dockerfile-parachain-upgradediffbeforeafterboth
24 rustup show24 rustup show
25RUN rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN25RUN rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN
2626
27
28RUN mkdir /unique_parachain27RUN mkdir /unique_parachain
29WORKDIR /unique_parachain28WORKDIR /unique_parachain
3029
31
32# ===== BUILD current version ======30# ===== BUILD current version ======
33FROM rust-builder as builder-unique-current31FROM rust-builder as builder-unique-current
3432
42RUN git clone $REPO_URL -b $MAINNET_BRANCH . && \40RUN git clone $REPO_URL -b $MAINNET_BRANCH . && \
43 cargo build --features=$FEATURE --$PROFILE41 cargo build --features=$FEATURE --$PROFILE
4442
45
46# ===== BUILD target version ======43# ===== BUILD target version ======
47FROM rust-builder as builder-unique-target44FROM rust-builder as builder-unique-target
4845
77ENV RUNTIME $RUNTIME74ENV RUNTIME $RUNTIME
7875
79RUN apt-get -y update && \76RUN apt-get -y update && \
80 apt-get -y install curl git && \77 apt-get -y install curl git && \
81 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \78 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \
82 export NVM_DIR="$HOME/.nvm" && \79 export NVM_DIR="$HOME/.nvm" && \
83 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \80 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
84 nvm install v16.16.0 && \81 nvm install v16.16.0 && \
85 nvm use v16.16.082 nvm use v16.16.0
8683
87RUN git clone https://github.com/uniquenetwork/polkadot-launch -b feature/runtime-upgrade-testing84RUN git clone https://github.com/uniquenetwork/polkadot-launch -b feature/runtime-upgrade-testing
8885
10097
101COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/98COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/
102COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm /polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm99COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm /polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm
103
104100
105CMD export NVM_DIR="$HOME/.nvm" && \101CMD export NVM_DIR="$HOME/.nvm" && \
106 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \102 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
modified.docker/Dockerfile-parachain-upgrade-datadiffbeforeafterboth
--- a/.docker/Dockerfile-parachain-upgrade-data
+++ b/.docker/Dockerfile-parachain-upgrade-data
@@ -5,7 +5,6 @@
 ARG RUST_TOOLCHAIN=
 
 ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN
-
 ENV CARGO_HOME="/cargo-home"
 ENV PATH="/cargo-home/bin:$PATH"
 ENV TZ=UTC
@@ -28,6 +27,19 @@
 RUN mkdir /unique_parachain
 WORKDIR /unique_parachain
 
+# ===== BUILD current version ======
+FROM rust-builder as builder-unique-current
+
+ARG PROFILE=release
+ARG FEATURE=
+ARG MAINNET_BRANCH=
+ARG REPO_URL=
+
+WORKDIR /unique_parachain
+
+RUN git clone $REPO_URL -b $MAINNET_BRANCH . && \
+    cargo build --features=$FEATURE --$PROFILE
+
 # ===== BUILD target version ======
 FROM rust-builder as builder-unique-target
 
@@ -59,7 +71,7 @@
 RUN mkdir chainql
 WORKDIR /chainql
 
-RUN git clone --depth 1 https://github.com/CertainLach/chainql.git . && \
+RUN git clone -b v0.1.0 --depth 1 https://github.com/CertainLach/chainql.git . && \
     cargo build --release
 
 # ===== RUN ======
@@ -70,14 +82,14 @@
 ENV RUNTIME $RUNTIME
 
 RUN apt-get -y update && \
-      apt-get -y install curl git && \
-      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \
-      export NVM_DIR="$HOME/.nvm" && \
-      [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
-      nvm install v16.16.0 && \
-      nvm use v16.16.0
+    apt-get -y install curl git && \
+    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \
+    export NVM_DIR="$HOME/.nvm" && \
+    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+    nvm install v16.16.0 && \
+    nvm use v16.16.0
 
-RUN git clone https://github.com/uniquenetwork/polkadot-launch -b feature/parachain-forking
+RUN git clone https://github.com/uniquenetwork/polkadot-launch.git -b feature/parachain-forking
 
 RUN export NVM_DIR="$HOME/.nvm" && \
     [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
@@ -87,17 +99,18 @@
 
 RUN echo "$RUNTIME"
 
+COPY --from=builder-unique-current /unique_parachain/target/release/unique-collator /unique-chain/current/release/
 COPY --from=builder-unique-target /unique_parachain/target/release/unique-collator /unique-chain/target/release/
+COPY --from=builder-unique-target /unique_parachain/target/release/wbuild/"$RUNTIME"-runtime/"$RUNTIME"_runtime.compact.compressed.wasm /unique-chain/target/release/wbuild/"$RUNTIME"-runtime/"$RUNTIME"_runtime.compact.compressed.wasm
 
-COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/
+COPY --from=builder-chainql /chainql/target/release/chainql /chainql/target/release/
 
-COPY --from=builder-chainql /chainql/target/release/chainql /chainql/target/release/
+COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/
+COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm /polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm
 
 ARG FORK_FROM=
 ENV FORK_FROM=$FORK_FROM
 CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" FORK_FROM && \
     [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
     cd /polkadot-launch && \
-    yarn start launch-config.json
-
-
+    yarn start launch-config.json --test-upgrade-parachains
modified.docker/docker-compose.tmp-forkless-data.j2diffbeforeafterboth
--- a/.docker/docker-compose.tmp-forkless-data.j2
+++ b/.docker/docker-compose.tmp-forkless-data.j2
@@ -10,6 +10,8 @@
         - "FEATURE={{ FEATURE }}"
         - "RUNTIME={{ RUNTIME }}"
         - "POLKADOT_BUILD_BRANCH={{ POLKADOT_BUILD_BRANCH }}"
+        - "MAINNET_TAG={{ MAINNET_TAG }}"
+        - "MAINNET_BRANCH={{ MAINNET_BRANCH }}"
         - "FORK_FROM={{ FORK_FROM }}"
       context: ../
       dockerfile: .docker/Dockerfile-parachain-upgrade-data
@@ -23,7 +25,11 @@
        - type: bind
          source: ./forkless-config/fork.jsonnet
          target: /polkadot-launch/fork.jsonnet
-         read_only: true          
+         read_only: true
+       - type: bind
+         source: ./forkless-config/typeNames.jsonnet
+         target: /polkadot-launch/typeNames.jsonnet
+         read_only: true
     expose:
       - 9944
       - 9933
@@ -33,4 +39,4 @@
     logging:
       options:
         max-size: "1m"
-        max-file: "3"
\ No newline at end of file
+        max-file: "3"
modified.docker/forkless-config/launch-config-forkless-data.j2diffbeforeafterboth
--- a/.docker/forkless-config/launch-config-forkless-data.j2
+++ b/.docker/forkless-config/launch-config-forkless-data.j2
@@ -1,6 +1,8 @@
 {
       "relaychain": {
         "bin": "/polkadot/target/release/polkadot",
+        "upgradeBin": "/polkadot/target/release/polkadot",
+        "upgradeWasm": "/polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm",
         "chain": "westend-local",
         "nodes": [
             {
@@ -85,6 +87,8 @@
       "parachains": [
         {
             "bin": "/unique-chain/target/release/unique-collator",
+            "upgradeBin": "/unique-chain/target/release/unique-collator",
+            "upgradeWasm": "/unique-chain/target/release/wbuild/{{ FEATURE }}/{{ RUNTIME }}_runtime.compact.compressed.wasm",
             "id": "1000",
             "balance": "1000000000000000000000000",
             "chainRawInitializer": [
modified.envdiffbeforeafterboth
--- a/.env
+++ b/.env
@@ -6,3 +6,7 @@
 
 KUSAMA_MAINNET_BRANCH=release-v0.9.26
 QUARTZ_MAINNET_TAG=quartz-v924012-2
+
+OPAL_FORK_FROM=wss://eu-ws-opal.unique.network:443
+QUARTZ_FORK_FROM=wss://eu-ws-quartz.unique.network:443
+UNIQUE_FORK_FROM=wss://eu-ws.unique.network:443
modified.github/workflows/forkless-update-data.ymldiffbeforeafterboth
--- a/.github/workflows/forkless-update-data.yml
+++ b/.github/workflows/forkless-update-data.yml
@@ -19,37 +19,61 @@
 env:
   REPO_URL: ${{ github.server_url }}/${{ github.repository }}
 
-concurrency: 
+concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: true
 
 # A workflow run is made up of one or more jobs that can run sequentially or in parallel
 jobs:
 
+  prepare-execution-marix:
+
+    name: Prepare execution matrix
+
+    runs-on: self-hosted-ci
+    outputs:
+      matrix: ${{ steps.create_matrix.outputs.matrix }}
+
+    steps:
+
+      - name: Clean Workspace
+        uses: AutoModality/action-clean@v1.1.0
+
+      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+      - uses: actions/checkout@v3
+        with:
+          ref: ${{ github.head_ref }}  #Checking out head commit
+
+      - name: Read .env file
+        uses: xom9ikk/dotenv@v1.0.2
+
+      - name: Create Execution matrix
+        uses: CertainLach/create-matrix-action@v3
+        id: create_matrix
+        with:
+          matrix: |
+            network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, fork_from_address {${{ env.OPAL_FORK_FROM }}}
+            network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, fork_from_address {${{ env.QUARTZ_FORK_FROM }}}
+            network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}, fork_from_address {${{ env.UNIQUE_FORK_FROM }}}
+
+
+
   forkless-update-data:
+    needs: prepare-execution-marix
     # The type of runner that the job will run on
     runs-on: [self-hosted-ci,large]
     timeout-minutes: 1380
 
+
+
     name: ${{ matrix.network }}
 
     continue-on-error: true         #Do not stop testing of matrix runs failed.  As it decided during PR review - it required 50/50& Let's check it with false.
 
     strategy:
       matrix:
-        include:
-          - network: opal
-            features: opal-runtime
-            runtime: opal
-            fork_from_address: wss://eu-ws-opal.unique.network:443
-          - network: quartz
-            features: quartz-runtime
-            runtime: quartz
-            fork_from_address: wss://eu-ws-quartz.unique.network:443
-          - network: unique
-            features: unique-runtime
-            runtime: unique
-            fork_from_address: wss://eu-ws.unique.network:443
+        include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}
+
 
     steps:
       - name: Skip if pull request is in Draft
@@ -91,6 +115,8 @@
             RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
             POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}
             POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}
+            MAINNET_TAG=${{ matrix.mainnet_tag }}
+            MAINNET_BRANCH=${{ matrix.mainnet_branch }}
             FEATURE=${{ matrix.features }}
             RUNTIME=${{ matrix.runtime }}
             BRANCH=${{ github.head_ref }}
@@ -118,33 +144,48 @@
       - name: Check if docker logs consist logs related to Runtime Upgrade testing.
         if: success()
         run: |
-            counter=160
-            function do_docker_logs {
-                docker logs --details parachain-fork  2>&1
-            }
-            function is_started {
-                echo "Check Docker logs"
-                DOCKER_LOGS=$(do_docker_logs)
-                if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then
-                     echo "🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"
-                     return 0
-                     exit 0
+          counter=160
+          function check_container_status {
+                docker inspect -f {{.State.Running}} node-parachain
+          }
+          function do_docker_logs {
+                docker logs --details node-parachain  2>&1
+          }
+          function is_started {
+                if [ "$(check_container_status)" == "true" ]; then
+                        echo "Container: node-parachain RUNNING";
+                        echo "Check Docker logs"
+                        DOCKER_LOGS=$(do_docker_logs)
+                        if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then
+                                echo "🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"
+                                return 0
+                        elif [[ ${DOCKER_LOGS} = *"🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"* ]];then
+                                echo "🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"
+                                return 1
+                        else
+                                echo "Message not found in logs output, repeating..."
+                                return 1
+                        fi
+                else
+                        echo "Container node-parachain not RUNNING"
+                        echo "Halting all future checks"
+                        exit 1
                 fi
-                     echo "Function is_started: Return 1"
-                     return 1
-            }
-            while ! is_started; do
+          exit 0
+          }
+          while ! is_started; do
                 echo "Waiting for special message in log files "
                 sleep 30s
                 counter=$(( $counter - 1 ))
                 echo "Counter: $counter"
                 if [ "$counter" -gt "0" ]; then
-                     continue
+                         continue
                 else
-                     break
+                         break
                 fi
-            done
-            exit 1
+          done
+          echo "Halting script"
+          exit 0
         shell: bash
 
       - name: Collect Docker Logs
@@ -152,10 +193,10 @@
         uses: jwalton/gh-docker-logs@v2.2.0
         with:
           dest: './forkless-parachain-upgrade-data-logs.${{ matrix.features }}'
-          images: 'node-parachain' 
+          images: 'node-parachain'
 
       - name: Show Docker logs
-        run: cat './forkless-parachain-upgrade-data-logs.${{ matrix.features }}/node-parachain.log' 
+        run: cat './forkless-parachain-upgrade-data-logs.${{ matrix.features }}/node-parachain.log'
 
       - name: Stop running containers
         if: always()                   # run this step always