difftreelog
Merge pull request #948 from UniqueNetwork/ci/locks-to-freezes
in: master
17 files changed
.docker/Dockerfile-parachain-upgrade-data.j2diffbeforeafterboth424243ENV RELAY_CHAIN_TYPE={{ RELAY_CHAIN_TYPE }}43ENV RELAY_CHAIN_TYPE={{ RELAY_CHAIN_TYPE }}44ENV REPLICA_FROM={{ REPLICA_FROM }}44ENV REPLICA_FROM={{ REPLICA_FROM }}45ENV DESTINATION_SPEC_VERSION={{ DESTINATION_SPEC_VERSION }}45ENV NEW_PARA_BIN=/unique-chain/target/release/unique-collator46ENV NEW_PARA_BIN=/unique-chain/target/release/unique-collator46ENV NEW_PARA_WASM=/unique-chain/target/release/wbuild/{{ WASM_NAME }}-runtime/{{ WASM_NAME }}_runtime.compact.compressed.wasm47ENV NEW_PARA_WASM=/unique-chain/target/release/wbuild/{{ WASM_NAME }}-runtime/{{ WASM_NAME }}_runtime.compact.compressed.wasm474877EXPOSE 3314478EXPOSE 3314478EXPOSE 3315579EXPOSE 33155798080CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" REPLICA_FROM NEW_PARA_BIN NEW_PARA_WASM RELAY_CHAIN_TYPE && \81CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" REPLICA_FROM NEW_PARA_BIN NEW_PARA_WASM RELAY_CHAIN_TYPE DESTINATION_SPEC_VERSION && \81 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \82 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \82 cd /unique-chain/tests && \83 cd /unique-chain/tests && \83 npm install --global yarn && \84 npm install --global yarn && \.docker/docker-compose.forkless-data.j2diffbeforeafterboth3services:3services:4 forkless-data:4 forkless-data:5 image: uniquenetwork/ci-forkless-data-local:{{ NETWORK }}-{{ BUILD_TAG }}5 image: uniquenetwork/ci-forkless-data-local:{{ NETWORK }}-{{ BUILD_TAG }}6 container_name: forkless-data6 container_name: forkless-data-{{ NETWORK }}7 expose:7 expose:8 - 99448 - 99449 - 99339 - 9933.envdiffbeforeafterboth2POLKADOT_LAUNCH_BRANCH=unique-network2POLKADOT_LAUNCH_BRANCH=unique-network3RELAY_CHAIN_TYPE=westend3RELAY_CHAIN_TYPE=westend4CHAINQL=v0.4.14CHAINQL=v0.4.15DESTINATION_SPEC_VERSION=v942057566POLKADOT_MAINNET_BRANCH=release-v0.9.377POLKADOT_MAINNET_BRANCH=release-v0.9.377STATEMINT_BUILD_BRANCH=release-parachains-v93708STATEMINT_BUILD_BRANCH=release-parachains-v937016KARURA_BUILD_BRANCH=release-karura-2.17.017KARURA_BUILD_BRANCH=release-karura-2.17.017MOONRIVER_BUILD_BRANCH=runtime-230218MOONRIVER_BUILD_BRANCH=runtime-230218SHIDEN_BUILD_BRANCH=v5.4.019SHIDEN_BUILD_BRANCH=v5.4.019QUARTZ_MAINNET_BRANCH=release-v94105520QUARTZ_MAINNET_BRANCH=release-v94105620QUARTZ_REPLICA_FROM=wss://ws-quartz.unique.network:44321QUARTZ_REPLICA_FROM=wss://ws-quartz.unique.network:443212222UNIQUEWEST_MAINNET_BRANCH=release-v0.9.4223UNIQUEWEST_MAINNET_BRANCH=release-v0.9.4223WESTMINT_BUILD_BRANCH=parachains-v942024WESTMINT_BUILD_BRANCH=parachains-v942024OPAL_MAINNET_BRANCH=release-v94105525OPAL_MAINNET_BRANCH=release-v94205725OPAL_REPLICA_FROM=wss://ws-opal.unique.network:44326OPAL_REPLICA_FROM=wss://ws-opal.unique.network:443262727UNIQUEEAST_MAINNET_BRANCH=release-v0.9.4228UNIQUEEAST_MAINNET_BRANCH=release-v0.9.42.github/workflows/forkless-update-data.ymldiffbeforeafterboth76 with:76 with:77 template: .docker/Dockerfile-parachain-upgrade-data.j277 template: .docker/Dockerfile-parachain-upgrade-data.j278 output_file: .docker/Dockerfile-parachain-upgrade-data.${{ matrix.network }}.yml78 output_file: .docker/Dockerfile-parachain-upgrade-data.${{ matrix.network }}.yml79 variables: |79 variables: |80 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}80 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}81 NETWORK=${{ matrix.network }}81 NETWORK=${{ matrix.network }}82 MAINNET_BRANCH=${{ matrix.mainnet_branch }}82 MAINNET_BRANCH=${{ matrix.mainnet_branch }}83 WASM_NAME=${{ matrix.wasm_name }}83 WASM_NAME=${{ matrix.wasm_name }}84 RELAY_CHAIN_TYPE=${{ env.RELAY_CHAIN_TYPE }}84 RELAY_CHAIN_TYPE=${{ env.RELAY_CHAIN_TYPE }}85 POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }}85 DESTINATION_SPEC_VERSION=${{ env.DESTINATION_SPEC_VERSION }}86 POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }}86 REPLICA_FROM=${{ matrix.replica_from_address }}87 REPLICA_FROM=${{ matrix.replica_from_address }}87 CHAINQL=${{ env.CHAINQL }}88 CHAINQL=${{ env.CHAINQL }}88 EXTRA_FEATURES=${{ matrix.extra_features }}89 EXTRA_FEATURES=${{ matrix.extra_features }}899090 - name: Show build configuration91 - name: Show build configuration91 run: cat .docker/Dockerfile-parachain-upgrade-data.${{ matrix.network }}.yml92 run: cat .docker/Dockerfile-parachain-upgrade-data.${{ matrix.network }}.yml195196196 - name: Check if docker logs consist logs related to Runtime Upgrade testing.197 - name: Check if docker logs consist logs related to Runtime Upgrade testing.197 if: success()198 if: success()198 run: |199 run: |199 counter=160200 counter=160200 function check_container_status {201 function check_container_status {201 docker inspect -f {{.State.Running}} forkless-data202 docker inspect -f {{.State.Running}} forkless-data-${{ matrix.network }}202 }203 }203 function do_docker_logs {204 function do_docker_logs {204 docker logs --details forkless-data 2>&1205 docker logs --details forkless-data-${{ matrix.network }} 2>&1205 }206 }206 function is_started {207 function is_started {207 if [ "$(check_container_status)" == "true" ]; then208 if [ "$(check_container_status)" == "true" ]; then208 echo "Container: forkless-data RUNNING";209 echo "Container: forkless-data-${{ matrix.network }} RUNNING";209 echo "Check Docker logs"210 echo "Check Docker logs"210 DOCKER_LOGS=$(do_docker_logs)211 DOCKER_LOGS=$(do_docker_logs)211 if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then212 if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then212 echo "🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"213 echo "🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"213 return 0214 return 0214 elif [[ ${DOCKER_LOGS} = *"🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"* ]];then215 elif [[ ${DOCKER_LOGS} = *"🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"* ]];then215 echo "🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"216 echo "🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"216 return 1217 return 1217 else218 else218 echo "Message not found in logs output, repeating..."219 echo "Message not found in logs output, repeating..."219 return 1220 return 1220 fi221 fi221 else222 else222 echo "Container forkless-data not RUNNING"223 echo "Container forkless-data-${{ matrix.network }} not RUNNING"223 echo "Halting all future checks"224 echo "Halting all future checks"224 exit 1225 exit 1225 fi226 fi226 exit 0227 exit 0227 }228 }228 while ! is_started; do229 while ! is_started; do229 echo "Waiting for special message in log files "230 echo "Waiting for special message in log files "230 sleep 30s231 sleep 30s231 counter=$(( $counter - 1 ))232 counter=$(( $counter - 1 ))232 echo "Counter: $counter"233 echo "Counter: $counter"233 if [ "$counter" -gt "0" ]; then234 if [ "$counter" -gt "0" ]; then234 continue235 continue235 else236 else236 echo "Counter reached zero, yet upgrade is not finished"237 echo "Counter reached zero, yet upgrade is not finished"237 exit 1238 exit 1238 fi239 fi239 done240 done240 echo "Halting script"241 echo "Halting script"241 exit 0242 exit 0242 shell: bash243 shell: bash243244244 - name: Collect Docker Logs245 - name: Collect Docker Logs249250250 - name: Show Docker logs251 - name: Show Docker logs251 if: success() || failure()252 if: success() || failure()252 run: cat './forkless-parachain-upgrade-data-logs.${{ matrix.network }}/forkless-data.log'253 run: cat './forkless-parachain-upgrade-data-logs.${{ matrix.network }}/forkless-data-${{ matrix.network }}.log'253254254 - name: Stop running containers255 - name: Stop running containers255 if: always() # run this step always256 if: always() # run this step alwaystests/package.jsondiffbeforeafterboth139 "chai-like": "^1.1.1",139 "chai-like": "^1.1.1",140 "csv-writer": "^1.6.0",140 "csv-writer": "^1.6.0",141 "find-process": "^1.4.7",141 "find-process": "^1.4.7",142 "lossless-json": "^2.0.9",142 "solc": "0.8.17",143 "solc": "0.8.17",143 "web3": "1.10.0"144 "web3": "1.10.0"144 },145 },tests/src/migrations/942057-appPromotion/README.mddiffbeforeafterbothno changes
tests/src/migrations/942057-appPromotion/afterMaintenance.test.tsdiffbeforeafterbothno changes
tests/src/migrations/942057-appPromotion/collectData.tsdiffbeforeafterbothno changes
tests/src/migrations/942057-appPromotion/correctStateAfterMaintenance.tsdiffbeforeafterbothno changes
tests/src/migrations/942057-appPromotion/executeMigration.tsdiffbeforeafterbothno changes
tests/src/migrations/942057-appPromotion/index.tsdiffbeforeafterbothno changes
tests/src/migrations/942057-appPromotion/lockedToFreeze.tsdiffbeforeafterbothno changes
tests/src/migrations/942057-appPromotion/runCheckState.tsdiffbeforeafterbothno changes
tests/src/migrations/942057-appPromotion/stakersParser.jsonnetdiffbeforeafterbothno changes
tests/src/util/frankenstein.tsdiffbeforeafterboth20import {readNetworkConfig} from '@zombienet/utils/dist';20import {readNetworkConfig} from '@zombienet/utils/dist';21import {resolve} from 'path';21import {resolve} from 'path';22import {usingPlaygrounds} from '.';22import {usingPlaygrounds} from '.';23import {migrations} from './frankensteinMigrate';23import fs from 'fs';24import fs from 'fs';242525const ZOMBIENET_CREDENTIALS = process.env.ZOMBIENET_CREDENTIALS || '../.env';26const ZOMBIENET_CREDENTIALS = process.env.ZOMBIENET_CREDENTIALS || '../.env';31const NEW_RELAY_WASM = process.env.NEW_RELAY_WASM;32const NEW_RELAY_WASM = process.env.NEW_RELAY_WASM;32const NEW_PARA_BIN = process.env.NEW_PARA_BIN;33const NEW_PARA_BIN = process.env.NEW_PARA_BIN;33const NEW_PARA_WASM = process.env.NEW_PARA_WASM;34const NEW_PARA_WASM = process.env.NEW_PARA_WASM;35const DESTINATION_SPEC_VERSION = process.env.DESTINATION_SPEC_VERSION!;34const PARACHAIN_BLOCK_TIME = 12_000;36const PARACHAIN_BLOCK_TIME = 12_000;35const SUPERUSER_KEY = '//Alice';37const SUPERUSER_KEY = '//Alice';363883}85}848685// Enable or disable maintenance mode if present on the chain87// Enable or disable maintenance mode if present on the chain86async function toggleMaintenanceMode(value: boolean, wsUri: string) {88async function toggleMaintenanceMode(value: boolean, wsUri: string, retries = 5) {89 try {87 await usingPlaygrounds(async (helper, privateKey) => {90 await usingPlaygrounds(async (helper, privateKey) => {88 const superuser = await privateKey(SUPERUSER_KEY);91 const superuser = await privateKey(SUPERUSER_KEY);89 try {92 try {94 console.error('Couldn\'t set maintenance mode. The maintenance pallet probably does not exist. Log:', e);97 console.error('Couldn\'t set maintenance mode. The maintenance pallet probably does not exist. Log:', e);95 }98 }96 }, wsUri);99 }, wsUri);97}100 } catch (error) {101 console.error(error);102 console.log('Trying for retry toggle maintanence mode');103 await delay(12_000);104 await toggleMaintenanceMode(value, wsUri, retries - 1);105 }106}107108async function skipIfAlreadyUpgraded() {109 await usingPlaygrounds(async (helper) => {110 const specVersion = await getSpecVersion(helper.getApi());111 if(`v${specVersion}` === DESTINATION_SPEC_VERSION) {112 console.log('\n🛸 Current version equal DESTINATION_SPEC_VERSION 🛸');113 console.log("\n🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸");114 }115 }, REPLICA_FROM);116}9811799const raiseZombienet = async (): Promise<void> => {118const raiseZombienet = async (): Promise<void> => {119 await skipIfAlreadyUpgraded();100 const isUpgradeTesting = !!NEW_RELAY_BIN || !!NEW_RELAY_WASM || !!NEW_PARA_BIN || !!NEW_PARA_WASM;120 const isUpgradeTesting = !!NEW_RELAY_BIN || !!NEW_RELAY_WASM || !!NEW_PARA_BIN || !!NEW_PARA_WASM;101 /*121 /*102 // If there is nothing to upgrade, what is the point122 // If there is nothing to upgrade, what is the point245 await waitWithTimer(relayInfo.epochTime);265 await waitWithTimer(relayInfo.epochTime);246 }266 }247267268 const migration = migrations[DESTINATION_SPEC_VERSION];269 console.log('⭐️⭐️⭐️ DESTINATION_SPEC_VERSION ⭐️⭐️⭐️', DESTINATION_SPEC_VERSION);248 for(const paraId in network.paras) {270 for(const paraId in network.paras) {249 console.log(`\n--- Upgrading the runtime of parachain ${paraId} \t---`);271 console.log(`\n--- Upgrading the runtime of parachain ${paraId} \t---`);250 const para = network.paras[paraId];272 const para = network.paras[paraId];251273252 // Enable maintenance mode if present274 // Enable maintenance mode if present253 await toggleMaintenanceMode(true, para.nodes[0].wsUri);275 await toggleMaintenanceMode(true, para.nodes[0].wsUri);276 if(migration) {277 console.log('⭐️⭐️⭐️ Running pre-upgrade scripts... ⭐️⭐️⭐️');278 await migration.before();279 }254280255 // Read the WASM code and authorize the upgrade with its hash and set it as the new runtime281 // Read the WASM code and authorize the upgrade with its hash and set it as the new runtime256 const code = fs.readFileSync(NEW_PARA_WASM);282 const code = fs.readFileSync(NEW_PARA_WASM);324350325 // Disable maintenance mode if present351 // Disable maintenance mode if present326 for(const paraId in network.paras) {352 for(const paraId in network.paras) {353 // TODO only if our parachain354 if(migration) {355 console.log('⭐️⭐️⭐️ Running post-upgrade scripts... ⭐️⭐️⭐️');356 await migration.after();357 }327 await toggleMaintenanceMode(false, network.paras[paraId].nodes[0].wsUri);358 await toggleMaintenanceMode(false, network.paras[paraId].nodes[0].wsUri);328 }359 }329 } else {360 } else {tests/src/util/frankensteinMigrate.tsdiffbeforeafterbothno changes
tests/yarn.lockdiffbeforeafterboth3406 resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"3406 resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"3407 integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==3407 integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==340834083409lossless-json@^2.0.9:3410 version "2.0.9"3411 resolved "https://registry.yarnpkg.com/lossless-json/-/lossless-json-2.0.9.tgz#2e9a71a3dcbc6c59dee565e537b9084107b7fe37"3412 integrity sha512-PUfJ5foxULG1x/dXpSckmt0woBDqyq/WFoI885vEqjGwuP41K2EBYh2IT3zYx9dWqcTLIfXiCE5AjhF1jk9Sbg==34133409loupe@^2.3.1:3414loupe@^2.3.1:3410 version "2.3.6"3415 version "2.3.6"3411 resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53"3416 resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53"