git.delta.rocks / unique-network / refs/commits / 5bde44b9e4f5

difftreelog

source

.github/workflows/forkless-update-nodata.yml7.5 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 {sapphire}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}, runtime_features {sapphire-runtime}, wasm_name {quartz}40            network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, runtime_features {quartz-runtime}, wasm_name {quartz}41            network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, runtime_features {unique-runtime}, wasm_name {unique}4243  forkless-nodata: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 }}-nodata5253    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 mainnet103        uses: ./.github/actions/buildContainer104        id: mainnet105        with:106          container: uniquenetwork/ci-nodata-${{ matrix.network }}107          tag: ${{ matrix.mainnet_branch }}108          context: .docker109          dockerfile: Dockerfile-unique-release110          args: |111            --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }}112            --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}113            --build-arg UNIQUE_VERSION=${{ matrix.mainnet_branch }}114          dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}115          dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}116117      - name: Prepare latest118        uses: ./.github/actions/buildContainer119        id: latest120        with:121          container: uniquenetwork/ci-nodata-${{ matrix.network }}122          tag: ${{ env.REF_SLUG }}-${{ env.BUILD_SHA }}123          context: .124          dockerfile: .docker/Dockerfile-unique125          args: |126            --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }}127            --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}128          dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}129          dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}130131      - name: Extract wasms132        uses: ./.github/actions/extractDocker133        id: wasms134        with:135          image: ${{ steps.latest.outputs.name }}136          directory: /wasm137138      - uses: actions/setup-node@v3.5.1139        with:140          node-version: 18141142      - name: Install baedeker143        uses: UniqueNetwork/baedeker-action/setup@built144145      - name: Setup library146        run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library147148      - name: Start network149        uses: UniqueNetwork/baedeker-action@built150        id: bdk151        with:152          jpath: |153            .baedeker/vendor154          tla-str: |155            relay_spec=rococo-local156          inputs: |157            .baedeker/node-only.jsonnet158            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.name }}'}})159            # nodata build uses old runtime, but new chain, thus we use mainnet image for spec generation, and then latest image for nodes.160            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}}, for_chain = false)161            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}})162163      - name: "Reconcile: runtime is upgraded"164        working-directory: js-packages/tests165        run: |166          yarn167          ../scripts/wait_for_first_block.sh168          echo "Executing upgrade"169          yarn ts-node --esm util/authorizeEnactUpgrade.ts ${{ steps.wasms.outputs.dir }}/${{ matrix.wasm_name }}-runtime/${{ matrix.wasm_name }}_runtime.compact.compressed.wasm170        env:171          RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}172173      - name: Run Parallel tests after forkless upgrade174        working-directory: js-packages/tests175        run: |176          ../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