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