git.delta.rocks / unique-network / refs/commits / 3fe954dfcd34

difftreelog

Rename workflows

Konstantin Astakhov2022-10-26parent: #bb1e6df.patch.diff
in: master

21 files changed

modified.github/workflows/canary.ymldiffbeforeafterboth
--- a/.github/workflows/canary.yml
+++ b/.github/workflows/canary.yml
@@ -5,7 +5,7 @@
   
   market-e2e-test:
     name: market e2e tests    
-    uses: ./.github/workflows/market-test_v2.yml
+    uses: ./.github/workflows/market-test.yml
     secrets: inherit
 
 
modified.github/workflows/ci-develop.ymldiffbeforeafterboth
--- a/.github/workflows/ci-develop.yml
+++ b/.github/workflows/ci-develop.yml
@@ -16,14 +16,13 @@
 # List of a jobs included into Workflow.
 jobs:
 
-  yarn-test-dev:
+  yarn-dev:
     if: github.event.pull_request.draft == false                                                                             # Conditional check for draft per job.
-    uses: ./.github/workflows/dev-build-tests_v2.yml
-
+    uses: ./.github/workflows/yarn-dev.yml
 
   unit-test:
     if: github.event.pull_request.draft == false                                                                             # Conditional check for draft per job.
-    uses: ./.github/workflows/unit-test_v2.yml
+    uses: ./.github/workflows/unit-test.yml
 
   canary:
     if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'canary')) }}    # Conditional check for draft & labels per job.
@@ -41,16 +40,12 @@
   
   node-only-update:
     if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'node-only-update')) }}  # Conditional check for draft & labels per job.
-    uses: ./.github/workflows/node-only-update_v2.yml
+    uses: ./.github/workflows/node-only-update.yml
     
-  parallel_and_sequential_tests:
+  integration:
     if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'integration')) }}      # Conditional check for draft & labels per job.
     uses: ./.github/workflows/integration-tests.yml
 
   codestyle:
     if: github.event.pull_request.draft == false                                                                             # Conditional check for draft per job.
-    uses: ./.github/workflows/codestyle_v2.yml
-  
-  yarn_eslint:
-    if: github.event.pull_request.draft == false                                                                             # Conditional check for draft per job.
-    uses: ./.github/workflows/test_codestyle_v2.yml
+    uses: ./.github/workflows/codestyle.yml
modified.github/workflows/ci-master.ymldiffbeforeafterboth
--- a/.github/workflows/ci-master.yml
+++ b/.github/workflows/ci-master.yml
@@ -17,10 +17,10 @@
 jobs:
 
   unit-test:
-    uses: ./.github/workflows/unit-test_v2.yml
+    uses: ./.github/workflows/unit-test.yml
 
   node-only-update:
-    uses: ./.github/workflows/node-only-update_v2.yml
+    uses: ./.github/workflows/node-only-update.yml
 
   forkless:
     uses: ./.github/workflows/forkless.yml
@@ -34,4 +34,4 @@
     secrets: inherit # pass all secrets from initial workflow to nested
 
   codestyle:
-    uses: ./.github/workflows/codestyle_v2.yml
+    uses: ./.github/workflows/codestyle.yml
added.github/workflows/codestyle.ymldiffbeforeafterboth
--- /dev/null
+++ b/.github/workflows/codestyle.yml
@@ -0,0 +1,55 @@
+# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586837012/Code+style+testing
+# Nested workflow for checks related to formatting Rust code 
+
+name: codestyle
+
+# Triger: only call from main workflow(re-usable workflows)
+on:
+  workflow_call:
+
+jobs:
+  rustfmt:
+    runs-on: [ self-hosted-ci ]
+    steps:
+      - uses: actions/checkout@v3
+      - name: Install latest nightly
+        uses: actions-rs/toolchain@v1
+        with:
+            toolchain: nightly
+            default: true
+            target: wasm32-unknown-unknown
+            components: rustfmt, clippy
+      - name: Run cargo fmt
+        run: cargo fmt -- --check   # In that mode it returns only exit code.
+      - name: Cargo fmt state
+        if: success()
+        run: echo "Nothing to do. Command 'cargo fmt -- --check' returned exit code 0."
+
+  yarn_eslint:
+    runs-on: [ self-hosted-ci ]
+    steps:
+      - uses: actions/checkout@v3
+      - uses: actions/setup-node@v3
+        with:
+          node-version: 16
+      - name: Install modules
+        run: cd tests && yarn
+      - name: Run ESLint
+        run: cd tests && yarn eslint --ext .ts,.js src/
+
+  clippy:
+    if: ${{ false }}
+    runs-on: [ self-hosted-ci ]
+    steps:
+      - uses: actions/checkout@v3
+      - name: Install substrate dependencies
+        run: sudo apt-get install libssl-dev pkg-config libclang-dev clang protobuf-compiler
+      - name: Install latest nightly
+        uses: actions-rs/toolchain@v1
+        with:
+            toolchain: nightly
+            default: true
+            target: wasm32-unknown-unknown
+            components: rustfmt, clippy
+      - name: Run cargo check
+        run: cargo clippy -- -Dwarnings
deleted.github/workflows/codestyle_v2.ymldiffbeforeafterboth
--- a/.github/workflows/codestyle_v2.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586837012/Code+style+testing
-# Nested workflow for checks related to formatting Rust code 
-
-name: cargo fmt
-
-# Triger: only call from main workflow(re-usable workflows)
-on:
-  workflow_call:
-
-jobs:
-  rustfmt:
-    runs-on: self-hosted-ci
-
-    steps:
-      - uses: actions/checkout@v3
-      - name: Install latest nightly
-        uses: actions-rs/toolchain@v1
-        with:
-            toolchain: nightly
-            default: true
-            target: wasm32-unknown-unknown
-            components: rustfmt, clippy
-      - name: Run cargo fmt
-        run: cargo fmt -- --check   # In that mode it returns only exit code.
-      - name: Cargo fmt state
-        if: success()
-        run: echo "Nothing to do. Command 'cargo fmt -- --check' returned exit code 0."
-
-
-  clippy:
-    if: ${{ false }}
-    runs-on: self-hosted-ci
-
-    steps:
-
-      - uses: actions/checkout@v3
-      - name: Install substrate dependencies
-        run: sudo apt-get install libssl-dev pkg-config libclang-dev clang protobuf-compiler
-      - name: Install latest nightly
-        uses: actions-rs/toolchain@v1
-        with:
-            toolchain: nightly
-            default: true
-            target: wasm32-unknown-unknown
-            components: rustfmt, clippy
-      - name: Run cargo check
-        run: cargo clippy -- -Dwarnings
deleted.github/workflows/dev-build-tests_v2.ymldiffbeforeafterboth
--- a/.github/workflows/dev-build-tests_v2.yml
+++ /dev/null
@@ -1,101 +0,0 @@
-# Integration test in --dev mode
-# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586411104/Integration+tests
-name: yarn test dev
-
-# Triger: only call from main workflow(re-usable workflows)
-on:
-  workflow_call:
-
-
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-  
-  dev_build_int_tests:
-    # The type of runner that the job will run on
-    runs-on: [self-hosted-ci,medium]
-    timeout-minutes: 1380
-
-    name: ${{ matrix.network }}
-
-    continue-on-error: true         #Do not stop testing of matrix runs failed.  As it decided during PR review - it required 50/50& Let's check it with false.
-
-    strategy:
-      matrix:
-        include:
-          - network: "opal"
-            features: "opal-runtime"
-          - network: "quartz"
-            features: "quartz-runtime"
-          - network: "unique"
-            features: "unique-runtime"
-
-    steps:
-
-      - name: Clean Workspace
-        uses: AutoModality/action-clean@v1.1.0
-
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-        with:
-          ref: ${{ github.head_ref }}  #Checking out head commit
-
-      - name: Read .env file
-        uses: xom9ikk/dotenv@v2
-
-      - name: Generate ENV related extend file for docker-compose
-        uses: cuchi/jinja2-action@v1.2.0
-        with:
-          template: .docker/docker-compose.tmp-dev.j2
-          output_file: .docker/docker-compose.${{ matrix.network }}.yml
-          variables: |
-            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
-            FEATURE=${{ matrix.features }}
-    
-
-      - name: Show build configuration
-        run: cat .docker/docker-compose.${{ matrix.network }}.yml
-
-      - name: Build the stack
-        run: docker-compose -f ".docker/docker-compose-dev.yaml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans
-
-      - uses: actions/setup-node@v3
-        with:
-          node-version: 16
-
-      - name: Run tests
-        working-directory: tests
-        run: |
-          yarn install
-          yarn add mochawesome
-          node scripts/readyness.js
-          echo "Ready to start tests"
-          yarn polkadot-types
-          NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-${NOW}
-        env:
-          RPC_URL: http://127.0.0.1:9933/
-
-      - name: Test Report
-        uses: phoenix-actions/test-reporting@v8
-        id: test-report
-        if: success() || failure()    # run this step even if previous step failed
-        with:
-          name: int test results - ${{ matrix.network }}            # Name of the check run which will be created
-          path: tests/mochawesome-report/test-*.json    # Path to test results
-          reporter: mochawesome-json
-          fail-on-error: 'false'
-
-      - name: Read output variables
-        run: |
-          echo "url is ${{ steps.test-report.outputs.runHtmlUrl }}"
-
-      - name: Stop running containers
-        if: always()                   # run this step always
-        run: docker-compose -f ".docker/docker-compose-dev.yaml" -f ".docker/docker-compose.${{ matrix.network }}.yml" down
-
-      - name: Remove builder cache
-        if: always()                   # run this step always
-        run: |
-          docker builder prune -f -a
-          docker system prune -f
-          docker image prune -f -a
added.github/workflows/forkless-update-data.ymldiffbeforeafterboth
--- /dev/null
+++ b/.github/workflows/forkless-update-data.yml
@@ -0,0 +1,171 @@
+# Forkless update with data replication
+# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586869792/Forkless+update+with+data
+
+# Triger: only call from main workflow(re-usable workflows)
+on:
+  workflow_call:
+
+
+# A workflow run is made up of one or more jobs that can run sequentially or in parallel
+jobs:
+
+  execution-marix:
+
+    name: Prepare execution matrix
+
+    runs-on: self-hosted-ci
+    outputs:
+      matrix: ${{ steps.create_matrix.outputs.matrix }}
+
+    steps:
+
+      - name: Clean Workspace
+        uses: AutoModality/action-clean@v1.1.0
+
+      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+      - uses: actions/checkout@v3
+        with:
+          ref: ${{ github.head_ref }}  #Checking out head commit
+
+      - name: Read .env file
+        uses: xom9ikk/dotenv@v2
+
+      - name: Create Execution matrix
+        uses: CertainLach/create-matrix-action@v3
+        id: create_matrix
+        with:
+          matrix: |
+            network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.OPAL_MAINNET_TAG }}}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}}
+            network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, replica_from_address {${{ env.QUARTZ_REPLICA_FROM }}}
+            network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}, replica_from_address {${{ env.UNIQUE_REPLICA_FROM }}}
+
+  forkless-update-data:
+    needs: execution-marix
+    # The type of runner that the job will run on
+    runs-on: [self-hosted-ci,large]
+    timeout-minutes: 1380
+    
+    name: ${{ matrix.network }}-data
+    strategy:
+      matrix:
+        include: ${{fromJson(needs.execution-marix.outputs.matrix)}}
+
+    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.
+
+
+    steps:
+      - name: Clean Workspace
+        uses: AutoModality/action-clean@v1.1.0
+
+      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+      - uses: actions/checkout@v3
+        with:
+          ref: ${{ github.head_ref }}  #Checking out head commit
+
+      - name: Read .env file
+        uses: xom9ikk/dotenv@v2
+
+      - name: Generate ENV related extend file for docker-compose
+        uses: cuchi/jinja2-action@v1.2.0
+        with:
+          template: .docker/docker-compose.tmp-forkless-data.j2
+          output_file: .docker/docker-compose.${{ matrix.network }}.yml
+          variables: |
+            REPO_URL=${{ github.server_url }}/${{ github.repository }}.git
+            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
+            POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}
+            POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}
+            MAINNET_TAG=${{ matrix.mainnet_tag }}
+            MAINNET_BRANCH=${{ matrix.mainnet_branch }}
+            FEATURE=${{ matrix.features }}
+            RUNTIME=${{ matrix.runtime }}
+            BRANCH=${{ github.head_ref }}
+            REPLICA_FROM=${{ matrix.replica_from_address }}
+
+      - name: Show build configuration
+        run: cat .docker/docker-compose.${{ matrix.network }}.yml
+
+      - name: Generate launch-config-forkless-data.json
+        uses: cuchi/jinja2-action@v1.2.0
+        with:
+          template: .docker/forkless-config/launch-config-forkless-data.j2
+          output_file: .docker/launch-config-forkless-data.json
+          variables: |
+            FEATURE=${{ matrix.features }}
+            RUNTIME=${{ matrix.runtime }}
+
+      - name: Show launch-config-forkless configuration
+        run: cat .docker/launch-config-forkless-data.json
+
+
+      - name: Build the stack
+        run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build  --force-recreate --timeout 300
+
+      - name: Check if docker logs consist logs related to Runtime Upgrade testing.
+        if: success()
+        run: |
+          counter=160
+          function check_container_status {
+                docker inspect -f {{.State.Running}} node-parachain
+          }
+          function do_docker_logs {
+                docker logs --details node-parachain  2>&1
+          }
+          function is_started {
+                if [ "$(check_container_status)" == "true" ]; then
+                        echo "Container: node-parachain RUNNING";
+                        echo "Check Docker logs"
+                        DOCKER_LOGS=$(do_docker_logs)
+                        if [[ ${DOCKER_LOGS} = *"πŸ›Έ PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE πŸ›Έ"* ]];then
+                                echo "πŸ›Έ PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE πŸ›Έ"
+                                return 0
+                        elif [[ ${DOCKER_LOGS} = *"🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"* ]];then
+                                echo "🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"
+                                return 1
+                        else
+                                echo "Message not found in logs output, repeating..."
+                                return 1
+                        fi
+                else
+                        echo "Container node-parachain not RUNNING"
+                        echo "Halting all future checks"
+                        exit 1
+                fi
+          exit 0
+          }
+          while ! is_started; do
+                echo "Waiting for special message in log files "
+                sleep 30s
+                counter=$(( $counter - 1 ))
+                echo "Counter: $counter"
+                if [ "$counter" -gt "0" ]; then
+                         continue
+                else
+                         break
+                fi
+          done
+          echo "Halting script"
+          exit 0
+        shell: bash
+
+      - name: Collect Docker Logs
+        if: success() || failure()
+        uses: jwalton/gh-docker-logs@v2.2.0
+        with:
+          dest: './forkless-parachain-upgrade-data-logs.${{ matrix.features }}'
+          images: 'node-parachain'
+
+      - name: Show Docker logs
+        if: success() || failure()
+        run: cat './forkless-parachain-upgrade-data-logs.${{ matrix.features }}/node-parachain.log'
+
+      - name: Stop running containers
+        if: always()                   # run this step always
+        run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" down --volumes
+        
+      - name: Remove builder cache
+        if: always()                   # run this step always
+        run: |
+          docker builder prune -f -a
+          docker system prune -f
+          docker image prune -f -a
deleted.github/workflows/forkless-update-data_v2.ymldiffbeforeafterboth
--- a/.github/workflows/forkless-update-data_v2.yml
+++ /dev/null
@@ -1,171 +0,0 @@
-# Forkless update with data replication
-# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586869792/Forkless+update+with+data
-
-# Triger: only call from main workflow(re-usable workflows)
-on:
-  workflow_call:
-
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-
-  execution-marix:
-
-    name: Prepare execution matrix
-
-    runs-on: self-hosted-ci
-    outputs:
-      matrix: ${{ steps.create_matrix.outputs.matrix }}
-
-    steps:
-
-      - name: Clean Workspace
-        uses: AutoModality/action-clean@v1.1.0
-
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-        with:
-          ref: ${{ github.head_ref }}  #Checking out head commit
-
-      - name: Read .env file
-        uses: xom9ikk/dotenv@v2
-
-      - name: Create Execution matrix
-        uses: CertainLach/create-matrix-action@v3
-        id: create_matrix
-        with:
-          matrix: |
-            network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.OPAL_MAINNET_TAG }}}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}}
-            network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, replica_from_address {${{ env.QUARTZ_REPLICA_FROM }}}
-            network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}, replica_from_address {${{ env.UNIQUE_REPLICA_FROM }}}
-
-  forkless-update-data:
-    needs: execution-marix
-    # The type of runner that the job will run on
-    runs-on: [self-hosted-ci,large]
-    timeout-minutes: 1380
-    
-    name: ${{ matrix.network }}-data
-    strategy:
-      matrix:
-        include: ${{fromJson(needs.execution-marix.outputs.matrix)}}
-
-    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.
-
-
-    steps:
-      - name: Clean Workspace
-        uses: AutoModality/action-clean@v1.1.0
-
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-        with:
-          ref: ${{ github.head_ref }}  #Checking out head commit
-
-      - name: Read .env file
-        uses: xom9ikk/dotenv@v2
-
-      - name: Generate ENV related extend file for docker-compose
-        uses: cuchi/jinja2-action@v1.2.0
-        with:
-          template: .docker/docker-compose.tmp-forkless-data.j2
-          output_file: .docker/docker-compose.${{ matrix.network }}.yml
-          variables: |
-            REPO_URL=${{ github.server_url }}/${{ github.repository }}.git
-            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
-            POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}
-            POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}
-            MAINNET_TAG=${{ matrix.mainnet_tag }}
-            MAINNET_BRANCH=${{ matrix.mainnet_branch }}
-            FEATURE=${{ matrix.features }}
-            RUNTIME=${{ matrix.runtime }}
-            BRANCH=${{ github.head_ref }}
-            REPLICA_FROM=${{ matrix.replica_from_address }}
-
-      - name: Show build configuration
-        run: cat .docker/docker-compose.${{ matrix.network }}.yml
-
-      - name: Generate launch-config-forkless-data.json
-        uses: cuchi/jinja2-action@v1.2.0
-        with:
-          template: .docker/forkless-config/launch-config-forkless-data.j2
-          output_file: .docker/launch-config-forkless-data.json
-          variables: |
-            FEATURE=${{ matrix.features }}
-            RUNTIME=${{ matrix.runtime }}
-
-      - name: Show launch-config-forkless configuration
-        run: cat .docker/launch-config-forkless-data.json
-
-
-      - name: Build the stack
-        run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build  --force-recreate --timeout 300
-
-      - name: Check if docker logs consist logs related to Runtime Upgrade testing.
-        if: success()
-        run: |
-          counter=160
-          function check_container_status {
-                docker inspect -f {{.State.Running}} node-parachain
-          }
-          function do_docker_logs {
-                docker logs --details node-parachain  2>&1
-          }
-          function is_started {
-                if [ "$(check_container_status)" == "true" ]; then
-                        echo "Container: node-parachain RUNNING";
-                        echo "Check Docker logs"
-                        DOCKER_LOGS=$(do_docker_logs)
-                        if [[ ${DOCKER_LOGS} = *"πŸ›Έ PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE πŸ›Έ"* ]];then
-                                echo "πŸ›Έ PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE πŸ›Έ"
-                                return 0
-                        elif [[ ${DOCKER_LOGS} = *"🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"* ]];then
-                                echo "🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"
-                                return 1
-                        else
-                                echo "Message not found in logs output, repeating..."
-                                return 1
-                        fi
-                else
-                        echo "Container node-parachain not RUNNING"
-                        echo "Halting all future checks"
-                        exit 1
-                fi
-          exit 0
-          }
-          while ! is_started; do
-                echo "Waiting for special message in log files "
-                sleep 30s
-                counter=$(( $counter - 1 ))
-                echo "Counter: $counter"
-                if [ "$counter" -gt "0" ]; then
-                         continue
-                else
-                         break
-                fi
-          done
-          echo "Halting script"
-          exit 0
-        shell: bash
-
-      - name: Collect Docker Logs
-        if: success() || failure()
-        uses: jwalton/gh-docker-logs@v2.2.0
-        with:
-          dest: './forkless-parachain-upgrade-data-logs.${{ matrix.features }}'
-          images: 'node-parachain'
-
-      - name: Show Docker logs
-        if: success() || failure()
-        run: cat './forkless-parachain-upgrade-data-logs.${{ matrix.features }}/node-parachain.log'
-
-      - name: Stop running containers
-        if: always()                   # run this step always
-        run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" down --volumes
-        
-      - name: Remove builder cache
-        if: always()                   # run this step always
-        run: |
-          docker builder prune -f -a
-          docker system prune -f
-          docker image prune -f -a
added.github/workflows/forkless-update-nodata.ymldiffbeforeafterboth
--- /dev/null
+++ b/.github/workflows/forkless-update-nodata.yml
@@ -0,0 +1,219 @@
+# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586837021/Forkless+update+without+data
+# Forkless update without data replication
+
+# Triger: only call from main workflow(re-usable workflows)
+on:
+  workflow_call:
+
+
+# A workflow run is made up of one or more jobs that can run sequentially or in parallel
+jobs:
+  execution-marix:
+
+    name: Prepare execution matrix
+
+    runs-on: self-hosted-ci
+    outputs:
+      matrix: ${{ steps.create_matrix.outputs.matrix }}
+
+    steps:
+
+      - name: Clean Workspace
+        uses: AutoModality/action-clean@v1.1.0
+
+      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+      - uses: actions/checkout@v3
+        with:
+          ref: ${{ github.head_ref }}  #Checking out head commit
+
+      - name: Read .env file
+        uses: xom9ikk/dotenv@v2
+
+      - name: Create Execution matrix
+        uses: CertainLach/create-matrix-action@v3
+        id: create_matrix
+        with:
+          matrix: |
+            network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.OPAL_MAINNET_TAG }}}
+            network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}
+            network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}
+
+
+  forkless-update-nodata:
+    needs: execution-marix
+    # The type of runner that the job will run on
+    runs-on: [self-hosted-ci,large]
+
+    timeout-minutes: 1380
+
+    name: ${{ matrix.network }}-nodata
+
+    continue-on-error: true         #Do not stop testing of matrix runs failed.  As it decided during PR review - it required 50/50& Let's check it with false.
+
+    strategy:
+      matrix:
+        include: ${{fromJson(needs.execution-marix.outputs.matrix)}}    
+
+    steps:
+      - name: Clean Workspace
+        uses: AutoModality/action-clean@v1.1.0
+
+      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+      - uses: actions/checkout@v3
+        with:
+          ref: ${{ github.head_ref }}  #Checking out head commit
+
+      - name: Read .env file
+        uses: xom9ikk/dotenv@v2
+
+      - name: Generate ENV related extend file for docker-compose
+        uses: cuchi/jinja2-action@v1.2.0
+        with:
+          template: .docker/docker-compose.tmp-forkless-nodata.j2
+          output_file: .docker/docker-compose.${{ matrix.network }}.yml
+          variables: |
+            REPO_URL=${{ github.server_url }}/${{ github.repository }}.git
+            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
+            POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}
+            POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}
+            MAINNET_TAG=${{ matrix.mainnet_tag }}
+            MAINNET_BRANCH=${{ matrix.mainnet_branch }}
+            FEATURE=${{ matrix.features }}
+            RUNTIME=${{ matrix.runtime }}
+            BRANCH=${{ github.head_ref }}
+
+      - name: Show build configuration
+        run: cat .docker/docker-compose.${{ matrix.network }}.yml
+
+      - name: Generate launch-config-forkless-nodata.json
+        uses: cuchi/jinja2-action@v1.2.0
+        with:
+          template: .docker/forkless-config/launch-config-forkless-nodata.j2
+          output_file: .docker/launch-config-forkless-nodata.json
+          variables: |
+            FEATURE=${{ matrix.features }}
+            RUNTIME=${{ matrix.runtime }}
+
+      - name: Show launch-config-forkless configuration
+        run: cat .docker/launch-config-forkless-nodata.json
+
+      - uses: actions/setup-node@v3
+        with:
+          node-version: 16
+
+      - name: Build the stack
+        run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build  --force-recreate --timeout 300
+
+      - name: Check if docker logs consist logs related to Runtime Upgrade testing.
+        if: success()
+        run: |
+          counter=160
+          function check_container_status {
+                docker inspect -f {{.State.Running}} node-parachain
+          }
+          function do_docker_logs {
+                docker logs --details node-parachain  2>&1
+          }
+          function is_started {
+                if [ "$(check_container_status)" == "true" ]; then
+                        echo "Container: node-parachain RUNNING";
+                        echo "Check Docker logs"
+                        DOCKER_LOGS=$(do_docker_logs)
+                        if [[ ${DOCKER_LOGS} = *"πŸ›Έ PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE πŸ›Έ"* ]];then
+                                echo "πŸ›Έ PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE πŸ›Έ"
+                                return 0
+                        elif [[ ${DOCKER_LOGS} = *"🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"* ]];then
+                                echo "🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"
+                                return 1
+                        else
+                                echo "Message not found in logs output, repeating..."
+                                return 1
+                        fi
+                else
+                        echo "Container node-parachain not RUNNING"
+                        echo "Halting all future checks"
+                        exit 1
+                fi
+          exit 0
+          }
+          while ! is_started; do
+                echo "Waiting for special message in log files "
+                sleep 30s
+                counter=$(( $counter - 1 ))
+                echo "Counter: $counter"
+                if [ "$counter" -gt "0" ]; then
+                         continue
+                else
+                         break
+                fi
+          done
+          echo "Halting script"
+          exit 0
+        shell: bash
+
+      - name: Collect Docker Logs
+        if: success() || failure()
+        uses: jwalton/gh-docker-logs@v2.2.0
+        with:
+          dest: './forkless-parachain-upgrade-nodata-logs.${{ matrix.features }}'
+          images: 'node-parachain'
+
+      - name: Show docker logs
+        if: success() || failure()
+        run: cat './forkless-parachain-upgrade-nodata-logs.${{ matrix.features }}/node-parachain.log'
+                
+      - name: Run Parallel tests 
+        working-directory: tests
+        run: |
+          yarn install
+          yarn add mochawesome
+          node scripts/readyness.js
+          echo "Ready to start tests"
+          yarn polkadot-types
+          NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}
+        env:
+          RPC_URL: http://127.0.0.1:9933/
+    
+      - name: Test Report Parallel
+        uses: phoenix-actions/test-reporting@v8
+        id: test-report-parallel
+        if: success() || failure()    # run this step even if previous step failed
+        with:
+          name: Report Parallel tests results - ${{ matrix.network }}            # Name of the check run which will be created
+          path: tests/mochawesome-report/test-parallel-*.json    # Path to test results
+          reporter: mochawesome-json
+          fail-on-error: 'false'
+          
+      - name: Run Sequential tests 
+        working-directory: tests
+        if: success() || failure() 
+        run: |
+          yarn install
+          yarn add mochawesome
+          node scripts/readyness.js
+          echo "Ready to start tests"
+          yarn polkadot-types
+          NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}
+        env:
+          RPC_URL: http://127.0.0.1:9933/
+    
+      - name: Test Report Sequential
+        uses: phoenix-actions/test-reporting@v8
+        id: test-report-sequential
+        if: success() || failure()    # run this step even if previous step failed
+        with:
+          name: Report Sequential tests results - ${{ matrix.network }}            # Name of the check run which will be created
+          path: tests/mochawesome-report/test-sequential-*.json    # Path to test results
+          reporter: mochawesome-json
+          fail-on-error: 'false'
+
+      - name: Stop running containers
+        if: always()                   # run this step always
+        run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" down
+        
+      - name: Remove builder cache
+        if: always()                   # run this step always
+        run: |
+          docker builder prune -f -a
+          docker system prune -f
+          docker image prune -f -a
deleted.github/workflows/forkless-update-nodata_v2.ymldiffbeforeafterboth
--- a/.github/workflows/forkless-update-nodata_v2.yml
+++ /dev/null
@@ -1,219 +0,0 @@
-# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586837021/Forkless+update+without+data
-# Forkless update without data replication
-
-# Triger: only call from main workflow(re-usable workflows)
-on:
-  workflow_call:
-
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-  execution-marix:
-
-    name: Prepare execution matrix
-
-    runs-on: self-hosted-ci
-    outputs:
-      matrix: ${{ steps.create_matrix.outputs.matrix }}
-
-    steps:
-
-      - name: Clean Workspace
-        uses: AutoModality/action-clean@v1.1.0
-
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-        with:
-          ref: ${{ github.head_ref }}  #Checking out head commit
-
-      - name: Read .env file
-        uses: xom9ikk/dotenv@v2
-
-      - name: Create Execution matrix
-        uses: CertainLach/create-matrix-action@v3
-        id: create_matrix
-        with:
-          matrix: |
-            network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.OPAL_MAINNET_TAG }}}
-            network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}
-            network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}
-
-
-  forkless-update-nodata:
-    needs: execution-marix
-    # The type of runner that the job will run on
-    runs-on: [self-hosted-ci,large]
-
-    timeout-minutes: 1380
-
-    name: ${{ matrix.network }}-nodata
-
-    continue-on-error: true         #Do not stop testing of matrix runs failed.  As it decided during PR review - it required 50/50& Let's check it with false.
-
-    strategy:
-      matrix:
-        include: ${{fromJson(needs.execution-marix.outputs.matrix)}}    
-
-    steps:
-      - name: Clean Workspace
-        uses: AutoModality/action-clean@v1.1.0
-
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-        with:
-          ref: ${{ github.head_ref }}  #Checking out head commit
-
-      - name: Read .env file
-        uses: xom9ikk/dotenv@v2
-
-      - name: Generate ENV related extend file for docker-compose
-        uses: cuchi/jinja2-action@v1.2.0
-        with:
-          template: .docker/docker-compose.tmp-forkless-nodata.j2
-          output_file: .docker/docker-compose.${{ matrix.network }}.yml
-          variables: |
-            REPO_URL=${{ github.server_url }}/${{ github.repository }}.git
-            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
-            POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}
-            POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}
-            MAINNET_TAG=${{ matrix.mainnet_tag }}
-            MAINNET_BRANCH=${{ matrix.mainnet_branch }}
-            FEATURE=${{ matrix.features }}
-            RUNTIME=${{ matrix.runtime }}
-            BRANCH=${{ github.head_ref }}
-
-      - name: Show build configuration
-        run: cat .docker/docker-compose.${{ matrix.network }}.yml
-
-      - name: Generate launch-config-forkless-nodata.json
-        uses: cuchi/jinja2-action@v1.2.0
-        with:
-          template: .docker/forkless-config/launch-config-forkless-nodata.j2
-          output_file: .docker/launch-config-forkless-nodata.json
-          variables: |
-            FEATURE=${{ matrix.features }}
-            RUNTIME=${{ matrix.runtime }}
-
-      - name: Show launch-config-forkless configuration
-        run: cat .docker/launch-config-forkless-nodata.json
-
-      - uses: actions/setup-node@v3
-        with:
-          node-version: 16
-
-      - name: Build the stack
-        run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build  --force-recreate --timeout 300
-
-      - name: Check if docker logs consist logs related to Runtime Upgrade testing.
-        if: success()
-        run: |
-          counter=160
-          function check_container_status {
-                docker inspect -f {{.State.Running}} node-parachain
-          }
-          function do_docker_logs {
-                docker logs --details node-parachain  2>&1
-          }
-          function is_started {
-                if [ "$(check_container_status)" == "true" ]; then
-                        echo "Container: node-parachain RUNNING";
-                        echo "Check Docker logs"
-                        DOCKER_LOGS=$(do_docker_logs)
-                        if [[ ${DOCKER_LOGS} = *"πŸ›Έ PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE πŸ›Έ"* ]];then
-                                echo "πŸ›Έ PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE πŸ›Έ"
-                                return 0
-                        elif [[ ${DOCKER_LOGS} = *"🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"* ]];then
-                                echo "🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"
-                                return 1
-                        else
-                                echo "Message not found in logs output, repeating..."
-                                return 1
-                        fi
-                else
-                        echo "Container node-parachain not RUNNING"
-                        echo "Halting all future checks"
-                        exit 1
-                fi
-          exit 0
-          }
-          while ! is_started; do
-                echo "Waiting for special message in log files "
-                sleep 30s
-                counter=$(( $counter - 1 ))
-                echo "Counter: $counter"
-                if [ "$counter" -gt "0" ]; then
-                         continue
-                else
-                         break
-                fi
-          done
-          echo "Halting script"
-          exit 0
-        shell: bash
-
-      - name: Collect Docker Logs
-        if: success() || failure()
-        uses: jwalton/gh-docker-logs@v2.2.0
-        with:
-          dest: './forkless-parachain-upgrade-nodata-logs.${{ matrix.features }}'
-          images: 'node-parachain'
-
-      - name: Show docker logs
-        if: success() || failure()
-        run: cat './forkless-parachain-upgrade-nodata-logs.${{ matrix.features }}/node-parachain.log'
-                
-      - name: Run Parallel tests 
-        working-directory: tests
-        run: |
-          yarn install
-          yarn add mochawesome
-          node scripts/readyness.js
-          echo "Ready to start tests"
-          yarn polkadot-types
-          NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}
-        env:
-          RPC_URL: http://127.0.0.1:9933/
-    
-      - name: Test Report Parallel
-        uses: phoenix-actions/test-reporting@v8
-        id: test-report-parallel
-        if: success() || failure()    # run this step even if previous step failed
-        with:
-          name: Report Parallel tests results - ${{ matrix.network }}            # Name of the check run which will be created
-          path: tests/mochawesome-report/test-parallel-*.json    # Path to test results
-          reporter: mochawesome-json
-          fail-on-error: 'false'
-          
-      - name: Run Sequential tests 
-        working-directory: tests
-        if: success() || failure() 
-        run: |
-          yarn install
-          yarn add mochawesome
-          node scripts/readyness.js
-          echo "Ready to start tests"
-          yarn polkadot-types
-          NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}
-        env:
-          RPC_URL: http://127.0.0.1:9933/
-    
-      - name: Test Report Sequential
-        uses: phoenix-actions/test-reporting@v8
-        id: test-report-sequential
-        if: success() || failure()    # run this step even if previous step failed
-        with:
-          name: Report Sequential tests results - ${{ matrix.network }}            # Name of the check run which will be created
-          path: tests/mochawesome-report/test-sequential-*.json    # Path to test results
-          reporter: mochawesome-json
-          fail-on-error: 'false'
-
-      - name: Stop running containers
-        if: always()                   # run this step always
-        run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" down
-        
-      - name: Remove builder cache
-        if: always()                   # run this step always
-        run: |
-          docker builder prune -f -a
-          docker system prune -f
-          docker image prune -f -a
modified.github/workflows/forkless.ymldiffbeforeafterboth
9 9
10 forkless-update-data:10 forkless-update-data:
11 name: with data11 name: with data
12 uses: ./.github/workflows/forkless-update-data_v2.yml12 uses: ./.github/workflows/forkless-update-data.yml
1313
14 forkless-update-no-data:14 forkless-update-no-data:
15 name: no data15 name: no data
16 uses: ./.github/workflows/forkless-update-nodata_v2.yml16 uses: ./.github/workflows/forkless-update-nodata.yml
1717
18 try-runtime:18 try-runtime:
19 name: try-runtime19 name: try-runtime
20 uses: ./.github/workflows/try-runtime_v2.yml20 uses: ./.github/workflows/try-runtime.yml
2121
added.github/workflows/market-test.ymldiffbeforeafterboth
--- /dev/null
+++ b/.github/workflows/market-test.yml
@@ -0,0 +1,187 @@
+# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586509375/Market+e2e+test
+# Nested workflow for lunching Market e2e tests from external repository https://github.com/UniqueNetwork/market-e2e-tests
+
+name: market api tests
+
+# Controls when the action will run.
+on:
+  workflow_call:
+
+
+# A workflow run is made up of one or more jobs that can run sequentially or in parallel
+jobs:
+
+  market_test:
+    # The type of runner that the job will run on
+    runs-on: [self-hosted-ci,large]
+    timeout-minutes: 360
+
+    name: ${{ matrix.network }}    
+
+    continue-on-error: true         #Do not stop testing of matrix runs failed.  As it decided during PR review - it required 50/50& Let's check it with false.
+    
+    strategy:
+      matrix:
+        include:
+          - network: "opal"
+            features: "opal-runtime"
+
+    steps:
+      - name: Clean Workspace
+        uses: AutoModality/action-clean@v1.1.0
+
+      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+      - name: Checkout master repo
+        uses: actions/checkout@master
+        with:
+          ref: ${{ github.head_ref }}  #Checking out head commit
+
+      - name: Checkout Market e2e tests
+        uses: actions/checkout@v3
+        with:
+          repository: 'UniqueNetwork/market-e2e-tests'
+          ssh-key: ${{ secrets.GH_PAT }}
+          path: 'qa-tests'
+          ref: 'master'
+
+      - name: Read .env file
+        uses: xom9ikk/dotenv@v2
+      
+      - name: Copy qa-tests/.env.example to qa-tests/.env
+        working-directory: qa-tests
+        run: cp .env.docker .env
+        
+      - name: Generate ENV related extend file for docker-compose
+        uses: cuchi/jinja2-action@v1.2.0
+        with:
+          template: qa-tests/.docker/docker-compose.tmp-market.j2
+          output_file: qa-tests/.docker/docker-compose.${{ matrix.network }}.yml
+          variables: |
+            REPO_URL=${{ github.server_url }}/${{ github.repository }}.git
+            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
+            POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}
+            FEATURE=${{ matrix.features }}
+            BRANCH=${{ github.head_ref }}
+
+
+      - name: Show build configuration
+        working-directory: qa-tests
+        run: cat .docker/docker-compose.${{ matrix.network }}.yml
+
+      - name: Start node-parachain
+        working-directory: qa-tests
+        run: docker-compose -f ".docker/docker-compose.market.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans --force-recreate node-parachain 
+     
+      - uses: actions/setup-node@v3
+        with:
+          node-version: 16.17
+
+      - name: Setup TypeScript
+        working-directory: qa-tests
+        run: |
+          npm install -g ts-node
+          npm install
+
+      - name: Copy qa-tests/.env.docker to qa-tests/.env
+        working-directory: qa-tests
+        run: | 
+          rm -rf .env
+          cp .env.docker .env
+
+# Temporary disable node readyness check. Have to dig into the script logic.
+#      - name: Wait for chain up and running
+#        working-directory: tests
+#        run: |
+#          yarn install
+#          node scripts/readyness.js
+#          echo "Ready to start tests"
+#        env:
+#          RPC_URL: http://127.0.0.1:9933/
+
+      - name: Wait for chain up and running
+        run: |
+          sleep 1200s
+          echo "Ready to start Market e2e tests"
+
+      - name: Show content of .env file and Generate accounts
+        working-directory: qa-tests
+        run: |
+          cat .env
+          ts-node ./src/scripts/create-market-accounts.ts
+
+      - name: Copy qa-tests/.env to qa-tests/.env.docker
+        working-directory: qa-tests
+        run: | 
+          rm -rf .env.docker
+          cp .env .env.docker
+
+      - name: Get chain logs
+        if: always()                   # run this step always
+        run: |
+          docker exec node-parachain cat /polkadot-launch/9944.log
+          docker exec node-parachain cat /polkadot-launch/9945.log
+          docker exec node-parachain cat /polkadot-launch/alice.log
+          docker exec node-parachain cat /polkadot-launch/eve.log
+          docker exec node-parachain cat /polkadot-launch/dave.log
+          docker exec node-parachain cat /polkadot-launch/charlie.log
+   
+      - name: Deploy contracts
+        run: |
+          cd qa-tests
+          ts-node ./src/scripts/deploy-contract.ts
+
+      - name: Timeout for debug
+        if: failure()
+        run: sleep 300s
+
+      - name: Import test data
+        working-directory: qa-tests
+        run: ts-node ./src/scripts/create-test-collections.ts
+
+      - name: Show content of qa-test .env
+        working-directory: qa-tests
+        run: cat .env
+
+      - name: Read qa -test .env file Before market start
+        uses: xom9ikk/dotenv@v2
+        with:
+          path: qa-tests/
+
+      - name: local-market:start
+        run: docker-compose -f "qa-tests/.docker/docker-compose.market.yml" -f "qa-tests/.docker/docker-compose.${{ matrix.network }}.yml" up -d --build
+
+      - name: Wait for market readyness
+        working-directory: qa-tests
+        run: src/scripts/wait-market-ready.sh
+        shell: bash
+
+      - name: Install dependecies
+        working-directory: qa-tests
+        run: |
+          npm ci
+          npm install -D @playwright/test
+          npx playwright install-deps
+          npx playwright install
+
+      - name: Show content of qa-test .env
+        working-directory: qa-tests
+        run: cat .env
+          
+      - name: Test API interface
+        working-directory: qa-tests
+        run: |
+          npx playwright test --workers=3 --quiet .*.api.test.ts --reporter=github --config playwright.config.ts
+
+      - name: Timeout for debug
+        if: failure()
+        run: sleep 300s
+
+      - name: Stop running containers
+        if: always()                   # run this step always
+        run: docker-compose -f "qa-tests/.docker/docker-compose.market.yml" -f "qa-tests/.docker/docker-compose.${{ matrix.network }}.yml" down --volumes
+
+      - name: Remove builder cache
+        if: always()                   # run this step always
+        run: |
+          docker builder prune -f
+          docker system prune -f
deleted.github/workflows/market-test_v2.ymldiffbeforeafterboth
--- a/.github/workflows/market-test_v2.yml
+++ /dev/null
@@ -1,187 +0,0 @@
-# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586509375/Market+e2e+test
-# Nested workflow for lunching Market e2e tests from external repository https://github.com/UniqueNetwork/market-e2e-tests
-
-name: market api tests
-
-# Controls when the action will run.
-on:
-  workflow_call:
-
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-
-  market_test:
-    # The type of runner that the job will run on
-    runs-on: [self-hosted-ci,large]
-    timeout-minutes: 360
-
-    name: ${{ matrix.network }}    
-
-    continue-on-error: true         #Do not stop testing of matrix runs failed.  As it decided during PR review - it required 50/50& Let's check it with false.
-    
-    strategy:
-      matrix:
-        include:
-          - network: "opal"
-            features: "opal-runtime"
-
-    steps:
-      - name: Clean Workspace
-        uses: AutoModality/action-clean@v1.1.0
-
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - name: Checkout master repo
-        uses: actions/checkout@master
-        with:
-          ref: ${{ github.head_ref }}  #Checking out head commit
-
-      - name: Checkout Market e2e tests
-        uses: actions/checkout@v3
-        with:
-          repository: 'UniqueNetwork/market-e2e-tests'
-          ssh-key: ${{ secrets.GH_PAT }}
-          path: 'qa-tests'
-          ref: 'master'
-
-      - name: Read .env file
-        uses: xom9ikk/dotenv@v2
-      
-      - name: Copy qa-tests/.env.example to qa-tests/.env
-        working-directory: qa-tests
-        run: cp .env.docker .env
-        
-      - name: Generate ENV related extend file for docker-compose
-        uses: cuchi/jinja2-action@v1.2.0
-        with:
-          template: qa-tests/.docker/docker-compose.tmp-market.j2
-          output_file: qa-tests/.docker/docker-compose.${{ matrix.network }}.yml
-          variables: |
-            REPO_URL=${{ github.server_url }}/${{ github.repository }}.git
-            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
-            POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}
-            FEATURE=${{ matrix.features }}
-            BRANCH=${{ github.head_ref }}
-
-
-      - name: Show build configuration
-        working-directory: qa-tests
-        run: cat .docker/docker-compose.${{ matrix.network }}.yml
-
-      - name: Start node-parachain
-        working-directory: qa-tests
-        run: docker-compose -f ".docker/docker-compose.market.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans --force-recreate node-parachain 
-     
-      - uses: actions/setup-node@v3
-        with:
-          node-version: 16.17
-
-      - name: Setup TypeScript
-        working-directory: qa-tests
-        run: |
-          npm install -g ts-node
-          npm install
-
-      - name: Copy qa-tests/.env.docker to qa-tests/.env
-        working-directory: qa-tests
-        run: | 
-          rm -rf .env
-          cp .env.docker .env
-
-# Temporary disable node readyness check. Have to dig into the script logic.
-#      - name: Wait for chain up and running
-#        working-directory: tests
-#        run: |
-#          yarn install
-#          node scripts/readyness.js
-#          echo "Ready to start tests"
-#        env:
-#          RPC_URL: http://127.0.0.1:9933/
-
-      - name: Wait for chain up and running
-        run: |
-          sleep 1200s
-          echo "Ready to start Market e2e tests"
-
-      - name: Show content of .env file and Generate accounts
-        working-directory: qa-tests
-        run: |
-          cat .env
-          ts-node ./src/scripts/create-market-accounts.ts
-
-      - name: Copy qa-tests/.env to qa-tests/.env.docker
-        working-directory: qa-tests
-        run: | 
-          rm -rf .env.docker
-          cp .env .env.docker
-
-      - name: Get chain logs
-        if: always()                   # run this step always
-        run: |
-          docker exec node-parachain cat /polkadot-launch/9944.log
-          docker exec node-parachain cat /polkadot-launch/9945.log
-          docker exec node-parachain cat /polkadot-launch/alice.log
-          docker exec node-parachain cat /polkadot-launch/eve.log
-          docker exec node-parachain cat /polkadot-launch/dave.log
-          docker exec node-parachain cat /polkadot-launch/charlie.log
-   
-      - name: Deploy contracts
-        run: |
-          cd qa-tests
-          ts-node ./src/scripts/deploy-contract.ts
-
-      - name: Timeout for debug
-        if: failure()
-        run: sleep 300s
-
-      - name: Import test data
-        working-directory: qa-tests
-        run: ts-node ./src/scripts/create-test-collections.ts
-
-      - name: Show content of qa-test .env
-        working-directory: qa-tests
-        run: cat .env
-
-      - name: Read qa -test .env file Before market start
-        uses: xom9ikk/dotenv@v2
-        with:
-          path: qa-tests/
-
-      - name: local-market:start
-        run: docker-compose -f "qa-tests/.docker/docker-compose.market.yml" -f "qa-tests/.docker/docker-compose.${{ matrix.network }}.yml" up -d --build
-
-      - name: Wait for market readyness
-        working-directory: qa-tests
-        run: src/scripts/wait-market-ready.sh
-        shell: bash
-
-      - name: Install dependecies
-        working-directory: qa-tests
-        run: |
-          npm ci
-          npm install -D @playwright/test
-          npx playwright install-deps
-          npx playwright install
-
-      - name: Show content of qa-test .env
-        working-directory: qa-tests
-        run: cat .env
-          
-      - name: Test API interface
-        working-directory: qa-tests
-        run: |
-          npx playwright test --workers=8 --quiet .*.api.test.ts --reporter=github --config playwright.config.ts
-
-      - name: Timeout for debug
-        if: failure()
-        run: sleep 300s
-
-      - name: Stop running containers
-        if: always()                   # run this step always
-        run: docker-compose -f "qa-tests/.docker/docker-compose.market.yml" -f "qa-tests/.docker/docker-compose.${{ matrix.network }}.yml" down --volumes
-
-      - name: Remove builder cache
-        if: always()                   # run this step always
-        run: |
-          docker builder prune -f
-          docker system prune -f
added.github/workflows/node-only-update.ymldiffbeforeafterboth
--- /dev/null
+++ b/.github/workflows/node-only-update.yml
@@ -0,0 +1,371 @@
+# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586837028/Nodes+only+update
+# Node only update with restart polkadot-launch process.
+
+name: nodes-only update
+
+# Triger: only call from main workflow(re-usable workflows)
+on:
+  workflow_call:
+
+
+# A workflow run is made up of one or more jobs that can run sequentially or in parallel
+jobs:
+
+  nodes-execution-matrix:
+
+    name: execution matrix
+
+    runs-on: self-hosted-ci
+    outputs:
+      matrix: ${{ steps.create_matrix.outputs.matrix }}
+
+    steps:
+
+      - name: Clean Workspace
+        uses: AutoModality/action-clean@v1.1.0
+
+      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+      - uses: actions/checkout@v3
+        with:
+          ref: ${{ github.head_ref }}  #Checking out head commit
+
+      - name: Read .env file
+        uses: xom9ikk/dotenv@v2
+
+      - name: Create Execution matrix
+        uses: CertainLach/create-matrix-action@v3
+        id: create_matrix
+        with:
+          matrix: |
+            network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.OPAL_MAINNET_TAG }}}
+            network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}
+            network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}
+
+
+
+  nodes-only-update:
+    needs: nodes-execution-matrix
+    # The type of runner that the job will run on
+    runs-on: [self-hosted-ci,large]
+
+    timeout-minutes: 2880           # 48 hours for execution jobs.
+
+    name: ${{ matrix.network }}
+
+    continue-on-error: true         #Do not stop testing of matrix runs failed.  As it decided during PR review - it required 50/50& Let's check it with false.
+
+    strategy:
+      matrix:
+        include: ${{fromJson(needs.nodes-execution-matrix.outputs.matrix)}}
+
+    steps:
+
+      - name: Clean Workspace
+        uses: AutoModality/action-clean@v1.1.0
+
+      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+      - uses: actions/checkout@v3
+        with:
+          ref: ${{ github.head_ref }}  #Checking out head commit
+
+      - name: Read .env file
+        uses: xom9ikk/dotenv@v2
+
+      - name: Generate ENV related extend file for docker-compose
+        uses: cuchi/jinja2-action@v1.2.0
+        with:
+          template: .docker/docker-compose.tmp-node.j2
+          output_file: .docker/docker-compose.node.${{ matrix.network }}.yml
+          variables: |
+            REPO_URL=${{ github.server_url }}/${{ github.repository }}.git
+            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
+            POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}
+            POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}
+            MAINNET_TAG=${{ matrix.mainnet_tag }}
+            MAINNET_BRANCH=${{ matrix.mainnet_branch }}
+            FEATURE=${{ matrix.features }}
+            RUNTIME=${{ matrix.runtime }}
+            BRANCH=${{ github.head_ref }}
+
+      - name: Show build configuration
+        run: cat .docker/docker-compose.node.${{ matrix.network }}.yml
+
+      - name: Generate launch-config-forkless-nodata.json
+        uses: cuchi/jinja2-action@v1.2.0
+        with:
+          template: .docker/forkless-config/launch-config-forkless-nodata.j2
+          output_file: .docker/launch-config-forkless-nodata.json
+          variables: |
+            FEATURE=${{ matrix.features }}
+            RUNTIME=${{ matrix.runtime }}
+
+      - name: Show launch-config-forkless configuration
+        run: cat .docker/launch-config-forkless-nodata.json
+
+      - uses: actions/setup-node@v3
+        with:
+          node-version: 16
+
+      - name: Build the stack
+        run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.node.${{ matrix.network }}.yml" up -d --build --remove-orphans --force-recreate --timeout 300
+
+      #  πŸš€ POLKADOT LAUNCH COMPLETE πŸš€
+      - name: Check if docker logs consist messages related to testing of Node Parachain Upgrade.
+        if: success()
+        run: |
+          counter=160
+          function check_container_status {
+                docker inspect -f {{.State.Running}} node-parachain
+          }
+          function do_docker_logs {
+                docker logs --details node-parachain  2>&1
+          }
+          function is_started {
+                if [ "$(check_container_status)" == "true" ]; then
+                        echo "Container: node-parachain RUNNING";
+                        echo "Check Docker logs"
+                        DOCKER_LOGS=$(do_docker_logs)
+                        if [[ ${DOCKER_LOGS} = *"POLKADOT LAUNCH COMPLETE"* ]];then
+                                echo "πŸš€ POLKADOT LAUNCH COMPLETE πŸš€"
+                                return 0
+                        else
+                                echo "Message not found in logs output, repeating..."
+                                return 1
+                        fi
+                else
+                        echo "Container node-parachain NOT RUNNING"
+                        echo "Halting all future checks"
+                        exit 1
+                fi
+          echo "something goes wrong"
+          exit 1
+          }
+          while ! is_started; do
+                echo "Waiting for special message in log files "
+                sleep 30s
+                counter=$(( $counter - 1 ))
+                echo "Counter: $counter"
+                if [ "$counter" -gt "0" ]; then
+                         continue
+                else
+                         break
+                fi
+          done
+          echo "Halting script"
+          exit 0
+        shell: bash
+
+      - name: Checkout at '${{ matrix.mainnet_branch }}' branch
+        uses: actions/checkout@master
+        with:
+          ref: ${{ matrix.mainnet_branch }}  #Checking out head commit
+          path: ${{ matrix.mainnet_branch }}
+
+      - name: Run tests before Node Parachain upgrade
+        working-directory: ${{ matrix.mainnet_branch }}/tests
+        run: |
+          yarn install
+          yarn add mochawesome
+          echo "Ready to start tests"
+          yarn polkadot-types
+          NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-before-${NOW}
+        env:
+          RPC_URL: http://127.0.0.1:9933/
+
+      - name: Upload Test Report Before Node upgrade
+        uses: phoenix-actions/test-reporting@v8
+        id: test-report-before
+        if: success() || failure()    # run this step even if previous step failed
+        with:
+          name: Tests before node upgrade ${{ matrix.network }}            # Name of the check run which will be created
+          path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-before-*.json    # Path to test results
+          reporter: mochawesome-json
+          fail-on-error: 'false'
+
+      # TODO uncomment thease steps after the merge
+      #- name: Run Parallel tests before Node Parachain upgrade
+      #  working-directory: ${{ matrix.mainnet_branch }}/tests
+      #  run: |
+      #    yarn install
+      #    yarn add mochawesome
+      #    echo "Ready to start tests"
+      #    yarn polkadot-types
+      #    NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}
+      #  env:
+      #    RPC_URL: http://127.0.0.1:9933/
+
+      #- name: Upload Parallel Test Report Before Node upgrade
+      #  uses: phoenix-actions/test-reporting@v8
+      #  id: test-parallel-report-before
+      #  if: success() || failure()    # run this step even if previous step failed
+      #  with:
+      #    name: Tests before node upgrade ${{ matrix.network }}            # Name of the check run which will be created
+      #    path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-parallel-*.json    # Path to test results
+      #    reporter: mochawesome-json
+      #    fail-on-error: 'false'
+
+      # - name: Run Sequential tests before Node Parachain upgrade
+      #   if: success() || failure()
+      #   working-directory: ${{ matrix.mainnet_branch }}/tests
+      #   run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}
+      #   env:
+      #     RPC_URL: http://127.0.0.1:9933/
+
+      # - name: Upload Sequential Test Report Before Node upgrade
+      #   uses: phoenix-actions/test-reporting@v8
+      #   id: test-sequential-report-before
+      #   if: success() || failure()    # run this step even if previous step failed
+      #   with:
+      #     name: Tests before node upgrade ${{ matrix.network }}            # Name of the check run which will be created
+      #     path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-sequential-*.json    # Path to test results
+      #     reporter: mochawesome-json
+      #     fail-on-error: 'false'
+     
+      - name: Send SIGUSR1 to polkadot-launch process
+        if: success() || failure()
+        run: |
+          #Get PID of polkadot-launch
+          ContainerID=$(docker ps -aqf "name=node-parachain")
+          PID=$(docker exec node-parachain pidof 'polkadot-launch')
+          sleep 30s
+          echo -e "Show logs of node-parachain container.\n"
+          docker logs ${ContainerID}
+          echo -e "\n"
+          echo -e "Restart polkadot-launch process: $PID\n"
+          docker exec node-parachain kill -SIGUSR1 ${PID}
+          echo "SIGUSR1 sent to Polkadot-launch PID: $PID"
+          docker logs ${ContainerID}
+      
+      - name: Get chain logs in case of docker image crashed after Polkadot Launch restart
+        if: failure()                   # run this step only at failure
+        run: |
+          docker exec node-parachain cat /polkadot-launch/9944.log
+          docker exec node-parachain cat /polkadot-launch/9945.log
+          docker exec node-parachain cat /polkadot-launch/alice.log
+          docker exec node-parachain cat /polkadot-launch/eve.log
+          docker exec node-parachain cat /polkadot-launch/dave.log
+          docker exec node-parachain cat /polkadot-launch/charlie.log             
+
+      - name: Check if docker logs consist messages related to testing of Node Parachain Upgrade.
+        if: success()
+        run: |
+          counter=160
+          function check_container_status {
+                docker inspect -f {{.State.Running}} node-parachain
+          }
+          function do_docker_logs {
+                docker logs --details node-parachain  2>&1
+          }
+          function is_started {
+                if [ "$(check_container_status)" == "true" ]; then
+                        echo "Container: node-parachain RUNNING";
+                        echo "Check Docker logs"
+                        DOCKER_LOGS=$(do_docker_logs)
+                        if [[ ${DOCKER_LOGS} = *"All parachain collators restarted with the new binaries."* ]];then
+                                echo "πŸŒ— All parachain collators restarted with the new binaries."
+                                return 0
+                        else
+                                echo "Message not found in logs output, repeating..."
+                                return 1
+                        fi
+                else
+                        echo "Container node-parachain NOT RUNNING"
+                        echo "Halting all future checks"
+                        exit 1
+                fi
+          echo "something goes wrong"
+          exit 1
+          }
+          while ! is_started; do
+                echo "Waiting for special message in log files "
+                sleep 30s
+                counter=$(( $counter - 1 ))
+                echo "Counter: $counter"
+                if [ "$counter" -gt "0" ]; then
+                         continue
+                else
+                         break
+                fi
+          done
+          echo "Halting script"
+          exit 0
+        shell: bash
+        
+      ## TODO: Remove next two blocks before switch to Parrallel & Sequental tests. Uncoment commented blocks.
+      - name: Run tests after Node Parachain upgrade
+        working-directory: ${{ matrix.mainnet_branch }}/tests
+        run: |
+          yarn install
+          yarn add mochawesome
+          echo "Ready to start tests"
+          yarn polkadot-types
+          NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-after-${NOW}
+        env:
+          RPC_URL: http://127.0.0.1:9933/
+
+      - name: Test Report After Node upgrade
+        uses: phoenix-actions/test-reporting@v8
+        id: test-report-after
+        if: success() || failure()    # run this step even if previous step failed
+        with:
+          name: Tests after node upgrade ${{ matrix.network }}            # Name of the check run which will be created
+          path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-after-*.json    # Path to test results
+          reporter: mochawesome-json
+          fail-on-error: 'false'
+
+      # TODO uncomment thease steps after the merge
+      #- name: Run Parallel tests after Node Parachain upgrade
+      #  working-directory: ${{ matrix.mainnet_branch }}/tests
+      #  run: |
+      #    yarn install
+      #    yarn add mochawesome
+      #    node scripts/readyness.js
+      #    echo "Ready to start tests"
+      #    yarn polkadot-types
+      #    NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}
+      #  env:
+      #    RPC_URL: http://127.0.0.1:9933/
+
+      #- name: Test Report Parallel After Node upgrade
+      #  uses: phoenix-actions/test-reporting@v8
+      #  id: test-report-parallel-after
+      #  if: success() || failure()    # run this step even if previous step failed
+      #  with:
+      #    name: Tests after node upgrade ${{ matrix.network }}            # Name of the check run which will be created
+      #    path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-parallel-*.json    # Path to test results
+      #    reporter: mochawesome-json
+      #    fail-on-error: 'false'
+      
+      #- name: Run Sequential tests after Node Parachain upgrade
+      #  if: success() || failure()
+      #  working-directory: ${{ matrix.mainnet_branch }}/tests
+      #  run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}
+      #  env:
+      #    RPC_URL: http://127.0.0.1:9933/
+
+      #- name: Upload Sequential Test Report After Node upgrade
+      #  uses: phoenix-actions/test-reporting@v8
+      #  id: test-sequential-report-after
+      #  if: success() || failure()    # run this step even if previous step failed
+      #  with:
+      #    name: Tests before node upgrade ${{ matrix.network }}            # Name of the check run which will be created
+      #    path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-sequential-*.json    # Path to test results
+      #    reporter: mochawesome-json
+      #    fail-on-error: 'false'
+
+
+      - name: Stop running containers
+        if: always()                   # run this step always
+        run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.node.${{ matrix.network }}.yml" down --volumes
+
+      - name: Remove builder cache
+        if: always()                   # run this step always
+        run: |
+          docker builder prune -f -a
+          docker system prune -f
+          docker image prune -f -a
+
+      - name: Remove repo at the end
+        if: always()                   # run this step always
+        run: |
+          ls -ls ./
deleted.github/workflows/node-only-update_v2.ymldiffbeforeafterboth
--- a/.github/workflows/node-only-update_v2.yml
+++ /dev/null
@@ -1,371 +0,0 @@
-# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586837028/Nodes+only+update
-# Node only update with restart polkadot-launch process.
-
-name: nodes-only update
-
-# Triger: only call from main workflow(re-usable workflows)
-on:
-  workflow_call:
-
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-
-  nodes-execution-matrix:
-
-    name: execution matrix
-
-    runs-on: self-hosted-ci
-    outputs:
-      matrix: ${{ steps.create_matrix.outputs.matrix }}
-
-    steps:
-
-      - name: Clean Workspace
-        uses: AutoModality/action-clean@v1.1.0
-
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-        with:
-          ref: ${{ github.head_ref }}  #Checking out head commit
-
-      - name: Read .env file
-        uses: xom9ikk/dotenv@v2
-
-      - name: Create Execution matrix
-        uses: CertainLach/create-matrix-action@v3
-        id: create_matrix
-        with:
-          matrix: |
-            network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.OPAL_MAINNET_TAG }}}
-            network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}
-            network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}
-
-
-
-  nodes-only-update:
-    needs: nodes-execution-matrix
-    # The type of runner that the job will run on
-    runs-on: [self-hosted-ci,large]
-
-    timeout-minutes: 2880           # 48 hours for execution jobs.
-
-    name: ${{ matrix.network }}
-
-    continue-on-error: true         #Do not stop testing of matrix runs failed.  As it decided during PR review - it required 50/50& Let's check it with false.
-
-    strategy:
-      matrix:
-        include: ${{fromJson(needs.nodes-execution-matrix.outputs.matrix)}}
-
-    steps:
-
-      - name: Clean Workspace
-        uses: AutoModality/action-clean@v1.1.0
-
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-        with:
-          ref: ${{ github.head_ref }}  #Checking out head commit
-
-      - name: Read .env file
-        uses: xom9ikk/dotenv@v2
-
-      - name: Generate ENV related extend file for docker-compose
-        uses: cuchi/jinja2-action@v1.2.0
-        with:
-          template: .docker/docker-compose.tmp-node.j2
-          output_file: .docker/docker-compose.node.${{ matrix.network }}.yml
-          variables: |
-            REPO_URL=${{ github.server_url }}/${{ github.repository }}.git
-            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
-            POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}
-            POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}
-            MAINNET_TAG=${{ matrix.mainnet_tag }}
-            MAINNET_BRANCH=${{ matrix.mainnet_branch }}
-            FEATURE=${{ matrix.features }}
-            RUNTIME=${{ matrix.runtime }}
-            BRANCH=${{ github.head_ref }}
-
-      - name: Show build configuration
-        run: cat .docker/docker-compose.node.${{ matrix.network }}.yml
-
-      - name: Generate launch-config-forkless-nodata.json
-        uses: cuchi/jinja2-action@v1.2.0
-        with:
-          template: .docker/forkless-config/launch-config-forkless-nodata.j2
-          output_file: .docker/launch-config-forkless-nodata.json
-          variables: |
-            FEATURE=${{ matrix.features }}
-            RUNTIME=${{ matrix.runtime }}
-
-      - name: Show launch-config-forkless configuration
-        run: cat .docker/launch-config-forkless-nodata.json
-
-      - uses: actions/setup-node@v3
-        with:
-          node-version: 16
-
-      - name: Build the stack
-        run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.node.${{ matrix.network }}.yml" up -d --build --remove-orphans --force-recreate --timeout 300
-
-      #  πŸš€ POLKADOT LAUNCH COMPLETE πŸš€
-      - name: Check if docker logs consist messages related to testing of Node Parachain Upgrade.
-        if: success()
-        run: |
-          counter=160
-          function check_container_status {
-                docker inspect -f {{.State.Running}} node-parachain
-          }
-          function do_docker_logs {
-                docker logs --details node-parachain  2>&1
-          }
-          function is_started {
-                if [ "$(check_container_status)" == "true" ]; then
-                        echo "Container: node-parachain RUNNING";
-                        echo "Check Docker logs"
-                        DOCKER_LOGS=$(do_docker_logs)
-                        if [[ ${DOCKER_LOGS} = *"POLKADOT LAUNCH COMPLETE"* ]];then
-                                echo "πŸš€ POLKADOT LAUNCH COMPLETE πŸš€"
-                                return 0
-                        else
-                                echo "Message not found in logs output, repeating..."
-                                return 1
-                        fi
-                else
-                        echo "Container node-parachain NOT RUNNING"
-                        echo "Halting all future checks"
-                        exit 1
-                fi
-          echo "something goes wrong"
-          exit 1
-          }
-          while ! is_started; do
-                echo "Waiting for special message in log files "
-                sleep 30s
-                counter=$(( $counter - 1 ))
-                echo "Counter: $counter"
-                if [ "$counter" -gt "0" ]; then
-                         continue
-                else
-                         break
-                fi
-          done
-          echo "Halting script"
-          exit 0
-        shell: bash
-
-      - name: Checkout at '${{ matrix.mainnet_branch }}' branch
-        uses: actions/checkout@master
-        with:
-          ref: ${{ matrix.mainnet_branch }}  #Checking out head commit
-          path: ${{ matrix.mainnet_branch }}
-
-      - name: Run tests before Node Parachain upgrade
-        working-directory: ${{ matrix.mainnet_branch }}/tests
-        run: |
-          yarn install
-          yarn add mochawesome
-          echo "Ready to start tests"
-          yarn polkadot-types
-          NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-before-${NOW}
-        env:
-          RPC_URL: http://127.0.0.1:9933/
-
-      - name: Upload Test Report Before Node upgrade
-        uses: phoenix-actions/test-reporting@v8
-        id: test-report-before
-        if: success() || failure()    # run this step even if previous step failed
-        with:
-          name: Tests before node upgrade ${{ matrix.network }}            # Name of the check run which will be created
-          path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-before-*.json    # Path to test results
-          reporter: mochawesome-json
-          fail-on-error: 'false'
-
-      # TODO uncomment thease steps after the merge
-      #- name: Run Parallel tests before Node Parachain upgrade
-      #  working-directory: ${{ matrix.mainnet_branch }}/tests
-      #  run: |
-      #    yarn install
-      #    yarn add mochawesome
-      #    echo "Ready to start tests"
-      #    yarn polkadot-types
-      #    NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}
-      #  env:
-      #    RPC_URL: http://127.0.0.1:9933/
-
-      #- name: Upload Parallel Test Report Before Node upgrade
-      #  uses: phoenix-actions/test-reporting@v8
-      #  id: test-parallel-report-before
-      #  if: success() || failure()    # run this step even if previous step failed
-      #  with:
-      #    name: Tests before node upgrade ${{ matrix.network }}            # Name of the check run which will be created
-      #    path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-parallel-*.json    # Path to test results
-      #    reporter: mochawesome-json
-      #    fail-on-error: 'false'
-
-      # - name: Run Sequential tests before Node Parachain upgrade
-      #   if: success() || failure()
-      #   working-directory: ${{ matrix.mainnet_branch }}/tests
-      #   run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}
-      #   env:
-      #     RPC_URL: http://127.0.0.1:9933/
-
-      # - name: Upload Sequential Test Report Before Node upgrade
-      #   uses: phoenix-actions/test-reporting@v8
-      #   id: test-sequential-report-before
-      #   if: success() || failure()    # run this step even if previous step failed
-      #   with:
-      #     name: Tests before node upgrade ${{ matrix.network }}            # Name of the check run which will be created
-      #     path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-sequential-*.json    # Path to test results
-      #     reporter: mochawesome-json
-      #     fail-on-error: 'false'
-     
-      - name: Send SIGUSR1 to polkadot-launch process
-        if: success() || failure()
-        run: |
-          #Get PID of polkadot-launch
-          ContainerID=$(docker ps -aqf "name=node-parachain")
-          PID=$(docker exec node-parachain pidof 'polkadot-launch')
-          sleep 30s
-          echo -e "Show logs of node-parachain container.\n"
-          docker logs ${ContainerID}
-          echo -e "\n"
-          echo -e "Restart polkadot-launch process: $PID\n"
-          docker exec node-parachain kill -SIGUSR1 ${PID}
-          echo "SIGUSR1 sent to Polkadot-launch PID: $PID"
-          docker logs ${ContainerID}
-      
-      - name: Get chain logs in case of docker image crashed after Polkadot Launch restart
-        if: failure()                   # run this step only at failure
-        run: |
-          docker exec node-parachain cat /polkadot-launch/9944.log
-          docker exec node-parachain cat /polkadot-launch/9945.log
-          docker exec node-parachain cat /polkadot-launch/alice.log
-          docker exec node-parachain cat /polkadot-launch/eve.log
-          docker exec node-parachain cat /polkadot-launch/dave.log
-          docker exec node-parachain cat /polkadot-launch/charlie.log             
-
-      - name: Check if docker logs consist messages related to testing of Node Parachain Upgrade.
-        if: success()
-        run: |
-          counter=160
-          function check_container_status {
-                docker inspect -f {{.State.Running}} node-parachain
-          }
-          function do_docker_logs {
-                docker logs --details node-parachain  2>&1
-          }
-          function is_started {
-                if [ "$(check_container_status)" == "true" ]; then
-                        echo "Container: node-parachain RUNNING";
-                        echo "Check Docker logs"
-                        DOCKER_LOGS=$(do_docker_logs)
-                        if [[ ${DOCKER_LOGS} = *"All parachain collators restarted with the new binaries."* ]];then
-                                echo "πŸŒ— All parachain collators restarted with the new binaries."
-                                return 0
-                        else
-                                echo "Message not found in logs output, repeating..."
-                                return 1
-                        fi
-                else
-                        echo "Container node-parachain NOT RUNNING"
-                        echo "Halting all future checks"
-                        exit 1
-                fi
-          echo "something goes wrong"
-          exit 1
-          }
-          while ! is_started; do
-                echo "Waiting for special message in log files "
-                sleep 30s
-                counter=$(( $counter - 1 ))
-                echo "Counter: $counter"
-                if [ "$counter" -gt "0" ]; then
-                         continue
-                else
-                         break
-                fi
-          done
-          echo "Halting script"
-          exit 0
-        shell: bash
-        
-      ## TODO: Remove next two blocks before switch to Parrallel & Sequental tests. Uncoment commented blocks.
-      - name: Run tests after Node Parachain upgrade
-        working-directory: ${{ matrix.mainnet_branch }}/tests
-        run: |
-          yarn install
-          yarn add mochawesome
-          echo "Ready to start tests"
-          yarn polkadot-types
-          NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-after-${NOW}
-        env:
-          RPC_URL: http://127.0.0.1:9933/
-
-      - name: Test Report After Node upgrade
-        uses: phoenix-actions/test-reporting@v8
-        id: test-report-after
-        if: success() || failure()    # run this step even if previous step failed
-        with:
-          name: Tests after node upgrade ${{ matrix.network }}            # Name of the check run which will be created
-          path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-after-*.json    # Path to test results
-          reporter: mochawesome-json
-          fail-on-error: 'false'
-
-      # TODO uncomment thease steps after the merge
-      #- name: Run Parallel tests after Node Parachain upgrade
-      #  working-directory: ${{ matrix.mainnet_branch }}/tests
-      #  run: |
-      #    yarn install
-      #    yarn add mochawesome
-      #    node scripts/readyness.js
-      #    echo "Ready to start tests"
-      #    yarn polkadot-types
-      #    NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}
-      #  env:
-      #    RPC_URL: http://127.0.0.1:9933/
-
-      #- name: Test Report Parallel After Node upgrade
-      #  uses: phoenix-actions/test-reporting@v8
-      #  id: test-report-parallel-after
-      #  if: success() || failure()    # run this step even if previous step failed
-      #  with:
-      #    name: Tests after node upgrade ${{ matrix.network }}            # Name of the check run which will be created
-      #    path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-parallel-*.json    # Path to test results
-      #    reporter: mochawesome-json
-      #    fail-on-error: 'false'
-      
-      #- name: Run Sequential tests after Node Parachain upgrade
-      #  if: success() || failure()
-      #  working-directory: ${{ matrix.mainnet_branch }}/tests
-      #  run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}
-      #  env:
-      #    RPC_URL: http://127.0.0.1:9933/
-
-      #- name: Upload Sequential Test Report After Node upgrade
-      #  uses: phoenix-actions/test-reporting@v8
-      #  id: test-sequential-report-after
-      #  if: success() || failure()    # run this step even if previous step failed
-      #  with:
-      #    name: Tests before node upgrade ${{ matrix.network }}            # Name of the check run which will be created
-      #    path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-sequential-*.json    # Path to test results
-      #    reporter: mochawesome-json
-      #    fail-on-error: 'false'
-
-
-      - name: Stop running containers
-        if: always()                   # run this step always
-        run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.node.${{ matrix.network }}.yml" down --volumes
-
-      - name: Remove builder cache
-        if: always()                   # run this step always
-        run: |
-          docker builder prune -f -a
-          docker system prune -f
-          docker image prune -f -a
-
-      - name: Remove repo at the end
-        if: always()                   # run this step always
-        run: |
-          ls -ls ./
deleted.github/workflows/test_codestyle_v2.ymldiffbeforeafterboth
--- a/.github/workflows/test_codestyle_v2.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586804253/Yarn+eslint
-# Yarn Eslint over tests
-#
-name: yarn eslint
-
-# Triger: only call from main workflow(re-usable workflows)
-on:
-  workflow_call:
-
-jobs:
-  code_style:
-    runs-on: [ self-hosted-ci ]
-
-    steps:
-      - uses: actions/checkout@v3
-
-      - uses: actions/setup-node@v3
-        with:
-          node-version: 16
-
-      - name: Install modules
-        run: cd tests && yarn
-      - name: Run ESLint
-        run: cd tests && yarn eslint --ext .ts,.js src/
added.github/workflows/try-runtime.ymldiffbeforeafterboth
--- /dev/null
+++ b/.github/workflows/try-runtime.yml
@@ -0,0 +1,79 @@
+# Try-runtime checks
+# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2587656213/Try+runtime
+
+# Triger: only call from main workflow(re-usable workflows)
+on:
+  workflow_call:
+
+# A workflow run is made up of one or more jobs that can run sequentially or in parallel
+jobs:
+  try-runtime:
+    # The type of runner that the job will run on
+    runs-on: self-hosted-ci
+    
+    name: ${{ matrix.network }}-try-runtime
+
+    continue-on-error: true         #Do not stop testing of matrix runs failed.  As it decided during PR review - it required 50/50& Let's check it with false.
+
+    strategy:
+      matrix:
+        include:
+          - network: opal
+            features: opal-runtime
+            replica_from_address: wss://eu-ws-opal.unique.network:443
+          - network: quartz
+            features: quartz-runtime
+            replica_from_address: wss://eu-ws-quartz.unique.network:443
+          - network: unique
+            features: unique-runtime
+            replica_from_address: wss://eu-ws.unique.network:443
+
+    steps:
+
+      - name: Clean Workspace
+        uses: AutoModality/action-clean@v1.1.0
+
+      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+      - uses: actions/checkout@v3
+        with:
+          ref: ${{ github.head_ref }}  #Checking out head commit
+
+      - name: Read .env file
+        uses: xom9ikk/dotenv@v2
+
+      - name: Generate ENV related extend file for docker-compose
+        uses: cuchi/jinja2-action@v1.2.0
+        with:
+          template: .docker/docker-compose.try-runtime.j2
+          output_file: .docker/docker-compose.try-runtime.${{ matrix.network }}.yml
+          variables: |
+            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
+            FEATURE=${{ matrix.features }}
+            REPLICA_FROM=${{ matrix.replica_from_address }}
+
+      - name: Show build configuration
+        run: cat .docker/docker-compose.try-runtime.${{ matrix.network }}.yml
+
+      - name: Build the stack
+        run: docker-compose -f ".docker/docker-compose-try-runtime.yml" -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" up --build  --force-recreate --timeout 300 --remove-orphans --exit-code-from try-runtime
+ 
+      - name: Collect Docker Logs
+        if: success() || failure()
+        uses: jwalton/gh-docker-logs@v2.2.0
+        with:
+          dest: './try-runtime-logs.${{ matrix.network }}'
+          images: 'try-runtime' 
+
+      - name: Show docker logs
+        run: cat './try-runtime-logs.${{ matrix.network }}/try-runtime.log'
+
+      - name: Stop running containers
+        if: always()                   # run this step always
+        run: docker-compose -f ".docker/docker-compose-try-runtime.yml" -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" down
+        
+      - name: Remove builder cache
+        if: always()                   # run this step always
+        run: |
+          docker builder prune -f -a
+          docker system prune -f
+          docker image prune -f -a
deleted.github/workflows/try-runtime_v2.ymldiffbeforeafterboth
--- a/.github/workflows/try-runtime_v2.yml
+++ /dev/null
@@ -1,79 +0,0 @@
-# Try-runtime checks
-# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2587656213/Try+runtime
-
-# Triger: only call from main workflow(re-usable workflows)
-on:
-  workflow_call:
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-  try-runtime:
-    # The type of runner that the job will run on
-    runs-on: self-hosted-ci
-    
-    name: ${{ matrix.network }}-try-runtime
-
-    continue-on-error: true         #Do not stop testing of matrix runs failed.  As it decided during PR review - it required 50/50& Let's check it with false.
-
-    strategy:
-      matrix:
-        include:
-          - network: opal
-            features: opal-runtime
-            replica_from_address: wss://eu-ws-opal.unique.network:443
-          - network: quartz
-            features: quartz-runtime
-            replica_from_address: wss://eu-ws-quartz.unique.network:443
-          - network: unique
-            features: unique-runtime
-            replica_from_address: wss://eu-ws.unique.network:443
-
-    steps:
-
-      - name: Clean Workspace
-        uses: AutoModality/action-clean@v1.1.0
-
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-        with:
-          ref: ${{ github.head_ref }}  #Checking out head commit
-
-      - name: Read .env file
-        uses: xom9ikk/dotenv@v2
-
-      - name: Generate ENV related extend file for docker-compose
-        uses: cuchi/jinja2-action@v1.2.0
-        with:
-          template: .docker/docker-compose.try-runtime.j2
-          output_file: .docker/docker-compose.try-runtime.${{ matrix.network }}.yml
-          variables: |
-            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
-            FEATURE=${{ matrix.features }}
-            REPLICA_FROM=${{ matrix.replica_from_address }}
-
-      - name: Show build configuration
-        run: cat .docker/docker-compose.try-runtime.${{ matrix.network }}.yml
-
-      - name: Build the stack
-        run: docker-compose -f ".docker/docker-compose-try-runtime.yml" -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" up --build  --force-recreate --timeout 300 --remove-orphans --exit-code-from try-runtime
- 
-      - name: Collect Docker Logs
-        if: success() || failure()
-        uses: jwalton/gh-docker-logs@v2.2.0
-        with:
-          dest: './try-runtime-logs.${{ matrix.network }}'
-          images: 'try-runtime' 
-
-      - name: Show docker logs
-        run: cat './try-runtime-logs.${{ matrix.network }}/try-runtime.log'
-
-      - name: Stop running containers
-        if: always()                   # run this step always
-        run: docker-compose -f ".docker/docker-compose-try-runtime.yml" -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" down
-        
-      - name: Remove builder cache
-        if: always()                   # run this step always
-        run: |
-          docker builder prune -f -a
-          docker system prune -f
-          docker image prune -f -a
added.github/workflows/unit-test.ymldiffbeforeafterboth
--- /dev/null
+++ b/.github/workflows/unit-test.yml
@@ -0,0 +1,60 @@
+# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586738699/Unit+Tests
+# Re-Usable Workflow for lanching Unit tests
+name: unit tests
+
+# Controls when the action will run.
+# Triger: only call from main workflow(re-usable workflows)
+on:
+  workflow_call:
+
+# A workflow run is made up of one or more jobs that can run sequentially or in parallel
+jobs:
+  
+  unit_tests:
+    # The type of runner that the job will run on
+    runs-on: [self-hosted-ci,medium]
+    timeout-minutes: 1380
+
+    name: ${{ github.base_ref }}
+
+    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.
+
+
+    steps:
+
+      - name: Clean Workspace
+        uses: AutoModality/action-clean@v1.1.0
+
+      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+      - uses: actions/checkout@v3
+        with:
+          ref: ${{ github.head_ref }}  #Checking out head commit
+
+      - name: Read .env file
+        uses: xom9ikk/dotenv@v2
+
+      - name: Generate ENV related extend file for docker-compose
+        uses: cuchi/jinja2-action@v1.2.0
+        with:
+          template: .docker/docker-compose.tmp-unit.j2
+          output_file: .docker/docker-compose.unit.yml
+          variables: |
+            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
+    
+
+      - name: Show build configuration
+        run: cat .docker/docker-compose.unit.yml
+
+      - name: Build the stack
+        run: docker-compose -f ".docker/docker-compose-dev.yaml" -f ".docker/docker-compose.unit.yml" up --build  --force-recreate --timeout 300 --remove-orphans --exit-code-from node-dev
+
+      - name: Stop running containers
+        if: always()                   # run this step always
+        run: docker-compose -f ".docker/docker-compose-dev.yaml" -f ".docker/docker-compose.unit.yml" down
+        
+      - name: Remove builder cache
+        if: always()                   # run this step always
+        run: |
+          docker builder prune -f -a
+          docker system prune -f
+          docker image prune -f -a
deleted.github/workflows/unit-test_v2.ymldiffbeforeafterboth
--- a/.github/workflows/unit-test_v2.yml
+++ /dev/null
@@ -1,60 +0,0 @@
-# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586738699/Unit+Tests
-# Re-Usable Workflow for lanching Unit tests
-name: unit tests
-
-# Controls when the action will run.
-# Triger: only call from main workflow(re-usable workflows)
-on:
-  workflow_call:
-
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel
-jobs:
-  
-  unit_tests:
-    # The type of runner that the job will run on
-    runs-on: [self-hosted-ci,medium]
-    timeout-minutes: 1380
-
-    name: ${{ github.base_ref }}
-
-    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.
-
-
-    steps:
-
-      - name: Clean Workspace
-        uses: AutoModality/action-clean@v1.1.0
-
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-        with:
-          ref: ${{ github.head_ref }}  #Checking out head commit
-
-      - name: Read .env file
-        uses: xom9ikk/dotenv@v2
-
-      - name: Generate ENV related extend file for docker-compose
-        uses: cuchi/jinja2-action@v1.2.0
-        with:
-          template: .docker/docker-compose.tmp-unit.j2
-          output_file: .docker/docker-compose.unit.yml
-          variables: |
-            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
-    
-
-      - name: Show build configuration
-        run: cat .docker/docker-compose.unit.yml
-
-      - name: Build the stack
-        run: docker-compose -f ".docker/docker-compose-dev.yaml" -f ".docker/docker-compose.unit.yml" up --build  --force-recreate --timeout 300 --remove-orphans --exit-code-from node-dev
-
-      - name: Stop running containers
-        if: always()                   # run this step always
-        run: docker-compose -f ".docker/docker-compose-dev.yaml" -f ".docker/docker-compose.unit.yml" down
-        
-      - name: Remove builder cache
-        if: always()                   # run this step always
-        run: |
-          docker builder prune -f -a
-          docker system prune -f
-          docker image prune -f -a
added.github/workflows/yarn-dev.ymldiffbeforeafterboth
--- /dev/null
+++ b/.github/workflows/yarn-dev.yml
@@ -0,0 +1,101 @@
+# Integration test in --dev mode
+# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586411104/Integration+tests
+name: yarn dev
+
+# Triger: only call from main workflow(re-usable workflows)
+on:
+  workflow_call:
+
+
+
+# A workflow run is made up of one or more jobs that can run sequentially or in parallel
+jobs:
+  
+  dev_build_int_tests:
+    # The type of runner that the job will run on
+    runs-on: [self-hosted-ci,medium]
+    timeout-minutes: 1380
+
+    name: ${{ matrix.network }}
+
+    continue-on-error: true         #Do not stop testing of matrix runs failed.  As it decided during PR review - it required 50/50& Let's check it with false.
+
+    strategy:
+      matrix:
+        include:
+          - network: "opal"
+            features: "opal-runtime"
+          - network: "quartz"
+            features: "quartz-runtime"
+          - network: "unique"
+            features: "unique-runtime"
+
+    steps:
+
+      - name: Clean Workspace
+        uses: AutoModality/action-clean@v1.1.0
+
+      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+      - uses: actions/checkout@v3
+        with:
+          ref: ${{ github.head_ref }}  #Checking out head commit
+
+      - name: Read .env file
+        uses: xom9ikk/dotenv@v2
+
+      - name: Generate ENV related extend file for docker-compose
+        uses: cuchi/jinja2-action@v1.2.0
+        with:
+          template: .docker/docker-compose.tmp-dev.j2
+          output_file: .docker/docker-compose.${{ matrix.network }}.yml
+          variables: |
+            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
+            FEATURE=${{ matrix.features }}
+    
+
+      - name: Show build configuration
+        run: cat .docker/docker-compose.${{ matrix.network }}.yml
+
+      - name: Build the stack
+        run: docker-compose -f ".docker/docker-compose-dev.yaml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans
+
+      - uses: actions/setup-node@v3
+        with:
+          node-version: 16
+
+      - name: Run tests
+        working-directory: tests
+        run: |
+          yarn install
+          yarn add mochawesome
+          node scripts/readyness.js
+          echo "Ready to start tests"
+          yarn polkadot-types
+          NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-${NOW}
+        env:
+          RPC_URL: http://127.0.0.1:9933/
+
+      - name: Test Report
+        uses: phoenix-actions/test-reporting@v8
+        id: test-report
+        if: success() || failure()    # run this step even if previous step failed
+        with:
+          name: int test results - ${{ matrix.network }}            # Name of the check run which will be created
+          path: tests/mochawesome-report/test-*.json    # Path to test results
+          reporter: mochawesome-json
+          fail-on-error: 'false'
+
+      - name: Read output variables
+        run: |
+          echo "url is ${{ steps.test-report.outputs.runHtmlUrl }}"
+
+      - name: Stop running containers
+        if: always()                   # run this step always
+        run: docker-compose -f ".docker/docker-compose-dev.yaml" -f ".docker/docker-compose.${{ matrix.network }}.yml" down
+
+      - name: Remove builder cache
+        if: always()                   # run this step always
+        run: |
+          docker builder prune -f -a
+          docker system prune -f
+          docker image prune -f -a