12345on:6 workflow_call:78910jobs:1112 prepare-execution-matrix:1314 name: execution matrix1516 runs-on: self-hosted-ci17 outputs:18 matrix: ${{ steps.create_matrix.outputs.matrix }}1920 steps:2122 - name: Clean Workspace23 uses: AutoModality/action-clean@v1.1.02425 26 - uses: actions/checkout@v3.1.027 with:28 ref: ${{ github.head_ref }} 2930 - name: Read .env file31 uses: xom9ikk/dotenv@v23233 - name: Create Execution matrix34 uses: CertainLach/create-matrix-action@v435 id: create_matrix36 with:37 matrix: |38 network {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, runtime_features {opal-runtime}, wasm_name {opal}, fork_source {${{ env.OPAL_REPLICA_FROM }}}39 network {sapphire}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}, runtime_features {sapphire-runtime}, wasm_name {quartz}, fork_source {${{ env.SAPPHIRE_REPLICA_FROM }}}40 network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, runtime_features {quartz-runtime}, wasm_name {quartz}, fork_source {${{ env.QUARTZ_REPLICA_FROM }}}41 network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, runtime_features {unique-runtime}, wasm_name {unique}, fork_source {${{ env.UNIQUE_REPLICA_FROM }}}4243 forkless-data:4445 needs: prepare-execution-matrix46 47 runs-on: [self-hosted-ci,large]4849 timeout-minutes: 13805051 name: ${{ matrix.network }}-data5253 continue-on-error: true 5455 strategy:56 matrix:57 include: ${{fromJson(needs.prepare-execution-matrix.outputs.matrix)}}5859 steps:6061 - name: Clean Workspace62 uses: AutoModality/action-clean@v1.1.06364 65 - uses: actions/checkout@v3.1.066 with:67 ref: ${{ github.head_ref }} 6869 70 - name: Prepare SHA71 uses: ./.github/actions/prepare7273 - name: Read .env file74 uses: xom9ikk/dotenv@v27576 - name: Log in to Docker Hub77 uses: docker/login-action@v2.1.078 with:79 username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}80 password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}8182 - name: Generate ENV related extend Dockerfile file for POLKADOT83 uses: cuchi/jinja2-action@v1.2.084 with:85 template: .docker/Dockerfile-polkadot.j286 output_file: .docker/Dockerfile-polkadot.${{ matrix.relay_branch }}.yml87 variables: |88 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}89 POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }}90 91 - name: Prepare polkadot92 uses: ./.github/actions/buildContainer93 id: polkadot94 with:95 container: uniquenetwork/builder-polkadot96 tag: ${{ matrix.relay_branch }}97 context: .docker98 dockerfile: Dockerfile-polkadot.${{ matrix.relay_branch }}.yml99 dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}100 dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}101102 - name: Prepare latest103 uses: ./.github/actions/buildContainer104 id: latest105 with:106 container: uniquenetwork/ci-data-${{ matrix.network }}107 tag: ${{ env.REF_SLUG }}-${{ env.BUILD_SHA }}108 context: .109 dockerfile: .docker/Dockerfile-unique110 args: |111 --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }}112 --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}113 dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}114 dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}115116 - name: Extract wasms117 uses: ./.github/actions/extractDocker118 id: wasms119 with:120 image: ${{ steps.latest.outputs.name }}121 directory: /wasm122123 - uses: actions/setup-node@v3.5.1124 with:125 node-version: 18126127 - name: Install baedeker128 uses: UniqueNetwork/baedeker-action/setup@built129130 - name: Setup library131 run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library132133 - name: Start network134 uses: UniqueNetwork/baedeker-action@built135 id: bdk136 with:137 jpath: |138 .baedeker/vendor139 tla-str: |140 relay_spec=${{ env.RELAY_CHAIN_TYPE }}-local141 forked_spec=${{ matrix.network }}142 fork_source=${{ matrix.fork_source }}143 inputs: |144 .baedeker/forkless-data.jsonnet145 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.name }}'}})146 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}})147148 - name: "Reconcile: runtime is upgraded"149 working-directory: js-packages/tests150 run: |151 yarn152 ../scripts/wait_for_first_block.sh153 echo "Executing upgrade"154 yarn ts-node --esm util/authorizeEnactUpgrade.ts ${{ steps.wasms.outputs.dir }}/${{ matrix.wasm_name }}-runtime/${{ matrix.wasm_name }}_runtime.compact.compressed.wasm155 env:156 RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}157158 - name: Run Parallel tests after forkless upgrade159 working-directory: js-packages/tests160 run: |161 ../scripts/wait_for_first_block.sh162 echo "Ready to start tests"163 NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}164 env:165 RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}166167 - name: Run Sequential tests after forkless upgrade168 if: success() || failure()169 working-directory: js-packages/tests170 run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}171 env:172 RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}173174 - name: Remove builder cache175 if: always() 176 run: |177 docker system prune -f