git.delta.rocks / unique-network / refs/commits / ff95602a85f2

difftreelog

Merge pull request #1069 from UniqueNetwork/fix/ci-polkadot-1.9

Yaroslav Bolyukin2024-05-31parents: #470ffd5 #4dba154.patch.diff
in: master

29 files changed

modified.docker/Dockerfile-acala.j2diffbeforeafterboth
--- a/.docker/Dockerfile-acala.j2
+++ b/.docker/Dockerfile-acala.j2
@@ -17,6 +17,7 @@
 RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \
     rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \
     rustup default {{ RUST_TOOLCHAIN }} && \
+    rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \
     rustup target list --installed && \
     rustup show
 
modified.docker/Dockerfile-astar.j2diffbeforeafterboth
--- a/.docker/Dockerfile-astar.j2
+++ b/.docker/Dockerfile-astar.j2
@@ -17,6 +17,7 @@
 RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \
     rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \
     rustup default {{ RUST_TOOLCHAIN }} && \
+    rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \
     rustup target list --installed && \
     rustup show
 
modified.docker/Dockerfile-chain-devdiffbeforeafterboth
--- a/.docker/Dockerfile-chain-dev
+++ b/.docker/Dockerfile-chain-dev
@@ -14,6 +14,7 @@
 RUN rustup toolchain uninstall $(rustup toolchain list) && \
     rustup toolchain install $RUST_TOOLCHAIN && \
     rustup default $RUST_TOOLCHAIN && \
+    rustup component add --toolchain $RUST_TOOLCHAIN rust-src && \
     rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN
 
 RUN mkdir /dev_chain
modified.docker/Dockerfile-chain-dev-unitdiffbeforeafterboth
--- a/.docker/Dockerfile-chain-dev-unit
+++ b/.docker/Dockerfile-chain-dev-unit
@@ -10,6 +10,7 @@
 RUN rustup toolchain uninstall $(rustup toolchain list) && \
     rustup toolchain install $RUST_TOOLCHAIN && \
     rustup default $RUST_TOOLCHAIN && \
+    rustup component add --toolchain $RUST_TOOLCHAIN rust-src && \
     rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN
 
 RUN mkdir /dev_chain
modified.docker/Dockerfile-collators.j2diffbeforeafterboth
--- a/.docker/Dockerfile-collators.j2
+++ b/.docker/Dockerfile-collators.j2
@@ -9,6 +9,7 @@
 RUN rustup toolchain uninstall $(rustup toolchain list) && \
     rustup toolchain install {{ RUST_TOOLCHAIN }} && \
     rustup default {{ RUST_TOOLCHAIN }} && \
+    rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \
     rustup target list --installed && \
     rustup show
 RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }}
modified.docker/Dockerfile-cumulus.j2diffbeforeafterboth
--- a/.docker/Dockerfile-cumulus.j2
+++ b/.docker/Dockerfile-cumulus.j2
@@ -17,6 +17,7 @@
 RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \
     rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \
     rustup default {{ RUST_TOOLCHAIN }} && \
+    rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \
     rustup target list --installed && \
     rustup show
 
modified.docker/Dockerfile-hydradx.j2diffbeforeafterboth
--- a/.docker/Dockerfile-hydradx.j2
+++ b/.docker/Dockerfile-hydradx.j2
@@ -17,6 +17,7 @@
 RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \
     rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \
     rustup default {{ RUST_TOOLCHAIN }} && \
+    rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \
     rustup target list --installed && \
     rustup show
 
modified.docker/Dockerfile-moonbeam.j2diffbeforeafterboth
--- a/.docker/Dockerfile-moonbeam.j2
+++ b/.docker/Dockerfile-moonbeam.j2
@@ -17,6 +17,7 @@
 RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \
     rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \
     rustup default {{ RUST_TOOLCHAIN }} && \
+    rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \
     rustup target list --installed && \
     rustup show
 
modified.docker/Dockerfile-parachaindiffbeforeafterboth
--- a/.docker/Dockerfile-parachain
+++ b/.docker/Dockerfile-parachain
@@ -12,6 +12,7 @@
 RUN rustup toolchain uninstall $(rustup toolchain list) && \
     rustup toolchain install $RUST_TOOLCHAIN && \
     rustup default $RUST_TOOLCHAIN && \
+    rustup component add --toolchain $RUST_TOOLCHAIN rust-src && \
     rustup target list --installed && \
     rustup show
 RUN rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN
@@ -42,12 +43,12 @@
 ARG POLKADOT_LAUNCH_BRANCH=
 
 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 ${POLKADOT_LAUNCH_BRANCH}
 
modified.docker/Dockerfile-parachain-upgrade-data.j2diffbeforeafterboth
--- a/.docker/Dockerfile-parachain-upgrade-data.j2
+++ b/.docker/Dockerfile-parachain-upgrade-data.j2
@@ -10,6 +10,7 @@
 RUN rustup toolchain uninstall $(rustup toolchain list) && \
     rustup toolchain install {{ RUST_TOOLCHAIN }} && \
     rustup default {{ RUST_TOOLCHAIN }} && \
+    rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \
     rustup target list --installed && \
     rustup show
 RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }}
modified.docker/Dockerfile-parachain-upgrade.j2diffbeforeafterboth
--- a/.docker/Dockerfile-parachain-upgrade.j2
+++ b/.docker/Dockerfile-parachain-upgrade.j2
@@ -10,6 +10,7 @@
 RUN rustup toolchain uninstall $(rustup toolchain list) && \
     rustup toolchain install {{ RUST_TOOLCHAIN }} && \
     rustup default {{ RUST_TOOLCHAIN }} && \
+    rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \
     rustup target list --installed && \
     rustup show
 RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }}
modified.docker/Dockerfile-polkadex.j2diffbeforeafterboth
--- a/.docker/Dockerfile-polkadex.j2
+++ b/.docker/Dockerfile-polkadex.j2
@@ -17,6 +17,7 @@
 RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \
     rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \
     rustup default {{ RUST_TOOLCHAIN }} && \
+    rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \
     rustup target list --installed && \
     rustup show
 
modified.docker/Dockerfile-polkadot.j2diffbeforeafterboth
--- a/.docker/Dockerfile-polkadot.j2
+++ b/.docker/Dockerfile-polkadot.j2
@@ -17,6 +17,7 @@
 RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \
     rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \
     rustup default {{ RUST_TOOLCHAIN }} && \
+    rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \
     rustup target list --installed && \
     rustup show
 
modified.docker/Dockerfile-testnet.j2diffbeforeafterboth
--- a/.docker/Dockerfile-testnet.j2
+++ b/.docker/Dockerfile-testnet.j2
@@ -10,6 +10,7 @@
 RUN rustup toolchain uninstall $(rustup toolchain list) && \
     rustup toolchain install {{ RUST_TOOLCHAIN }} && \
     rustup default {{ RUST_TOOLCHAIN }} && \
+    rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \
     rustup target list --installed && \
     rustup show
 RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }}
modified.docker/Dockerfile-try-runtime.j2diffbeforeafterboth
--- a/.docker/Dockerfile-try-runtime.j2
+++ b/.docker/Dockerfile-try-runtime.j2
@@ -10,6 +10,7 @@
     rustup toolchain install {{ RUST_TOOLCHAIN }} && \
     rustup default {{ RUST_TOOLCHAIN }} && \
     rustup target list --installed && \
+    rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \
     rustup show
 RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }}
 
modified.docker/Dockerfile-uniquediffbeforeafterboth
--- a/.docker/Dockerfile-unique
+++ b/.docker/Dockerfile-unique
@@ -19,6 +19,7 @@
     rustup toolchain install $RUST_TOOLCHAIN && \
     rustup target add wasm32-unknown-unknown --toolchain ${RUST_TOOLCHAIN} && \
     rustup default $RUST_TOOLCHAIN && \
+    rustup component add --toolchain $RUST_TOOLCHAIN rust-src && \
     rustup target list --installed && \
     rustup show
 
modified.docker/Dockerfile-unique-releasediffbeforeafterboth
--- a/.docker/Dockerfile-unique-release
+++ b/.docker/Dockerfile-unique-release
@@ -19,6 +19,7 @@
     rustup toolchain install $RUST_TOOLCHAIN && \
     rustup target add wasm32-unknown-unknown --toolchain ${RUST_TOOLCHAIN} && \
     rustup default $RUST_TOOLCHAIN && \
+    rustup component add --toolchain $RUST_TOOLCHAIN rust-src && \
     rustup target list --installed && \
     rustup show
 
modified.envdiffbeforeafterboth
--- a/.env
+++ b/.env
@@ -1,4 +1,4 @@
-RUST_TOOLCHAIN=nightly-2023-05-22
+RUST_TOOLCHAIN=nightly-2024-02-21
 POLKADOT_LAUNCH_BRANCH=unique-network
 RELAY_CHAIN_TYPE=westend
 CHAINQL=v0.4.1
@@ -26,8 +26,4 @@
 WESTMINT_BUILD_BRANCH=parachains-v9430
 OPAL_MAINNET_BRANCH=release-v10010063
 OPAL_REPLICA_FROM=wss://ws-opal.unique.network:443
-
-UNIQUEEAST_MAINNET_BRANCH=release-v1.0.0
-SAPPHIRE_MAINNET_BRANCH=release-v10010063
-SAPPHIRE_REPLICA_FROM=wss://ws-sapphire.unique.network:443
 
modified.github/workflows/collator-selection.ymldiffbeforeafterboth
--- a/.github/workflows/collator-selection.yml
+++ b/.github/workflows/collator-selection.yml
@@ -42,7 +42,6 @@
           matrix: |
             network {opal}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}
             network {quartz}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}
-            network {sapphire}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}
 
   collator-selection:
 
modified.github/workflows/forkless-update-data.ymldiffbeforeafterboth
--- a/.github/workflows/forkless-update-data.yml
+++ b/.github/workflows/forkless-update-data.yml
@@ -36,7 +36,6 @@
         with:
           matrix: |
             network {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, runtime_features {opal-runtime}, wasm_name {opal}, fork_source {${{ env.OPAL_REPLICA_FROM }}}
-            network {sapphire}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}, runtime_features {sapphire-runtime}, wasm_name {quartz}, fork_source {${{ env.SAPPHIRE_REPLICA_FROM }}}
             network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, runtime_features {quartz-runtime}, wasm_name {quartz}, fork_source {${{ env.QUARTZ_REPLICA_FROM }}}
             network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, runtime_features {unique-runtime}, wasm_name {unique}, fork_source {${{ env.UNIQUE_REPLICA_FROM }}}
 
modified.github/workflows/forkless-update-nodata.ymldiffbeforeafterboth
--- a/.github/workflows/forkless-update-nodata.yml
+++ b/.github/workflows/forkless-update-nodata.yml
@@ -36,7 +36,6 @@
         with:
           matrix: |
             network {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, runtime_features {opal-runtime}, wasm_name {opal}
-            network {sapphire}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}, runtime_features {sapphire-runtime}, wasm_name {quartz}
             network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, runtime_features {quartz-runtime}, wasm_name {quartz}
             network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, runtime_features {unique-runtime}, wasm_name {unique}
 
modified.github/workflows/governance.ymldiffbeforeafterboth
--- a/.github/workflows/governance.yml
+++ b/.github/workflows/governance.yml
@@ -34,7 +34,6 @@
             network {unique}, wasm_name {unique}
             network {quartz}, wasm_name {quartz}
             network {opal}, wasm_name {opal}
-            network {sapphire}, wasm_name {quartz}
 
   dev_build_int_tests:
     needs: prepare-execution-marix
modified.github/workflows/node-only-update.ymldiffbeforeafterboth
--- a/.github/workflows/node-only-update.yml
+++ b/.github/workflows/node-only-update.yml
@@ -38,7 +38,6 @@
         with:
           matrix: |
             network {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, runtime_features {opal-runtime}
-            network {sapphire}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}, runtime_features {sapphire-runtime}
             network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, runtime_features {quartz-runtime}
             network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, runtime_features {unique-runtime}
 
modified.github/workflows/polkadot-types.ymldiffbeforeafterboth
--- a/.github/workflows/polkadot-types.yml
+++ b/.github/workflows/polkadot-types.yml
@@ -29,8 +29,6 @@
     strategy:
       matrix:
         include:
-          - network: "sapphire"
-            usage: ""
           - network: "opal"
             usage: ""
           - network: "quartz"
modified.github/workflows/try-runtime.ymldiffbeforeafterboth
before · .github/workflows/try-runtime.yml
1# Try-runtime checks2# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2587656213/Try+runtime34# Triger: only call from main workflow(re-usable workflows)5on:6  workflow_call:78# A workflow run is made up of one or more jobs that can run sequentially or in parallel9jobs:10  prepare-execution-marix:1112    name: Prepare execution matrix1314    runs-on: self-hosted-ci15    outputs:16      matrix: ${{ steps.create_matrix.outputs.matrix }}1718    steps:1920      - name: Clean Workspace21        uses: AutoModality/action-clean@v1.1.02223      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it24      - uses: actions/checkout@v3.1.025        with:26          ref: ${{ github.head_ref }}  #Checking out head commit2728      - name: Read .env file29        uses: xom9ikk/dotenv@v23031      - name: Create Execution matrix32        uses: CertainLach/create-matrix-action@v433        id: create_matrix34        with:35          matrix: |36            network {opal}, wasm_name {opal}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}}37            network {sapphire}, wasm_name {quartz}, replica_from_address {${{ env.SAPPHIRE_REPLICA_FROM }}}38            network {quartz}, wasm_name {quartz}, replica_from_address {${{ env.QUARTZ_REPLICA_FROM }}}39            network {unique}, wasm_name {unique}, replica_from_address {${{ env.UNIQUE_REPLICA_FROM }}}4041  try-runtime-build:42    needs: prepare-execution-marix4344    # The type of runner that the job will run on45    runs-on: [self-hosted-ci]46    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.4748    name: ${{ matrix.network }}-try-runtime-build49    strategy:50      matrix:51        include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}5253    steps:5455      - name: Clean Workspace56        uses: AutoModality/action-clean@v1.1.05758      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it59      - uses: actions/checkout@v3.1.060        with:61          ref: ${{ github.head_ref }}  #Checking out head commit6263      # Prepare SHA  64      - name: Prepare SHA65        uses: ./.github/actions/prepare6667      - name: Read .env file68        uses: xom9ikk/dotenv@v26970      - name: Log in to Docker Hub71        uses: docker/login-action@v2.1.072        with:73          username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}74          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}7576      # Build main image for TRY-RUNTIME77      - name: Generate ENV related extend Dockerfile file78        uses: cuchi/jinja2-action@v1.2.079        with:80          template: .docker/Dockerfile-try-runtime.j281          output_file: .docker/Dockerfile-try-runtime.${{ matrix.network }}.yml82          variables: |83            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}84            NETWORK=${{ matrix.network }}85            WASM_NAME=${{ matrix.wasm_name }}86            REPLICA_FROM=${{ matrix.replica_from_address }}8788      - name: Show build Dockerfile89        run: cat .docker/Dockerfile-try-runtime.${{ matrix.network }}.yml9091      - name: Run find-and-replace to remove slashes from branch name92        uses: mad9000/actions-find-and-replace-string@493        id: branchname94        with:95          source: ${{ github.head_ref }}96          find: '/'97          replace: '-'9899      - name: Set build SHA100        shell: bash101        run: |102          echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV103104      - name: Build the stack105        run: cd .docker/ && docker build --no-cache --file ./Dockerfile-try-runtime.${{ matrix.network }}.yml --tag uniquenetwork/ci-tryruntime-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA ../106107      - name: Push docker image version108        run: docker push uniquenetwork/ci-tryruntime-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA109110      - name: Remove builder cache111        if: always()                   # run this step always112        run: |113          docker builder prune -f114          docker system prune -f115116117  try-runtime-tests:118    needs: [prepare-execution-marix, try-runtime-build]119    # The type of runner that the job will run on120    runs-on: [medium]121122    timeout-minutes: 600123124    name: ${{ matrix.network }}-try-runtime-tests125126    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.127128    strategy:129      matrix:130        include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}131132    steps:133      - name: Skip if pull request is in Draft134        if: github.event.pull_request.draft == true135        run: exit 1136137      - name: Clean Workspace138        uses: AutoModality/action-clean@v1.1.0139140      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it141      - uses: actions/checkout@v3.1.0142        with:143          ref: ${{ github.head_ref }}  #Checking out head commit144145      - name: Prepare146        uses: ./.github/actions/prepare147148      - name: Set build SHA149        shell: bash150        run: |151          echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV152153      - name: Run find-and-replace to remove slashes from branch name154        uses: mad9000/actions-find-and-replace-string@4155        id: branchname156        with:157          source: ${{ github.head_ref }}158          find: '/'159          replace: '-'160161      - name: Read .env file162        uses: xom9ikk/dotenv@v2163164      - name: Generate ENV related extend file for docker-compose165        uses: cuchi/jinja2-action@v1.2.0166        with:167          template: .docker/docker-compose.try-runtime.j2168          output_file: .docker/docker-compose.try-runtime.${{ matrix.network }}.yml169          variables: |170            NETWORK=${{ matrix.network }}171            BUILD_TAG=${{ steps.branchname.outputs.value }}-$BUILD_SHA172173      - name: Show build configuration174        run: cat .docker/docker-compose.try-runtime.${{ matrix.network }}.yml175176      - uses: actions/setup-node@v3.5.1177        with:178          node-version: 20179180      - name: Log in to Docker Hub181        uses: docker/login-action@v2.1.0182        with:183          username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}184          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}185186      - name: Build the stack187        run: docker-compose -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" up -d --remove-orphans --force-recreate --timeout 300188189      - name: Check if docker logs consist logs related to Runtime Upgrade testing.190        if: success()191        run: |192          counter=300193          counter_life=0194          function check_container_status {195                docker inspect -f {{.State.Running}} try-runtime196          }197          function do_docker_logs {198                docker logs --details try-runtime 2>&1 | grep -i 'TryRuntime_on_runtime_upgrade executed without errors. Consumed'199          }200          function is_started {201                if [ "$(check_container_status)" == "true" ]; then202                        echo "Container: try-runtime RUNNING";203                        echo "Check Docker logs"204                        DOCKER_LOGS=$(do_docker_logs)205                        if [[ -n ${DOCKER_LOGS} ]]; then206                                echo "TryRuntime_on_runtime_upgrade executed without errors."207                                return 0208                        else209                                echo "Message not found in logs output, repeating..."210                                return 1211                        fi212                else213                    (( counter_life++ ))214                    echo "Container try-runtime not RUNNING" $counter_life "time"215                    return 1216                fi217          }218219          while ! is_started; do220                echo "Waiting for special message in log files "221                sleep 30s222                counter=$(( $counter - 1 ))223                echo "Counter: $counter"224                if [ "$counter" -gt "0" ] && [ "$counter_life" -lt "3" ]; then225                         continue226                else227                         echo "Counter reached zero, yet upgrade is not finished correctly or Container try-runtime is not RUNNING"228                         exit 1229                fi230          done231          echo "Halting script"232          exit 0233        shell: bash234235      - name: Collect Docker Logs236        if: success() || failure()237        uses: jwalton/gh-docker-logs@v2.2.1238        with:239          dest: './try-runtime-logs.${{ matrix.network }}'240241      - name: Show docker logs242        if: success() || failure()243        run: cat './try-runtime-logs.${{ matrix.network }}/try-runtime.log'244245      - name: Stop running containers246        if: always()                   # run this step always247        run: docker-compose -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" down248249      - name: Remove builder cache250        if: always()                   # run this step always251        run: |252          docker builder prune -f -a253          docker system prune -f254          docker image prune -f -a
after · .github/workflows/try-runtime.yml
1# Try-runtime checks2# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2587656213/Try+runtime34# Triger: only call from main workflow(re-usable workflows)5on:6  workflow_call:78# A workflow run is made up of one or more jobs that can run sequentially or in parallel9jobs:10  prepare-execution-marix:1112    name: Prepare execution matrix1314    runs-on: self-hosted-ci15    outputs:16      matrix: ${{ steps.create_matrix.outputs.matrix }}1718    steps:1920      - name: Clean Workspace21        uses: AutoModality/action-clean@v1.1.02223      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it24      - uses: actions/checkout@v3.1.025        with:26          ref: ${{ github.head_ref }}  #Checking out head commit2728      - name: Read .env file29        uses: xom9ikk/dotenv@v23031      - name: Create Execution matrix32        uses: CertainLach/create-matrix-action@v433        id: create_matrix34        with:35          matrix: |36            network {opal}, wasm_name {opal}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}}37            network {quartz}, wasm_name {quartz}, replica_from_address {${{ env.QUARTZ_REPLICA_FROM }}}38            network {unique}, wasm_name {unique}, replica_from_address {${{ env.UNIQUE_REPLICA_FROM }}}3940  try-runtime-build:41    needs: prepare-execution-marix4243    # The type of runner that the job will run on44    runs-on: [self-hosted-ci]45    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.4647    name: ${{ matrix.network }}-try-runtime-build48    strategy:49      matrix:50        include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}5152    steps:5354      - name: Clean Workspace55        uses: AutoModality/action-clean@v1.1.05657      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it58      - uses: actions/checkout@v3.1.059        with:60          ref: ${{ github.head_ref }}  #Checking out head commit6162      # Prepare SHA  63      - name: Prepare SHA64        uses: ./.github/actions/prepare6566      - name: Read .env file67        uses: xom9ikk/dotenv@v26869      - name: Log in to Docker Hub70        uses: docker/login-action@v2.1.071        with:72          username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}73          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}7475      # Build main image for TRY-RUNTIME76      - name: Generate ENV related extend Dockerfile file77        uses: cuchi/jinja2-action@v1.2.078        with:79          template: .docker/Dockerfile-try-runtime.j280          output_file: .docker/Dockerfile-try-runtime.${{ matrix.network }}.yml81          variables: |82            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}83            NETWORK=${{ matrix.network }}84            WASM_NAME=${{ matrix.wasm_name }}85            REPLICA_FROM=${{ matrix.replica_from_address }}8687      - name: Show build Dockerfile88        run: cat .docker/Dockerfile-try-runtime.${{ matrix.network }}.yml8990      - name: Run find-and-replace to remove slashes from branch name91        uses: mad9000/actions-find-and-replace-string@492        id: branchname93        with:94          source: ${{ github.head_ref }}95          find: '/'96          replace: '-'9798      - name: Set build SHA99        shell: bash100        run: |101          echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV102103      - name: Build the stack104        run: cd .docker/ && docker build --no-cache --file ./Dockerfile-try-runtime.${{ matrix.network }}.yml --tag uniquenetwork/ci-tryruntime-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA ../105106      - name: Push docker image version107        run: docker push uniquenetwork/ci-tryruntime-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA108109      - name: Remove builder cache110        if: always()                   # run this step always111        run: |112          docker builder prune -f113          docker system prune -f114115116  try-runtime-tests:117    needs: [prepare-execution-marix, try-runtime-build]118    # The type of runner that the job will run on119    runs-on: [medium]120121    timeout-minutes: 600122123    name: ${{ matrix.network }}-try-runtime-tests124125    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.126127    strategy:128      matrix:129        include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}130131    steps:132      - name: Skip if pull request is in Draft133        if: github.event.pull_request.draft == true134        run: exit 1135136      - name: Clean Workspace137        uses: AutoModality/action-clean@v1.1.0138139      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it140      - uses: actions/checkout@v3.1.0141        with:142          ref: ${{ github.head_ref }}  #Checking out head commit143144      - name: Prepare145        uses: ./.github/actions/prepare146147      - name: Set build SHA148        shell: bash149        run: |150          echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV151152      - name: Run find-and-replace to remove slashes from branch name153        uses: mad9000/actions-find-and-replace-string@4154        id: branchname155        with:156          source: ${{ github.head_ref }}157          find: '/'158          replace: '-'159160      - name: Read .env file161        uses: xom9ikk/dotenv@v2162163      - name: Generate ENV related extend file for docker-compose164        uses: cuchi/jinja2-action@v1.2.0165        with:166          template: .docker/docker-compose.try-runtime.j2167          output_file: .docker/docker-compose.try-runtime.${{ matrix.network }}.yml168          variables: |169            NETWORK=${{ matrix.network }}170            BUILD_TAG=${{ steps.branchname.outputs.value }}-$BUILD_SHA171172      - name: Show build configuration173        run: cat .docker/docker-compose.try-runtime.${{ matrix.network }}.yml174175      - uses: actions/setup-node@v3.5.1176        with:177          node-version: 20178179      - name: Log in to Docker Hub180        uses: docker/login-action@v2.1.0181        with:182          username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}183          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}184185      - name: Build the stack186        run: docker-compose -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" up -d --remove-orphans --force-recreate --timeout 300187188      - name: Check if docker logs consist logs related to Runtime Upgrade testing.189        if: success()190        run: |191          counter=300192          counter_life=0193          function check_container_status {194                docker inspect -f {{.State.Running}} try-runtime195          }196          function do_docker_logs {197                docker logs --details try-runtime 2>&1 | grep -i 'TryRuntime_on_runtime_upgrade executed without errors. Consumed'198          }199          function is_started {200                if [ "$(check_container_status)" == "true" ]; then201                        echo "Container: try-runtime RUNNING";202                        echo "Check Docker logs"203                        DOCKER_LOGS=$(do_docker_logs)204                        if [[ -n ${DOCKER_LOGS} ]]; then205                                echo "TryRuntime_on_runtime_upgrade executed without errors."206                                return 0207                        else208                                echo "Message not found in logs output, repeating..."209                                return 1210                        fi211                else212                    (( counter_life++ ))213                    echo "Container try-runtime not RUNNING" $counter_life "time"214                    return 1215                fi216          }217218          while ! is_started; do219                echo "Waiting for special message in log files "220                sleep 30s221                counter=$(( $counter - 1 ))222                echo "Counter: $counter"223                if [ "$counter" -gt "0" ] && [ "$counter_life" -lt "3" ]; then224                         continue225                else226                         echo "Counter reached zero, yet upgrade is not finished correctly or Container try-runtime is not RUNNING"227                         exit 1228                fi229          done230          echo "Halting script"231          exit 0232        shell: bash233234      - name: Collect Docker Logs235        if: success() || failure()236        uses: jwalton/gh-docker-logs@v2.2.1237        with:238          dest: './try-runtime-logs.${{ matrix.network }}'239240      - name: Show docker logs241        if: success() || failure()242        run: cat './try-runtime-logs.${{ matrix.network }}/try-runtime.log'243244      - name: Stop running containers245        if: always()                   # run this step always246        run: docker-compose -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" down247248      - name: Remove builder cache249        if: always()                   # run this step always250        run: |251          docker builder prune -f -a252          docker system prune -f253          docker image prune -f -a
modified.github/workflows/yarn-dev.ymldiffbeforeafterboth
--- a/.github/workflows/yarn-dev.yml
+++ b/.github/workflows/yarn-dev.yml
@@ -24,7 +24,6 @@
       matrix:
         include:
           - network: "opal"
-          - network: "sapphire"
           - network: "quartz"
           - network: "unique"
 
modifiedREADME.mddiffbeforeafterboth
--- a/README.md
+++ b/README.md
@@ -52,17 +52,17 @@
 
 2. Remove all installed toolchains with `rustup toolchain list` and `rustup toolchain uninstall <toolchain>`.
 
-3. Install toolchain nightly-2023-05-22 and make it default:
+3. Install toolchain nightly-2024-02-21 and make it default:
 
 ```bash
-rustup toolchain install nightly-2023-05-22
-rustup default nightly-2023-05-22
+rustup toolchain install nightly-2024-02-21
+rustup default nightly-2024-02-21
 ```
 
 4. Add wasm target for nightly toolchain:
 
 ```bash
-rustup target add wasm32-unknown-unknown --toolchain nightly-2023-05-22
+rustup target add wasm32-unknown-unknown --toolchain nightly-2024-02-21
 ```
 
 5. Build:
modifiedjs-packages/scripts/generate_types/wait_for_first_block.shdiffbeforeafterboth
--- a/js-packages/scripts/generate_types/wait_for_first_block.sh
+++ b/js-packages/scripts/generate_types/wait_for_first_block.sh
@@ -6,38 +6,42 @@
 
 last_block_id=0
 block_id=0
+counter=0
 function get_block {
-	block_id_hex=$(do_rpc chain_getHeader | jq -r .result.number)
-	block_id=$((block_id_hex))
-	echo Id = $block_id
+    block_id_hex=$(do_rpc chain_getHeader | jq -r .result.number)
+    block_id=$((block_id_hex))
+    echo Id = $block_id
 }
 
 function had_new_block {
-	last_block_id=$block_id
-	get_block
-	if (( last_block_id != 0 && block_id > last_block_id )); then
-		return 0
-	fi
-	return 1
+    last_block_id=$block_id
+    get_block
+    if (( last_block_id != 0 && block_id > last_block_id )); then
+        return 0
+    fi
+    return 1
 }
 
 function reset_check {
-	last_block_id=0
-	block_id=0
+    last_block_id=0
+    block_id=0
+    counter=0
 }
 
-while ! had_new_block; do
-	echo "Waiting for next block..."
-	sleep 12
+while [ ! had_new_block ] && [ $counter -lt 100 ]; do
+    echo "Waiting for next block..."
+    counter=$((counter+1))
+    sleep 12
 done
+
 reset_check
 
 echo "Chain is running, but lets wait for another block after a minute, to avoid startup flakiness."
 sleep 60
 
 while ! had_new_block; do
-	echo "Waiting for another block..."
-	sleep 12
+    echo "Waiting for another block..."
+    sleep 12
 done
 
 echo "Chain is running!"
modifiedruntime/common/tests/xcm.rsdiffbeforeafterboth
--- a/runtime/common/tests/xcm.rs
+++ b/runtime/common/tests/xcm.rs
@@ -22,7 +22,12 @@
 };
 
 use super::{last_events, new_test_ext, AccountId};
-use crate::{PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin};
+use crate::{
+	runtime_common::config::xcm::XcmExecutorConfig, PolkadotXcm, Runtime, RuntimeCall,
+	RuntimeEvent, RuntimeOrigin,
+};
+
+type XcmExecutor = staging_xcm_executor::XcmExecutor<XcmExecutorConfig<Runtime>>;
 
 const ALICE: AccountId = AccountId::new([0u8; 32]);
 const BOB: AccountId = AccountId::new([1u8; 32]);
@@ -32,35 +37,37 @@
 #[test]
 pub fn xcm_transact_is_forbidden() {
 	new_test_ext(vec![(ALICE, INITIAL_BALANCE)]).execute_with(|| {
-		PolkadotXcm::execute(
-			RuntimeOrigin::signed(ALICE),
-			Box::new(VersionedXcm::from(Xcm(vec![Transact {
-				origin_kind: OriginKind::Native,
-				require_weight_at_most: Weight::from_parts(1000, 1000),
-				call: RuntimeCall::Balances(
-					pallet_balances::Call::<Runtime>::transfer_keep_alive {
-						dest: BOB.into(),
-						value: INITIAL_BALANCE / 2,
-					},
-				)
-				.encode()
-				.into(),
-			}]))),
-			Weight::from_parts(1001000, 2000),
-		)
-		.expect(
-			"XCM execute must succeed, the error should be in the `PolkadotXcm::Attempted` event",
-		);
+		let max_weight = Weight::from_parts(1001000, 2000);
 
-		let xcm_event = &last_events(1)[0];
-		match xcm_event {
-			RuntimeEvent::PolkadotXcm(pallet_xcm::Event::<Runtime>::Attempted {
-				outcome: Outcome::Incomplete(_weight, Error::NoPermission),
-			}) => { /* Pass */ }
-			_ => panic!(
-				"Expected PolkadotXcm.Attempted(Incomplete(_weight, NoPermission)),\
-				found: {xcm_event:#?}"
-			),
+		let origin: Location = AccountId32 {
+			network: None,
+			id: *ALICE.as_ref(),
 		}
+		.into();
+		let message = Xcm(vec![Transact {
+			origin_kind: OriginKind::Native,
+			require_weight_at_most: Weight::from_parts(1000, 1000),
+			call: RuntimeCall::Balances(pallet_balances::Call::<Runtime>::transfer_keep_alive {
+				dest: BOB.into(),
+				value: INITIAL_BALANCE / 2,
+			})
+			.encode()
+			.into(),
+		}]);
+		let mut hash = message.using_encoded(sp_io::hashing::blake2_256);
+		let weight_limit = max_weight;
+		let weight_credit = max_weight;
+
+		let error = XcmExecutor::prepare_and_execute(
+			origin,
+			message,
+			&mut hash,
+			weight_limit,
+			weight_credit,
+		)
+		.ensure_complete()
+		.expect_err("XCM Transact shouldn't succeed");
+
+		assert_eq!(error, Error::NoPermission);
 	});
 }