git.delta.rocks / unique-network / refs/commits / 7eeb64bd9e5e

difftreelog

source

.github/workflows/forkless-update-nodata.yml7.4 KiBsourcehistory
1# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586837021/Forkless+update+without+data2# Forkless update without data replication34# 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}39            network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, runtime_features {quartz-runtime}, wasm_name {quartz}40            network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, runtime_features {unique-runtime}, wasm_name {unique}4142  forkless-nodata:4344    needs: prepare-execution-matrix45    # The type of runner that the job will run on46    runs-on: [self-hosted-ci,large]4748    timeout-minutes: 13804950    name: ${{ matrix.network }}-nodata5152    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.5354    strategy:55      matrix:56        include: ${{fromJson(needs.prepare-execution-matrix.outputs.matrix)}}5758    steps:5960      - name: Clean Workspace61        uses: AutoModality/action-clean@v1.1.06263      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it64      - uses: actions/checkout@v3.1.065        with:66          ref: ${{ github.head_ref }}  #Checking out head commit6768      # Prepare SHA  69      - name: Prepare SHA70        uses: ./.github/actions/prepare7172      - name: Read .env file73        uses: xom9ikk/dotenv@v27475      - name: Log in to Docker Hub76        uses: docker/login-action@v2.1.077        with:78          username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}79          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}8081      - name: Generate ENV related extend Dockerfile file for POLKADOT82        uses: cuchi/jinja2-action@v1.2.083        with:84          template: .docker/Dockerfile-polkadot.j285          output_file: .docker/Dockerfile-polkadot.${{ matrix.relay_branch }}.yml86          variables: |87            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}88            POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }}89            90      - name: Prepare polkadot91        uses: ./.github/actions/buildContainer92        id: polkadot93        with:94          container: uniquenetwork/builder-polkadot95          tag: ${{ matrix.relay_branch }}96          context: .docker97          dockerfile: Dockerfile-polkadot.${{ matrix.relay_branch }}.yml98          dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}99          dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}100101      - name: Prepare mainnet102        uses: ./.github/actions/buildContainer103        id: mainnet104        with:105          container: uniquenetwork/ci-nodata-${{ matrix.network }}106          tag: ${{ matrix.mainnet_branch }}107          context: .docker108          dockerfile: Dockerfile-unique-release109          args: |110            --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }}111            --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}112            --build-arg UNIQUE_VERSION=${{ matrix.mainnet_branch }}113          dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}114          dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}115116      - name: Prepare latest117        uses: ./.github/actions/buildContainer118        id: latest119        with:120          container: uniquenetwork/ci-nodata-${{ matrix.network }}121          tag: ${{ env.REF_SLUG }}-${{ env.BUILD_SHA }}122          context: .123          dockerfile: .docker/Dockerfile-unique124          args: |125            --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }}126            --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}127          dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}128          dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}129130      - name: Extract wasms131        uses: ./.github/actions/extractDocker132        id: wasms133        with:134          image: ${{ steps.latest.outputs.name }}135          directory: /wasm136137      - uses: actions/setup-node@v3.5.1138        with:139          node-version: 20140141      - name: Install baedeker142        uses: UniqueNetwork/baedeker-action/setup@built143144      - name: Setup library145        run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library146147      - name: Start network148        uses: UniqueNetwork/baedeker-action@built149        id: bdk150        with:151          jpath: |152            .baedeker/vendor153          tla-str: |154            relay_spec=rococo-local155          inputs: |156            .baedeker/node-only.jsonnet157            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.name }}'}})158            # nodata build uses old runtime, but new chain, thus we use mainnet image for spec generation, and then latest image for nodes.159            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}}, for_chain = false)160            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}})161162      - name: "Reconcile: runtime is upgraded"163        working-directory: js-packages/tests164        run: |165          yarn166          ../scripts/wait_for_first_block.sh167          echo "Executing upgrade"168          yarn node --no-warnings=ExperimentalWarning --loader ts-node/esm ../scripts/authorizeEnactUpgrade.ts ${{ steps.wasms.outputs.dir }}/${{ matrix.wasm_name }}-runtime/${{ matrix.wasm_name }}_runtime.compact.compressed.wasm169        env:170          RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}171172      - name: Run Parallel tests after forkless upgrade173        working-directory: js-packages/tests174        run: |175          yarn add mochawesome176          ../scripts/wait_for_first_block.sh177          echo "Ready to start tests"178          NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}179        env:180          RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}181182      - name: Run Sequential tests after forkless upgrade183        if: success() || failure()184        working-directory: js-packages/tests185        run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}186        env:187          RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}188189      - name: Remove builder cache190        if: always()                   # run this step always191        run: |192          docker system prune -f