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
--- a/.docker/Dockerfile-parachain-upgrade
+++ b/.docker/Dockerfile-parachain-upgrade
@@ -24,10 +24,8 @@
     rustup show
 RUN rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN
 
-
 RUN mkdir /unique_parachain
 WORKDIR /unique_parachain
-
 
 # ===== BUILD current version ======
 FROM rust-builder as builder-unique-current
@@ -42,7 +40,6 @@
 RUN git clone $REPO_URL -b $MAINNET_BRANCH . && \
     cargo build --features=$FEATURE --$PROFILE
 
-
 # ===== BUILD target version ======
 FROM rust-builder as builder-unique-target
 
@@ -77,12 +74,12 @@
 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/runtime-upgrade-testing
 
@@ -100,7 +97,6 @@
 
 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
-				      
 
 CMD export NVM_DIR="$HOME/.nvm" && \
     [ -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
before · .github/workflows/forkless-update-data.yml
1name: upgrade replica23# Controls when the action will run.4on:5 # Triggers the workflow on push or pull request events but only for the master branch6  pull_request:7    branches:8      - master9    types:10      - opened11      - reopened12      - synchronize   #commit(s) pushed to the pull request13      - ready_for_review1415  # Allows you to run this workflow manually from the Actions tab16  workflow_dispatch:1718#Define Workflow variables19env:20  REPO_URL: ${{ github.server_url }}/${{ github.repository }}2122concurrency: 23  group: ${{ github.workflow }}-${{ github.ref }}24  cancel-in-progress: true2526# A workflow run is made up of one or more jobs that can run sequentially or in parallel27jobs:2829  forkless-update-data:30    # The type of runner that the job will run on31    runs-on: [self-hosted-ci,large]32    timeout-minutes: 13803334    name: ${{ matrix.network }}3536    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.3738    strategy:39      matrix:40        include:41          - network: opal42            features: opal-runtime43            runtime: opal44            fork_from_address: wss://eu-ws-opal.unique.network:44345          - network: quartz46            features: quartz-runtime47            runtime: quartz48            fork_from_address: wss://eu-ws-quartz.unique.network:44349          - network: unique50            features: unique-runtime51            runtime: unique52            fork_from_address: wss://eu-ws.unique.network:4435354    steps:55      - name: Skip if pull request is in Draft56        # `if: github.event.pull_request.draft == true` should be kept here, at57        # the step level, rather than at the job level. The latter is not58        # recommended because when the PR is moved from "Draft" to "Ready to59        # review" the workflow will immediately be passing (since it was skipped),60        # even though it hasn't actually ran, since it takes a few seconds for61        # the workflow to start. This is also disclosed in:62        # https://github.community/t/dont-run-actions-on-draft-pull-requests/16817/1763        # That scenario would open an opportunity for the check to be bypassed:64        # 1. Get your PR approved65        # 2. Move it to Draft66        # 3. Push whatever commits you want67        # 4. Move it to "Ready for review"; now the workflow is passing (it was68        #    skipped) and "Check reviews" is also passing (it won't be updated69        #    until the workflow is finished)70        if: github.event.pull_request.draft == true71        run: exit 17273      - name: Clean Workspace74        uses: AutoModality/action-clean@v1.1.07576      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it77      - uses: actions/checkout@v378        with:79          ref: ${{ github.head_ref }}  #Checking out head commit8081      - name: Read .env file82        uses: xom9ikk/dotenv@v1.0.28384      - name: Generate ENV related extend file for docker-compose85        uses: cuchi/jinja2-action@v1.2.086        with:87          template: .docker/docker-compose.tmp-forkless-data.j288          output_file: .docker/docker-compose.${{ matrix.network }}.yml89          variables: |90            REPO_URL=${{ github.server_url }}/${{ github.repository }}.git91            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}92            POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}93            POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}94            FEATURE=${{ matrix.features }}95            RUNTIME=${{ matrix.runtime }}96            BRANCH=${{ github.head_ref }}97            FORK_FROM=${{ matrix.fork_from_address }}9899      - name: Show build configuration100        run: cat .docker/docker-compose.${{ matrix.network }}.yml101102      - name: Generate launch-config-forkless-data.json103        uses: cuchi/jinja2-action@v1.2.0104        with:105          template: .docker/forkless-config/launch-config-forkless-data.j2106          output_file: .docker/launch-config-forkless-data.json107          variables: |108            FEATURE=${{ matrix.features }}109            RUNTIME=${{ matrix.runtime }}110111      - name: Show launch-config-forkless configuration112        run: cat .docker/launch-config-forkless-data.json113114115      - name: Build the stack116        run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build  --force-recreate --timeout 300117118      - name: Check if docker logs consist logs related to Runtime Upgrade testing.119        if: success()120        run: |121            counter=160122            function do_docker_logs {123                docker logs --details parachain-fork  2>&1124            }125            function is_started {126                echo "Check Docker logs"127                DOCKER_LOGS=$(do_docker_logs)128                if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then129                     echo "🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"130                     return 0131                     exit 0132                fi133                     echo "Function is_started: Return 1"134                     return 1135            }136            while ! is_started; do137                echo "Waiting for special message in log files "138                sleep 30s139                counter=$(( $counter - 1 ))140                echo "Counter: $counter"141                if [ "$counter" -gt "0" ]; then142                     continue143                else144                     break145                fi146            done147            exit 1148        shell: bash149150      - name: Collect Docker Logs151        if: success() || failure()152        uses: jwalton/gh-docker-logs@v2.2.0153        with:154          dest: './forkless-parachain-upgrade-data-logs.${{ matrix.features }}'155          images: 'node-parachain' 156157      - name: Show Docker logs158        run: cat './forkless-parachain-upgrade-data-logs.${{ matrix.features }}/node-parachain.log' 159160      - name: Stop running containers161        if: always()                   # run this step always162        run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" down
after · .github/workflows/forkless-update-data.yml
1name: upgrade replica23# Controls when the action will run.4on:5 # Triggers the workflow on push or pull request events but only for the master branch6  pull_request:7    branches:8      - master9    types:10      - opened11      - reopened12      - synchronize   #commit(s) pushed to the pull request13      - ready_for_review1415  # Allows you to run this workflow manually from the Actions tab16  workflow_dispatch:1718#Define Workflow variables19env:20  REPO_URL: ${{ github.server_url }}/${{ github.repository }}2122concurrency:23  group: ${{ github.workflow }}-${{ github.ref }}24  cancel-in-progress: true2526# A workflow run is made up of one or more jobs that can run sequentially or in parallel27jobs:2829  prepare-execution-marix:3031    name: Prepare execution matrix3233    runs-on: self-hosted-ci34    outputs:35      matrix: ${{ steps.create_matrix.outputs.matrix }}3637    steps:3839      - name: Clean Workspace40        uses: AutoModality/action-clean@v1.1.04142      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it43      - uses: actions/checkout@v344        with:45          ref: ${{ github.head_ref }}  #Checking out head commit4647      - name: Read .env file48        uses: xom9ikk/dotenv@v1.0.24950      - name: Create Execution matrix51        uses: CertainLach/create-matrix-action@v352        id: create_matrix53        with:54          matrix: |55            network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, fork_from_address {${{ env.OPAL_FORK_FROM }}}56            network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, fork_from_address {${{ env.QUARTZ_FORK_FROM }}}57            network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}, fork_from_address {${{ env.UNIQUE_FORK_FROM }}}58596061  forkless-update-data:62    needs: prepare-execution-marix63    # The type of runner that the job will run on64    runs-on: [self-hosted-ci,large]65    timeout-minutes: 138066676869    name: ${{ matrix.network }}7071    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.7273    strategy:74      matrix:75        include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}767778    steps:79      - name: Skip if pull request is in Draft80        # `if: github.event.pull_request.draft == true` should be kept here, at81        # the step level, rather than at the job level. The latter is not82        # recommended because when the PR is moved from "Draft" to "Ready to83        # review" the workflow will immediately be passing (since it was skipped),84        # even though it hasn't actually ran, since it takes a few seconds for85        # the workflow to start. This is also disclosed in:86        # https://github.community/t/dont-run-actions-on-draft-pull-requests/16817/1787        # That scenario would open an opportunity for the check to be bypassed:88        # 1. Get your PR approved89        # 2. Move it to Draft90        # 3. Push whatever commits you want91        # 4. Move it to "Ready for review"; now the workflow is passing (it was92        #    skipped) and "Check reviews" is also passing (it won't be updated93        #    until the workflow is finished)94        if: github.event.pull_request.draft == true95        run: exit 19697      - name: Clean Workspace98        uses: AutoModality/action-clean@v1.1.099100      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it101      - uses: actions/checkout@v3102        with:103          ref: ${{ github.head_ref }}  #Checking out head commit104105      - name: Read .env file106        uses: xom9ikk/dotenv@v1.0.2107108      - name: Generate ENV related extend file for docker-compose109        uses: cuchi/jinja2-action@v1.2.0110        with:111          template: .docker/docker-compose.tmp-forkless-data.j2112          output_file: .docker/docker-compose.${{ matrix.network }}.yml113          variables: |114            REPO_URL=${{ github.server_url }}/${{ github.repository }}.git115            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}116            POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}117            POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}118            MAINNET_TAG=${{ matrix.mainnet_tag }}119            MAINNET_BRANCH=${{ matrix.mainnet_branch }}120            FEATURE=${{ matrix.features }}121            RUNTIME=${{ matrix.runtime }}122            BRANCH=${{ github.head_ref }}123            FORK_FROM=${{ matrix.fork_from_address }}124125      - name: Show build configuration126        run: cat .docker/docker-compose.${{ matrix.network }}.yml127128      - name: Generate launch-config-forkless-data.json129        uses: cuchi/jinja2-action@v1.2.0130        with:131          template: .docker/forkless-config/launch-config-forkless-data.j2132          output_file: .docker/launch-config-forkless-data.json133          variables: |134            FEATURE=${{ matrix.features }}135            RUNTIME=${{ matrix.runtime }}136137      - name: Show launch-config-forkless configuration138        run: cat .docker/launch-config-forkless-data.json139140141      - name: Build the stack142        run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build  --force-recreate --timeout 300143144      - name: Check if docker logs consist logs related to Runtime Upgrade testing.145        if: success()146        run: |147          counter=160148          function check_container_status {149                docker inspect -f {{.State.Running}} node-parachain150          }151          function do_docker_logs {152                docker logs --details node-parachain  2>&1153          }154          function is_started {155                if [ "$(check_container_status)" == "true" ]; then156                        echo "Container: node-parachain RUNNING";157                        echo "Check Docker logs"158                        DOCKER_LOGS=$(do_docker_logs)159                        if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then160                                echo "🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"161                                return 0162                        elif [[ ${DOCKER_LOGS} = *"🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"* ]];then163                                echo "🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"164                                return 1165                        else166                                echo "Message not found in logs output, repeating..."167                                return 1168                        fi169                else170                        echo "Container node-parachain not RUNNING"171                        echo "Halting all future checks"172                        exit 1173                fi174          exit 0175          }176          while ! is_started; do177                echo "Waiting for special message in log files "178                sleep 30s179                counter=$(( $counter - 1 ))180                echo "Counter: $counter"181                if [ "$counter" -gt "0" ]; then182                         continue183                else184                         break185                fi186          done187          echo "Halting script"188          exit 0189        shell: bash190191      - name: Collect Docker Logs192        if: success() || failure()193        uses: jwalton/gh-docker-logs@v2.2.0194        with:195          dest: './forkless-parachain-upgrade-data-logs.${{ matrix.features }}'196          images: 'node-parachain'197198      - name: Show Docker logs199        run: cat './forkless-parachain-upgrade-data-logs.${{ matrix.features }}/node-parachain.log'200201      - name: Stop running containers202        if: always()                   # run this step always203        run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" down