git.delta.rocks / unique-network / refs/commits / 6d1c84661df9

difftreelog

ci fix js-packages paths

Yaroslav Bolyukin2023-11-15parent: #4a84b64.patch.diff
in: master

18 files changed

modified.github/workflows/collator-selection.ymldiffbeforeafterboth
--- a/.github/workflows/collator-selection.yml
+++ b/.github/workflows/collator-selection.yml
@@ -181,7 +181,7 @@
           yarn add mochawesome
           # Wanted by both wait_for_first_block
           # export RPC_URL="${RELAY_SAPPHIRE_HTTP_URL:-${RELAY_OPAL_HTTP_URL:-${RELAY_QUARTZ_HTTP_URL:-${RELAY_UNIQUE_HTTP_URL:-}}}}"
-          ../scripts/src/generate_types/wait_for_first_block.sh
+          ../scripts/wait_for_first_block.sh
           echo "Ready to start tests"
           NOW=$(date +%s) && yarn testCollators --reporter mochawesome --reporter-options reportFilename=test-collators-${NOW}
         env:
modified.github/workflows/forkless-update-data.ymldiffbeforeafterboth
--- a/.github/workflows/forkless-update-data.yml
+++ b/.github/workflows/forkless-update-data.yml
@@ -146,19 +146,19 @@
             snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}})
 
       - name: "Reconcile: runtime is upgraded"
-        working-directory: tests
+        working-directory: js-packages/tests
         run: |
           yarn
-          ./scripts/wait_for_first_block.sh
+          ../scripts/wait_for_first_block.sh
           echo "Executing upgrade"
-          yarn ts-node --esm src/util/authorizeEnactUpgrade.ts ${{ steps.wasms.outputs.dir }}/${{ matrix.wasm_name }}-runtime/${{ matrix.wasm_name }}_runtime.compact.compressed.wasm
+          yarn ts-node --esm util/authorizeEnactUpgrade.ts ${{ steps.wasms.outputs.dir }}/${{ matrix.wasm_name }}-runtime/${{ matrix.wasm_name }}_runtime.compact.compressed.wasm
         env:
           RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}
 
       - name: Run Parallel tests after forkless upgrade
-        working-directory: tests
+        working-directory: js-packages/tests
         run: |
-          ./scripts/wait_for_first_block.sh
+          ../scripts/wait_for_first_block.sh
           echo "Ready to start tests"
           NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}
         env:
@@ -166,7 +166,7 @@
 
       - name: Run Sequential tests after forkless upgrade
         if: success() || failure()
-        working-directory: tests
+        working-directory: js-packages/tests
         run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}
         env:
           RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}
modified.github/workflows/forkless-update-nodata.ymldiffbeforeafterboth
--- a/.github/workflows/forkless-update-nodata.yml
+++ b/.github/workflows/forkless-update-nodata.yml
@@ -161,19 +161,19 @@
             snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}})
 
       - name: "Reconcile: runtime is upgraded"
-        working-directory: tests
+        working-directory: js-packages/tests
         run: |
           yarn
-          ./scripts/wait_for_first_block.sh
+          ../scripts/wait_for_first_block.sh
           echo "Executing upgrade"
-          yarn ts-node --esm src/util/authorizeEnactUpgrade.ts ${{ steps.wasms.outputs.dir }}/${{ matrix.wasm_name }}-runtime/${{ matrix.wasm_name }}_runtime.compact.compressed.wasm
+          yarn ts-node --esm util/authorizeEnactUpgrade.ts ${{ steps.wasms.outputs.dir }}/${{ matrix.wasm_name }}-runtime/${{ matrix.wasm_name }}_runtime.compact.compressed.wasm
         env:
           RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}
 
       - name: Run Parallel tests after forkless upgrade
-        working-directory: tests
+        working-directory: js-packages/tests
         run: |
-          ./scripts/wait_for_first_block.sh
+          ../scripts/wait_for_first_block.sh
           echo "Ready to start tests"
           NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}
         env:
@@ -181,7 +181,7 @@
 
       - name: Run Sequential tests after forkless upgrade
         if: success() || failure()
-        working-directory: tests
+        working-directory: js-packages/tests
         run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}
         env:
           RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}
modified.github/workflows/governance.ymldiffbeforeafterboth
--- a/.github/workflows/governance.yml
+++ b/.github/workflows/governance.yml
@@ -86,7 +86,7 @@
         run: |
           yarn install
           yarn add mochawesome
-          ../scripts/src/generate_types/wait_for_first_block.sh
+          ../scripts/wait_for_first_block.sh
           echo "Ready to start tests"
           NOW=$(date +%s) && yarn testGovernance --reporter mochawesome --reporter-options reportFilename=test-${NOW}
         env:
modified.github/workflows/make-bench.ymldiffbeforeafterboth
--- a/.github/workflows/make-bench.yml
+++ b/.github/workflows/make-bench.yml
@@ -43,16 +43,15 @@
           time make bench
 
       - name: Run node dev mode in background
-        working-directory: ./
         run: |
           ./target/release/unique-collator --dev &
 
       - name: RUN Calibrate
-        working-directory: ./tests
+        working-directory: js-packages/scripts
         run: |
-          yarn install
-          yarn ts-node --esm src/calibrate.ts
-          yarn ts-node --esm src/calibrateApply.ts
+          yarn
+          yarn ts-node --esm calibrate.ts
+          yarn ts-node --esm calibrateApply.ts
           
       - name: show git diff
         run: |
modified.github/workflows/market-test.ymldiffbeforeafterboth
--- a/.github/workflows/market-test.yml
+++ b/.github/workflows/market-test.yml
@@ -119,10 +119,10 @@
 
 # Temporary disable node readyness check. Have to dig into the script logic.
 #      - name: Wait for chain up and running
-#        working-directory: tests
+#        working-directory: js-packages/tests
 #        run: |
 #          yarn install
-#          ./scripts/wait_for_first_block.sh
+#          ../scripts/wait_for_first_block.sh
 #          echo "Ready to start tests"
 #        env:
 #          RPC_URL: http://127.0.0.1:9944/
modified.github/workflows/node-only-update.ymldiffbeforeafterboth
--- a/.github/workflows/node-only-update.yml
+++ b/.github/workflows/node-only-update.yml
@@ -170,6 +170,7 @@
         run: |
           yarn
           yarn add mochawesome
+          # TODO: Update to new script structure after mainnet will have it
           ./scripts/wait_for_first_block.sh
           echo "Ready to start tests"
           NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}
@@ -197,7 +198,7 @@
       - name: Ensure network is alive
         if: success()
         run: |
-          ./tests/scripts/wait_for_first_block.sh
+          ./js-packages/scripts/wait_for_first_block.sh
         env:
           RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}
 
@@ -217,6 +218,7 @@
         run: |
           yarn install
           yarn add mochawesome
+          # TODO: Update to new script structure after mainnet will have it
           ./scripts/wait_for_first_block.sh
           echo "Ready to start tests"
           NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}
modified.github/workflows/polkadot-types.ymldiffbeforeafterboth
--- a/.github/workflows/polkadot-types.yml
+++ b/.github/workflows/polkadot-types.yml
@@ -74,13 +74,13 @@
       #   run: sudo apt install jq -y
 
       - name: Run generate_types_package script
-        working-directory: tests
+        working-directory: js-packages
         run: |
           yarn install
-          /bin/bash ./scripts/generate_types/wait_for_first_block.sh
+          ./scripts/wait_for_first_block.sh
           git config --global user.name "Unique"
           git config --global user.email github-actions@usetech.com          
-          /bin/bash ./scripts/generate_types/generate_types_package.sh --release ${{ matrix.usage }} --push
+          ./scripts/generate_types/generate_types_package.sh --release ${{ matrix.usage }} --push
         env:
           RPC_URL: http://127.0.0.1:9944/
 
modified.github/workflows/xcm.ymldiffbeforeafterboth
before · .github/workflows/xcm.yml
1name: xcm-testnet23# Controls when the action will run.4on:5  workflow_call:67  # Allows you to run this workflow manually from the Actions tab8  workflow_dispatch:910#Define Workflow variables11env:12  REPO_URL: ${{ github.server_url }}/${{ github.repository }}1314# A workflow run is made up of one or more jobs that can run sequentially or in parallel15jobs:16  prepare-execution-marix:17    name: Prepare execution matrix1819    runs-on: [self-hosted-ci]20    outputs:21      matrix: ${{ steps.create_matrix.outputs.matrix }}2223    steps:24      - name: Clean Workspace25        uses: AutoModality/action-clean@v1.1.02627      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it28      - uses: actions/checkout@v3.1.029        with:30          ref: ${{ github.head_ref }} #Checking out head commit3132      - name: Read .env file33        uses: xom9ikk/dotenv@v23435      - name: Create Execution matrix36        uses: CertainLach/create-matrix-action@v437        id: create_matrix38        with:39          matrix: |40            network {opal}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, acala_version {${{ env.ACALA_BUILD_BRANCH }}}, moonbeam_version {${{ env.MOONBEAM_BUILD_BRANCH }}}, cumulus_version {${{ env.WESTMINT_BUILD_BRANCH }}}, astar_version {${{ env.ASTAR_BUILD_BRANCH }}}, polkadex_version {${{ env.POLKADEX_BUILD_BRANCH }}}, runtest {testXcmOpal}, runtime_features {opal-runtime}41            network {quartz}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, acala_version {${{ env.KARURA_BUILD_BRANCH }}}, moonbeam_version {${{ env.MOONRIVER_BUILD_BRANCH }}}, cumulus_version {${{ env.STATEMINE_BUILD_BRANCH }}}, astar_version {${{ env.SHIDEN_BUILD_BRANCH }}}, polkadex_version {${{ env.POLKADEX_BUILD_BRANCH }}}, runtest {testFullXcmQuartz}, runtime_features {quartz-runtime}42            network {unique}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, acala_version {${{ env.ACALA_BUILD_BRANCH }}}, moonbeam_version {${{ env.MOONBEAM_BUILD_BRANCH }}}, cumulus_version {${{ env.STATEMINT_BUILD_BRANCH }}}, astar_version {${{ env.ASTAR_BUILD_BRANCH }}}, polkadex_version {${{ env.POLKADEX_BUILD_BRANCH }}}, runtest {testFullXcmUnique}, runtime_features {unique-runtime}4344  xcm:45    needs: prepare-execution-marix46    # The type of runner that the job will run on47    runs-on: [XL]4849    timeout-minutes: 6005051    name: ${{ matrix.network }}5253    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.5455    strategy:56      matrix:57        include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}5859    steps:60      - name: Skip if pull request is in Draft61        if: github.event.pull_request.draft == true62        run: exit 16364      - name: Clean Workspace65        uses: AutoModality/action-clean@v1.1.06667      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it68      - uses: actions/checkout@v3.1.069        with:70          ref: ${{ github.head_ref }} #Checking out head commit7172      # Prepare SHA73      - name: Prepare SHA74        uses: ./.github/actions/prepare7576      - name: Read .env file77        uses: xom9ikk/dotenv@v27879      - name: Log in to Docker Hub80        uses: docker/login-action@v2.1.081        with:82          username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}83          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}8485      # Check POLKADOT version and build it if it doesn't exist in repository86      - name: Generate ENV related extend Dockerfile file for POLKADOT87        uses: cuchi/jinja2-action@v1.2.088        with:89          template: .docker/Dockerfile-polkadot.j290          output_file: .docker/Dockerfile-polkadot.${{ matrix.relay_branch }}.yml91          variables: |92            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}93            POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }}9495      - name: Check if the dockerhub repository contains the needed version POLKADOT96        run: |97          # aquire token98            TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)99            export TOKEN=$TOKEN100101          # Get TAGS from DOCKERHUB POLKADOT repository102            POLKADOT_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-polkadot/tags/?page_size=100 | jq -r '."results"[]["name"]')103          # Show TAGS104            echo "POLKADOT TAGS:"105            echo $POLKADOT_TAGS106          # Check correct version POLKADOT and build it if it doesn't exist in POLKADOT TAGS107            if [[ ${POLKADOT_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.relay_branch }}"($|[[:space:]]) ]]; then108                echo "Repository has needed POLKADOT version";109                docker pull uniquenetwork/builder-polkadot:${{ matrix.relay_branch }}110            else111                echo "Repository has not needed POLKADOT version, so build it";112                cd .docker/ && docker build --file ./Dockerfile-polkadot.${{ matrix.relay_branch }}.yml --tag uniquenetwork/builder-polkadot:${{ matrix.relay_branch }} .113                echo "Push needed POLKADOT version to the repository";114                docker push uniquenetwork/builder-polkadot:${{ matrix.relay_branch }}115            fi116        shell: bash117118      # Check ACALA version and build it if it doesn't exist in repository119      - name: Generate ENV related extend Dockerfile file for ACALA120        uses: cuchi/jinja2-action@v1.2.0121        with:122          template: .docker/Dockerfile-acala.j2123          output_file: .docker/Dockerfile-acala.${{ matrix.acala_version }}.yml124          variables: |125            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}126            ACALA_BUILD_BRANCH=${{ matrix.acala_version }}127128      - name: Check if the dockerhub repository contains the needed ACALA version129        run: |130          # aquire token131            TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)132            export TOKEN=$TOKEN133134          # Get TAGS from DOCKERHUB repository135            ACALA_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-acala/tags/?page_size=100 | jq -r '."results"[]["name"]')136          # Show TAGS137            echo "ACALA TAGS:"138            echo $ACALA_TAGS139          # Check correct version ACALA and build it if it doesn't exist in ACALA TAGS140            if [[ ${ACALA_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.acala_version }}"($|[[:space:]]) ]]; then141                echo "Repository has needed ACALA version";142                docker pull uniquenetwork/builder-acala:${{ matrix.acala_version }}143            else144                echo "Repository has not needed ACALA version, so build it";145                cd .docker/ && docker build --file ./Dockerfile-acala.${{ matrix.acala_version }}.yml --tag uniquenetwork/builder-acala:${{ matrix.acala_version }} .146                echo "Push needed ACALA version to the repository";147                docker push uniquenetwork/builder-acala:${{ matrix.acala_version }}148            fi149        shell: bash150151      # Check MOONBEAM version and build it if it doesn't exist in repository152      - name: Generate ENV related extend Dockerfile file for MOONBEAM153        uses: cuchi/jinja2-action@v1.2.0154        with:155          template: .docker/Dockerfile-moonbeam.j2156          output_file: .docker/Dockerfile-moonbeam.${{ matrix.moonbeam_version }}.yml157          variables: |158            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}159            MOONBEAM_BUILD_BRANCH=${{ matrix.moonbeam_version }}160161      - name: Check if the dockerhub repository contains the needed MOONBEAM version162        run: |163          # aquire token164            TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)165            export TOKEN=$TOKEN166167          # Get TAGS from DOCKERHUB repository168            MOONBEAM_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-moonbeam/tags/?page_size=100 | jq -r '."results"[]["name"]')169          # Show TAGS170            echo "MOONBEAM TAGS:"171            echo $MOONBEAM_TAGS172          # Check correct version MOONBEAM and build it if it doesn't exist in MOONBEAM TAGS173            if [[ ${MOONBEAM_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.moonbeam_version }}"($|[[:space:]]) ]]; then174                echo "Repository has needed MOONBEAM version";175                docker pull uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }}176            else177                echo "Repository has not needed MOONBEAM version, so build it";178                cd .docker/ && docker build --file ./Dockerfile-moonbeam.${{ matrix.moonbeam_version }}.yml --tag uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }} .179                echo "Push needed MOONBEAM version to the repository";180                docker push uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }}181            fi182        shell: bash183184      # Check CUMULUS version and build it if it doesn't exist in repository185      - name: Generate ENV related extend Dockerfile file for CUMULUS186        uses: cuchi/jinja2-action@v1.2.0187        with:188          template: .docker/Dockerfile-cumulus.j2189          output_file: .docker/Dockerfile-cumulus.${{ matrix.cumulus_version }}.yml190          variables: |191            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}192            CUMULUS_BUILD_BRANCH=${{ matrix.cumulus_version }}193194      - name: Check if the dockerhub repository contains the needed CUMULUS version195        run: |196          # aquire token197            TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)198            export TOKEN=$TOKEN199200          # Get TAGS from DOCKERHUB repository201            CUMULUS_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-cumulus/tags/?page_size=100 | jq -r '."results"[]["name"]')202          # Show TAGS203            echo "CUMULUS TAGS:"204            echo $CUMULUS_TAGS205          # Check correct version CUMULUS and build it if it doesn't exist in CUMULUS TAGS206            if [[ ${CUMULUS_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.cumulus_version }}"($|[[:space:]]) ]]; then207                echo "Repository has needed CUMULUS version";208                docker pull uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }}209            else210                echo "Repository has not needed CUMULUS version, so build it";211                cd .docker/ && docker build --file ./Dockerfile-cumulus.${{ matrix.cumulus_version }}.yml --tag uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }} .212                echo "Push needed CUMULUS version to the repository";213                docker push uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }}214            fi215        shell: bash216217      # Check ASTAR version and build it if it doesn't exist in repository218      - name: Generate ENV related extend Dockerfile file for ASTAR219        uses: cuchi/jinja2-action@v1.2.0220        with:221          template: .docker/Dockerfile-astar.j2222          output_file: .docker/Dockerfile-astar.${{ matrix.astar_version }}.yml223          variables: |224            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}225            ASTAR_BUILD_BRANCH=${{ matrix.astar_version }}226227      - name: Check if the dockerhub repository contains the needed ASTAR version228        run: |229          # aquire token230            TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)231            export TOKEN=$TOKEN232233          # Get TAGS from DOCKERHUB repository234            ASTAR_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-astar/tags/?page_size=100 | jq -r '."results"[]["name"]')235          # Show TAGS236            echo "ASTAR TAGS:"237            echo $ASTAR_TAGS238          # Check correct version ASTAR and build it if it doesn't exist in ASTAR TAGS239            if [[ ${ASTAR_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.astar_version }}"($|[[:space:]]) ]]; then240                echo "Repository has needed ASTAR version";241                docker pull uniquenetwork/builder-astar:${{ matrix.astar_version }}242            else243                echo "Repository has not needed ASTAR version, so build it";244                cd .docker/ && docker build --file ./Dockerfile-astar.${{ matrix.astar_version }}.yml --tag uniquenetwork/builder-astar:${{ matrix.astar_version }} .245                echo "Push needed ASTAR version to the repository";246                docker push uniquenetwork/builder-astar:${{ matrix.astar_version }}247            fi248        shell: bash249250      # Check POLKADEX version and build it if it doesn't exist in repository251      - name: Generate ENV related extend Dockerfile file for POLKADEX252        uses: cuchi/jinja2-action@v1.2.0253        with:254          template: .docker/Dockerfile-polkadex.j2255          output_file: .docker/Dockerfile-polkadex.${{ matrix.polkadex_version }}.yml256          variables: |257            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}258            POLKADEX_BUILD_BRANCH=${{ matrix.polkadex_version }}259260      - name: Check if the dockerhub repository contains the needed POLKADEX version261        run: |262          # aquire token263            TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)264            export TOKEN=$TOKEN265266          # Get TAGS from DOCKERHUB repository267            POLKADEX_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-polkadex/tags/?page_size=100 | jq -r '."results"[]["name"]')268          # Show TAGS269            echo "POLKADEX TAGS:"270            echo $POLKADEX_TAGS271          # Check correct version POLKADEX and build it if it doesn't exist in POLKADEX TAGS272            if [[ ${POLKADEX_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.polkadex_version }}"($|[[:space:]]) ]]; then273                echo "Repository has needed POLKADEX version";274                docker pull uniquenetwork/builder-polkadex:${{ matrix.polkadex_version }}275            else276                echo "Repository has not needed POLKADEX version, so build it";277                cd .docker/ && docker build --file ./Dockerfile-polkadex.${{ matrix.polkadex_version }}.yml --tag uniquenetwork/builder-polkadex:${{ matrix.polkadex_version }} .278                echo "Push needed POLKADEX version to the repository";279                docker push uniquenetwork/builder-polkadex:${{ matrix.polkadex_version }}280            fi281        shell: bash282283      - name: Build unique-chain284        run: |285          docker build --file .docker/Dockerfile-unique \286            --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }} \287            --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} \288            --tag uniquenetwork/ci-xcm-local:${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }} \289            .290291      - name: Push docker image version292        run: docker push uniquenetwork/ci-xcm-local:${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }}293294      - uses: actions/setup-node@v3.5.1295        with:296          node-version: 18297298      - name: Install baedeker299        uses: UniqueNetwork/baedeker-action/setup@built300301      - name: Setup library302        run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library303304      - name: Start network305        uses: UniqueNetwork/baedeker-action@built306        id: bdk307        with:308          jpath: |309            .baedeker/vendor310          tla-str: |311            relay_spec=${{ env.RELAY_CHAIN_TYPE }}-local312          inputs: |313            .baedeker/xcm-${{ matrix.network }}.jsonnet314            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'uniquenetwork/builder-polkadot:${{ matrix.relay_branch }}'}})315            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'uniquenetwork/ci-xcm-local:${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }}'}})316            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/acala':{dockerImage:'uniquenetwork/builder-acala:${{ matrix.acala_version }}'}})317            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/moonbeam':{dockerImage:'uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }}'}})318            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/cumulus':{dockerImage:'uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }}'}})319            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/astar':{dockerImage:'uniquenetwork/builder-astar:${{ matrix.astar_version }}'}})320            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadex':{dockerImage:'uniquenetwork/builder-polkadex:${{ matrix.polkadex_version }}'}})321322      - name: Upload network config323        uses: actions/upload-artifact@v3324        with:325          name: ${{ matrix.network }}-network-config326          path: ${{ steps.bdk.outputs.composeProject }}327          retention-days: 2328329      - name: Yarn install330        working-directory: tests331        run: |332          yarn install333          yarn add mochawesome334335      - name: Call HRMP initialization336        working-directory: tests337        run: |338          yarn ts-node --esm src/util/createHrmp.ts ${{matrix.network}}339340      - name: Run XCM tests341        working-directory: js-packages/tests342        run: |343          # Wanted by both wait_for_first_block344          export RPC_URL="${RELAY_OPAL_HTTP_URL:-${RELAY_QUARTZ_HTTP_URL:-${RELAY_UNIQUE_HTTP_URL:-}}}"345          ../scripts/src/generate_types/wait_for_first_block.sh346          echo "Ready to start tests"347          NOW=$(date +%s) && yarn ${{ matrix.runtest }} --reporter mochawesome --reporter-options reportFilename=test-${NOW}348349      - name: XCM Test Report350        uses: phoenix-actions/test-reporting@v10351        id: test-report352        if: success() || failure()353        with:354          name: XCM Tests ${{ matrix.network }}355          path: js-packages/tests/mochawesome-report/test-*.json356          reporter: mochawesome-json357          fail-on-error: 'false'358359      - name: Clean Workspace360        if: always()361        uses: AutoModality/action-clean@v1.1.0362363      - name: Remove builder cache364        if: always()365        run: |366          docker system prune -a -f
after · .github/workflows/xcm.yml
1name: xcm-testnet23# Controls when the action will run.4on:5  workflow_call:67  # Allows you to run this workflow manually from the Actions tab8  workflow_dispatch:910#Define Workflow variables11env:12  REPO_URL: ${{ github.server_url }}/${{ github.repository }}1314# A workflow run is made up of one or more jobs that can run sequentially or in parallel15jobs:16  prepare-execution-marix:17    name: Prepare execution matrix1819    runs-on: [self-hosted-ci]20    outputs:21      matrix: ${{ steps.create_matrix.outputs.matrix }}2223    steps:24      - name: Clean Workspace25        uses: AutoModality/action-clean@v1.1.02627      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it28      - uses: actions/checkout@v3.1.029        with:30          ref: ${{ github.head_ref }} #Checking out head commit3132      - name: Read .env file33        uses: xom9ikk/dotenv@v23435      - name: Create Execution matrix36        uses: CertainLach/create-matrix-action@v437        id: create_matrix38        with:39          matrix: |40            network {opal}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, acala_version {${{ env.ACALA_BUILD_BRANCH }}}, moonbeam_version {${{ env.MOONBEAM_BUILD_BRANCH }}}, cumulus_version {${{ env.WESTMINT_BUILD_BRANCH }}}, astar_version {${{ env.ASTAR_BUILD_BRANCH }}}, polkadex_version {${{ env.POLKADEX_BUILD_BRANCH }}}, runtest {testXcmOpal}, runtime_features {opal-runtime}41            network {quartz}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, acala_version {${{ env.KARURA_BUILD_BRANCH }}}, moonbeam_version {${{ env.MOONRIVER_BUILD_BRANCH }}}, cumulus_version {${{ env.STATEMINE_BUILD_BRANCH }}}, astar_version {${{ env.SHIDEN_BUILD_BRANCH }}}, polkadex_version {${{ env.POLKADEX_BUILD_BRANCH }}}, runtest {testFullXcmQuartz}, runtime_features {quartz-runtime}42            network {unique}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, acala_version {${{ env.ACALA_BUILD_BRANCH }}}, moonbeam_version {${{ env.MOONBEAM_BUILD_BRANCH }}}, cumulus_version {${{ env.STATEMINT_BUILD_BRANCH }}}, astar_version {${{ env.ASTAR_BUILD_BRANCH }}}, polkadex_version {${{ env.POLKADEX_BUILD_BRANCH }}}, runtest {testFullXcmUnique}, runtime_features {unique-runtime}4344  xcm:45    needs: prepare-execution-marix46    # The type of runner that the job will run on47    runs-on: [XL]4849    timeout-minutes: 6005051    name: ${{ matrix.network }}5253    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.5455    strategy:56      matrix:57        include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}5859    steps:60      - name: Skip if pull request is in Draft61        if: github.event.pull_request.draft == true62        run: exit 16364      - name: Clean Workspace65        uses: AutoModality/action-clean@v1.1.06667      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it68      - uses: actions/checkout@v3.1.069        with:70          ref: ${{ github.head_ref }} #Checking out head commit7172      # Prepare SHA73      - name: Prepare SHA74        uses: ./.github/actions/prepare7576      - name: Read .env file77        uses: xom9ikk/dotenv@v27879      - name: Log in to Docker Hub80        uses: docker/login-action@v2.1.081        with:82          username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}83          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}8485      # Check POLKADOT version and build it if it doesn't exist in repository86      - name: Generate ENV related extend Dockerfile file for POLKADOT87        uses: cuchi/jinja2-action@v1.2.088        with:89          template: .docker/Dockerfile-polkadot.j290          output_file: .docker/Dockerfile-polkadot.${{ matrix.relay_branch }}.yml91          variables: |92            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}93            POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }}9495      - name: Check if the dockerhub repository contains the needed version POLKADOT96        run: |97          # aquire token98            TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)99            export TOKEN=$TOKEN100101          # Get TAGS from DOCKERHUB POLKADOT repository102            POLKADOT_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-polkadot/tags/?page_size=100 | jq -r '."results"[]["name"]')103          # Show TAGS104            echo "POLKADOT TAGS:"105            echo $POLKADOT_TAGS106          # Check correct version POLKADOT and build it if it doesn't exist in POLKADOT TAGS107            if [[ ${POLKADOT_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.relay_branch }}"($|[[:space:]]) ]]; then108                echo "Repository has needed POLKADOT version";109                docker pull uniquenetwork/builder-polkadot:${{ matrix.relay_branch }}110            else111                echo "Repository has not needed POLKADOT version, so build it";112                cd .docker/ && docker build --file ./Dockerfile-polkadot.${{ matrix.relay_branch }}.yml --tag uniquenetwork/builder-polkadot:${{ matrix.relay_branch }} .113                echo "Push needed POLKADOT version to the repository";114                docker push uniquenetwork/builder-polkadot:${{ matrix.relay_branch }}115            fi116        shell: bash117118      # Check ACALA version and build it if it doesn't exist in repository119      - name: Generate ENV related extend Dockerfile file for ACALA120        uses: cuchi/jinja2-action@v1.2.0121        with:122          template: .docker/Dockerfile-acala.j2123          output_file: .docker/Dockerfile-acala.${{ matrix.acala_version }}.yml124          variables: |125            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}126            ACALA_BUILD_BRANCH=${{ matrix.acala_version }}127128      - name: Check if the dockerhub repository contains the needed ACALA version129        run: |130          # aquire token131            TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)132            export TOKEN=$TOKEN133134          # Get TAGS from DOCKERHUB repository135            ACALA_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-acala/tags/?page_size=100 | jq -r '."results"[]["name"]')136          # Show TAGS137            echo "ACALA TAGS:"138            echo $ACALA_TAGS139          # Check correct version ACALA and build it if it doesn't exist in ACALA TAGS140            if [[ ${ACALA_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.acala_version }}"($|[[:space:]]) ]]; then141                echo "Repository has needed ACALA version";142                docker pull uniquenetwork/builder-acala:${{ matrix.acala_version }}143            else144                echo "Repository has not needed ACALA version, so build it";145                cd .docker/ && docker build --file ./Dockerfile-acala.${{ matrix.acala_version }}.yml --tag uniquenetwork/builder-acala:${{ matrix.acala_version }} .146                echo "Push needed ACALA version to the repository";147                docker push uniquenetwork/builder-acala:${{ matrix.acala_version }}148            fi149        shell: bash150151      # Check MOONBEAM version and build it if it doesn't exist in repository152      - name: Generate ENV related extend Dockerfile file for MOONBEAM153        uses: cuchi/jinja2-action@v1.2.0154        with:155          template: .docker/Dockerfile-moonbeam.j2156          output_file: .docker/Dockerfile-moonbeam.${{ matrix.moonbeam_version }}.yml157          variables: |158            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}159            MOONBEAM_BUILD_BRANCH=${{ matrix.moonbeam_version }}160161      - name: Check if the dockerhub repository contains the needed MOONBEAM version162        run: |163          # aquire token164            TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)165            export TOKEN=$TOKEN166167          # Get TAGS from DOCKERHUB repository168            MOONBEAM_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-moonbeam/tags/?page_size=100 | jq -r '."results"[]["name"]')169          # Show TAGS170            echo "MOONBEAM TAGS:"171            echo $MOONBEAM_TAGS172          # Check correct version MOONBEAM and build it if it doesn't exist in MOONBEAM TAGS173            if [[ ${MOONBEAM_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.moonbeam_version }}"($|[[:space:]]) ]]; then174                echo "Repository has needed MOONBEAM version";175                docker pull uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }}176            else177                echo "Repository has not needed MOONBEAM version, so build it";178                cd .docker/ && docker build --file ./Dockerfile-moonbeam.${{ matrix.moonbeam_version }}.yml --tag uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }} .179                echo "Push needed MOONBEAM version to the repository";180                docker push uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }}181            fi182        shell: bash183184      # Check CUMULUS version and build it if it doesn't exist in repository185      - name: Generate ENV related extend Dockerfile file for CUMULUS186        uses: cuchi/jinja2-action@v1.2.0187        with:188          template: .docker/Dockerfile-cumulus.j2189          output_file: .docker/Dockerfile-cumulus.${{ matrix.cumulus_version }}.yml190          variables: |191            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}192            CUMULUS_BUILD_BRANCH=${{ matrix.cumulus_version }}193194      - name: Check if the dockerhub repository contains the needed CUMULUS version195        run: |196          # aquire token197            TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)198            export TOKEN=$TOKEN199200          # Get TAGS from DOCKERHUB repository201            CUMULUS_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-cumulus/tags/?page_size=100 | jq -r '."results"[]["name"]')202          # Show TAGS203            echo "CUMULUS TAGS:"204            echo $CUMULUS_TAGS205          # Check correct version CUMULUS and build it if it doesn't exist in CUMULUS TAGS206            if [[ ${CUMULUS_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.cumulus_version }}"($|[[:space:]]) ]]; then207                echo "Repository has needed CUMULUS version";208                docker pull uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }}209            else210                echo "Repository has not needed CUMULUS version, so build it";211                cd .docker/ && docker build --file ./Dockerfile-cumulus.${{ matrix.cumulus_version }}.yml --tag uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }} .212                echo "Push needed CUMULUS version to the repository";213                docker push uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }}214            fi215        shell: bash216217      # Check ASTAR version and build it if it doesn't exist in repository218      - name: Generate ENV related extend Dockerfile file for ASTAR219        uses: cuchi/jinja2-action@v1.2.0220        with:221          template: .docker/Dockerfile-astar.j2222          output_file: .docker/Dockerfile-astar.${{ matrix.astar_version }}.yml223          variables: |224            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}225            ASTAR_BUILD_BRANCH=${{ matrix.astar_version }}226227      - name: Check if the dockerhub repository contains the needed ASTAR version228        run: |229          # aquire token230            TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)231            export TOKEN=$TOKEN232233          # Get TAGS from DOCKERHUB repository234            ASTAR_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-astar/tags/?page_size=100 | jq -r '."results"[]["name"]')235          # Show TAGS236            echo "ASTAR TAGS:"237            echo $ASTAR_TAGS238          # Check correct version ASTAR and build it if it doesn't exist in ASTAR TAGS239            if [[ ${ASTAR_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.astar_version }}"($|[[:space:]]) ]]; then240                echo "Repository has needed ASTAR version";241                docker pull uniquenetwork/builder-astar:${{ matrix.astar_version }}242            else243                echo "Repository has not needed ASTAR version, so build it";244                cd .docker/ && docker build --file ./Dockerfile-astar.${{ matrix.astar_version }}.yml --tag uniquenetwork/builder-astar:${{ matrix.astar_version }} .245                echo "Push needed ASTAR version to the repository";246                docker push uniquenetwork/builder-astar:${{ matrix.astar_version }}247            fi248        shell: bash249250      # Check POLKADEX version and build it if it doesn't exist in repository251      - name: Generate ENV related extend Dockerfile file for POLKADEX252        uses: cuchi/jinja2-action@v1.2.0253        with:254          template: .docker/Dockerfile-polkadex.j2255          output_file: .docker/Dockerfile-polkadex.${{ matrix.polkadex_version }}.yml256          variables: |257            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}258            POLKADEX_BUILD_BRANCH=${{ matrix.polkadex_version }}259260      - name: Check if the dockerhub repository contains the needed POLKADEX version261        run: |262          # aquire token263            TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)264            export TOKEN=$TOKEN265266          # Get TAGS from DOCKERHUB repository267            POLKADEX_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-polkadex/tags/?page_size=100 | jq -r '."results"[]["name"]')268          # Show TAGS269            echo "POLKADEX TAGS:"270            echo $POLKADEX_TAGS271          # Check correct version POLKADEX and build it if it doesn't exist in POLKADEX TAGS272            if [[ ${POLKADEX_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.polkadex_version }}"($|[[:space:]]) ]]; then273                echo "Repository has needed POLKADEX version";274                docker pull uniquenetwork/builder-polkadex:${{ matrix.polkadex_version }}275            else276                echo "Repository has not needed POLKADEX version, so build it";277                cd .docker/ && docker build --file ./Dockerfile-polkadex.${{ matrix.polkadex_version }}.yml --tag uniquenetwork/builder-polkadex:${{ matrix.polkadex_version }} .278                echo "Push needed POLKADEX version to the repository";279                docker push uniquenetwork/builder-polkadex:${{ matrix.polkadex_version }}280            fi281        shell: bash282283      - name: Build unique-chain284        run: |285          docker build --file .docker/Dockerfile-unique \286            --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }} \287            --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} \288            --tag uniquenetwork/ci-xcm-local:${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }} \289            .290291      - name: Push docker image version292        run: docker push uniquenetwork/ci-xcm-local:${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }}293294      - uses: actions/setup-node@v3.5.1295        with:296          node-version: 18297298      - name: Install baedeker299        uses: UniqueNetwork/baedeker-action/setup@built300301      - name: Setup library302        run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library303304      - name: Start network305        uses: UniqueNetwork/baedeker-action@built306        id: bdk307        with:308          jpath: |309            .baedeker/vendor310          tla-str: |311            relay_spec=${{ env.RELAY_CHAIN_TYPE }}-local312          inputs: |313            .baedeker/xcm-${{ matrix.network }}.jsonnet314            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'uniquenetwork/builder-polkadot:${{ matrix.relay_branch }}'}})315            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'uniquenetwork/ci-xcm-local:${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }}'}})316            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/acala':{dockerImage:'uniquenetwork/builder-acala:${{ matrix.acala_version }}'}})317            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/moonbeam':{dockerImage:'uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }}'}})318            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/cumulus':{dockerImage:'uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }}'}})319            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/astar':{dockerImage:'uniquenetwork/builder-astar:${{ matrix.astar_version }}'}})320            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadex':{dockerImage:'uniquenetwork/builder-polkadex:${{ matrix.polkadex_version }}'}})321322      - name: Upload network config323        uses: actions/upload-artifact@v3324        with:325          name: ${{ matrix.network }}-network-config326          path: ${{ steps.bdk.outputs.composeProject }}327          retention-days: 2328329      - name: Yarn install330        working-directory: js-packages/tests331        run: |332          yarn install333          yarn add mochawesome334335      - name: Call HRMP initialization336        working-directory: js-packages/tests337        run: |338          yarn ts-node --esm util/createHrmp.ts ${{matrix.network}}339340      - name: Run XCM tests341        working-directory: js-packages/tests342        run: |343          # Wanted by both wait_for_first_block344          export RPC_URL="${RELAY_OPAL_HTTP_URL:-${RELAY_QUARTZ_HTTP_URL:-${RELAY_UNIQUE_HTTP_URL:-}}}"345          ../scripts/wait_for_first_block.sh346          echo "Ready to start tests"347          NOW=$(date +%s) && yarn ${{ matrix.runtest }} --reporter mochawesome --reporter-options reportFilename=test-${NOW}348349      - name: XCM Test Report350        uses: phoenix-actions/test-reporting@v10351        id: test-report352        if: success() || failure()353        with:354          name: XCM Tests ${{ matrix.network }}355          path: js-packages/tests/mochawesome-report/test-*.json356          reporter: mochawesome-json357          fail-on-error: 'false'358359      - name: Clean Workspace360        if: always()361        uses: AutoModality/action-clean@v1.1.0362363      - name: Remove builder cache364        if: always()365        run: |366          docker system prune -a -f
modified.github/workflows/yarn-dev.ymldiffbeforeafterboth
--- a/.github/workflows/yarn-dev.yml
+++ b/.github/workflows/yarn-dev.yml
@@ -66,7 +66,7 @@
         run: |
           yarn install
           yarn add mochawesome
-          ../scripts/src/generate_types/wait_for_first_block.sh
+          ../scripts/wait_for_first_block.sh
           echo "Ready to start tests"
           NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-${NOW}
         env:
@@ -90,13 +90,13 @@
         working-directory: js-packages/scripts
         run: |
           yarn install
-          npx ts-node --esm ./src/benchmarks/mintFee/index.ts
+          npx ts-node --esm ./benchmarks/mintFee/index.ts
 
       - name: Run benchmark opsFee tests
         working-directory: js-packages/scripts
         run: |
           yarn install
-          npx ts-node --esm ./src/benchmarks/opsFee/index.ts
+          npx ts-node --esm ./benchmarks/opsFee/index.ts
 
       - name: Stop running containers
         if: always()                   # run this step always
modifiedMakefilediffbeforeafterboth
--- a/Makefile
+++ b/Makefile
@@ -7,25 +7,25 @@
 	@echo "  bench-unique"
 
 NATIVE_FUNGIBLE_EVM_STUBS=./pallets/balances-adapter/src/stubs
-NATIVE_FUNGIBLE_EVM_ABI=./js-packages/tests/src/eth/abi/nativeFungible.json
+NATIVE_FUNGIBLE_EVM_ABI=./js-packages/tests/eth/abi/nativeFungible.json
 
 FUNGIBLE_EVM_STUBS=./pallets/fungible/src/stubs
-FUNGIBLE_EVM_ABI=./js-packages/tests/src/eth/abi/fungible.json
+FUNGIBLE_EVM_ABI=./js-packages/tests/eth/abi/fungible.json
 
 NONFUNGIBLE_EVM_STUBS=./pallets/nonfungible/src/stubs
-NONFUNGIBLE_EVM_ABI=./js-packages/tests/src/eth/abi/nonFungible.json
+NONFUNGIBLE_EVM_ABI=./js-packages/tests/eth/abi/nonFungible.json
 
 REFUNGIBLE_EVM_STUBS=./pallets/refungible/src/stubs
-REFUNGIBLE_EVM_ABI=./js-packages/tests/src/eth/abi/reFungible.json
-REFUNGIBLE_TOKEN_EVM_ABI=./js-packages/tests/src/eth/abi/reFungibleToken.json
+REFUNGIBLE_EVM_ABI=./js-packages/tests/eth/abi/reFungible.json
+REFUNGIBLE_TOKEN_EVM_ABI=./js-packages/tests/eth/abi/reFungibleToken.json
 
 CONTRACT_HELPERS_STUBS=./pallets/evm-contract-helpers/src/stubs/
-CONTRACT_HELPERS_ABI=./js-packages/tests/src/eth/abi/contractHelpers.json
+CONTRACT_HELPERS_ABI=./js-packages/tests/eth/abi/contractHelpers.json
 
 COLLECTION_HELPER_STUBS=./pallets/unique/src/eth/stubs/
-COLLECTION_HELPER_ABI=./js-packages/tests/src/eth/abi/collectionHelpers.json
+COLLECTION_HELPER_ABI=./js-packages/tests/eth/abi/collectionHelpers.json
 
-TESTS_API=./js-packages/tests/src/eth/api/
+TESTS_API=./js-packages/tests/eth/api/
 
 .PHONY: regenerate_solidity
 regenerate_solidity: UniqueFungible.sol UniqueNFT.sol UniqueRefungible.sol UniqueRefungibleToken.sol ContractHelpers.sol CollectionHelpers.sol
modifieddoc/separate_rpc.mddiffbeforeafterboth
--- a/doc/separate_rpc.md
+++ b/doc/separate_rpc.md
@@ -77,7 +77,7 @@
     * runtime/quartz/Cargo.toml
     * runtime/unique/Cargo.toml
 
-7. Create tests/src/interfaces/ModuleName/definitions.ts and describe the necessary methods in it.
+7. Create js-packages/types/ModuleName/definitions.ts and describe the necessary methods in it.
     ```ts
     type RpcParam = {
         name: string;
@@ -105,19 +105,19 @@
         };
     ```
 
-8. Describe definitions from paragraph 7 in tests/src/interfaces/definitions.ts.
+8. Describe definitions from paragraph 7 in js-packages/types/definitions.ts.
     ```ts
     export {default as ModuleName} from './module/definitions';
     ```
 
-9. tests/src/substrate/substrate-api.ts
+9. js-packages/tests/substrate/substrate-api.ts
     * Set the RPC interface in the `defaultApiOptions` function, add an entry in the `rpc` parameter
         ```ts
         module: defs.module.rpc,
         ```
 
-10. tests/src/util/playgrounds/unique.dev.ts
+10. js-packages/playgrounds/unique.dev.ts
     * Specify RPC interface in `connect` function, add entry in `rpc` parameter
         ```ts
         module: defs.module.rpc,
-        ```
\ No newline at end of file
+        ```
modifiedjs-packages/.dockerignorediffbeforeafterboth
--- a/js-packages/.dockerignore
+++ b/js-packages/.dockerignore
@@ -1,2 +1 @@
 node_modules/
-Dockerfile-tests
deletedjs-packages/Dockerfile-testsdiffbeforeafterboth
--- a/js-packages/Dockerfile-tests
+++ /dev/null
@@ -1,38 +0,0 @@
-# ===== Integration Tests ======
-
-
-FROM ubuntu:22.04
-LABEL maintainer="UniqueNetwork.io"
-
-RUN apt -y update; apt -y upgrade; apt -y install curl
-
-
-RUN mkdir unique_parachain
-WORKDIR /unique_parachain
-
-RUN apt-get -y update && \
-      apt-get -y upgrade && \
-      apt-get -y install curl jq && \
-      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.2.0 && \
-      nvm alias default v16.2.0 && \
-      nvm use default
-
-ENV YARN_CACHE_FOLDER ~/.yarn
-
-COPY package.json yarn.lock ./
-
-RUN export NVM_DIR="$HOME/.nvm" && \
-    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
-    npm install --global yarn && \
-    yarn add mochawesome && \
-    yarn --pure-lockfile
-
-COPY . .
-
-CMD export NVM_DIR="$HOME/.nvm" && \
-    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
-    ./scripts/wait_for_first_block.sh && \
-    NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-${NOW}
modifiedjs-packages/scripts/benchmarks/mintFee/index.tsdiffbeforeafterboth
--- a/js-packages/scripts/benchmarks/mintFee/index.ts
+++ b/js-packages/scripts/benchmarks/mintFee/index.ts
@@ -14,23 +14,23 @@
 
 export const CONTRACT_IMPORT: ContractImports[] = [
   {
-    fsPath: `${dirname}/../../../../tests/eth/api/CollectionHelpers.sol`,
+    fsPath: `${dirname}/../../../tests/eth/api/CollectionHelpers.sol`,
     solPath: 'eth/api/CollectionHelpers.sol',
   },
   {
-    fsPath: `${dirname}/../../../../tests/eth/api/ContractHelpers.sol`,
+    fsPath: `${dirname}/../../../tests/eth/api/ContractHelpers.sol`,
     solPath: 'eth/api/ContractHelpers.sol',
   },
   {
-    fsPath: `${dirname}/../../../../tests/eth/api/UniqueRefungibleToken.sol`,
+    fsPath: `${dirname}/../../../tests/eth/api/UniqueRefungibleToken.sol`,
     solPath: 'eth/api/UniqueRefungibleToken.sol',
   },
   {
-    fsPath: `${dirname}/../../../../tests/eth/api/UniqueRefungible.sol`,
+    fsPath: `${dirname}/../../../tests/eth/api/UniqueRefungible.sol`,
     solPath: 'eth/api/UniqueRefungible.sol',
   },
   {
-    fsPath: `${dirname}/../../../../tests/eth/api/UniqueNFT.sol`,
+    fsPath: `${dirname}/../../../tests/eth/api/UniqueNFT.sol`,
     solPath: 'eth/api/UniqueNFT.sol',
   },
 ];
modifiedjs-packages/scripts/package.jsondiffbeforeafterboth
--- a/js-packages/scripts/package.json
+++ b/js-packages/scripts/package.json
@@ -14,10 +14,10 @@
     "tslib": "^2.6.2"
   },
   "scripts": {
-    "benchMintingFee": "ts-node src/benchmarks/mintFee/benchmark.ts",
-    "loadTransfer": "ts-node src/transfer.nload.ts",
-    "generateEnv": "ts-node --esm ./src/generateEnv.ts",
-    "propose-upgrade": "ts-node --esm ./src/proposeupgrade.ts",
-    "propose-fast-track": "ts-node --esm ./src/proposefasttrack.ts"
+    "benchMintingFee": "ts-node benchmarks/mintFee/benchmark.ts",
+    "loadTransfer": "ts-node transfer.nload.ts",
+    "generateEnv": "ts-node --esm ./generateEnv.ts",
+    "propose-upgrade": "ts-node --esm ./proposeupgrade.ts",
+    "propose-fast-track": "ts-node --esm ./proposefasttrack.ts"
   }
 }
addedjs-packages/scripts/wait_for_first_block.shdiffbeforeafterboth
--- /dev/null
+++ b/js-packages/scripts/wait_for_first_block.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env bash
+
+DIR=$(dirname "$0")
+
+. "$DIR/functions.sh"
+
+last_block_id=0
+block_id=0
+function get_block {
+	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
+}
+
+function reset_check {
+	last_block_id=0
+	block_id=0
+}
+
+while ! had_new_block; do
+	echo "Waiting for next block..."
+	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
+done
+
+echo "Chain is running!"
modifiedjs-packages/tests/package.jsondiffbeforeafterboth
--- a/js-packages/tests/package.json
+++ b/js-packages/tests/package.json
@@ -26,6 +26,10 @@
         "_test": "yarn setup && mocha --timeout 9999999 --loader=ts-node/esm.mjs",
         "_testParallel": "yarn setup && mocha --timeout 9999999 --parallel --loader=ts-node/esm.mjs",
         "test": "yarn _test './**/*.*test.ts'",
+        "testParallel": "yarn _testParallel './**/*.test.ts'",
+        "testSequential": "yarn _test './**/*.seqtest.ts'",
+        "testGovernance": "RUN_GOV_TESTS=1 yarn _test ./**/governance/*.*test.ts",
+        "testCollators": "RUN_COLLATOR_TESTS=1 yarn _test ./**/collator-selection/**.*test.ts --timeout 49999999",
         "load": "yarn _test './**/*.load.ts'"
     }
 }