git.delta.rocks / unique-network / refs/commits / 081791eb4c21

difftreelog

source

.github/workflows/forkless-update-data.yml6.8 KiBsourcehistory
1# Forkless update with data replication2# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586869792/Forkless+update+with+data34# Triger: only call from main workflow(re-usable workflows)5on:6  workflow_call:789# A workflow run is made up of one or more jobs that can run sequentially or in parallel10jobs: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      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it26      - uses: actions/checkout@v3.1.027        with:28          ref: ${{ github.head_ref }}  #Checking out head commit2930      - 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    # The type of runner that the job will run on47    runs-on: [self-hosted-ci,large]4849    timeout-minutes: 13805051    name: ${{ matrix.network }}-data5253    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-matrix.outputs.matrix)}}5859    steps:6061      - name: Clean Workspace62        uses: AutoModality/action-clean@v1.1.06364      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it65      - uses: actions/checkout@v3.1.066        with:67          ref: ${{ github.head_ref }}  #Checking out head commit6869      # Prepare SHA  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: tests150        run: |151          yarn152          ./scripts/wait_for_first_block.sh153          echo "Executing upgrade"154          yarn ts-node --esm src/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: 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: 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()                   # run this step always176        run: |177          docker system prune -f