difftreelog
Merge pull request #1031 from UniqueNetwork/fix/node-only-tests
in: master
set correct mainnet.branch for node-only tests
1 file changed
.github/workflows/node-only-update.ymldiffbeforeafterboth1# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586837028/Nodes+only+update2# Node only update with restart polkadot-launch process.34name: nodes-only update56# Triger: only call from main workflow(re-usable workflows)7on:8 workflow_call:91011# A workflow run is made up of one or more jobs that can run sequentially or in parallel12jobs:1314 prepare-execution-matrix:1516 name: execution matrix1718 runs-on: self-hosted-ci19 outputs:20 matrix: ${{ steps.create_matrix.outputs.matrix }}2122 steps:2324 - name: Clean Workspace25 uses: AutoModality/action-clean@v1.1.02627 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it28 - uses: actions/checkout@v3.1.029 with:30 ref: ${{ github.head_ref }} #Checking out head commit3132 - name: Read .env file33 uses: xom9ikk/dotenv@v23435 - name: Create Execution matrix36 uses: CertainLach/create-matrix-action@v437 id: create_matrix38 with:39 matrix: |40 network {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, runtime_features {opal-runtime}41 network {sapphire}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}, runtime_features {sapphire-runtime}42 network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, runtime_features {quartz-runtime}43 network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, runtime_features {unique-runtime}4445 node-only-update:4647 needs: prepare-execution-matrix48 # The type of runner that the job will run on49 runs-on: [self-hosted-ci]5051 timeout-minutes: 2880 # 48 hours for execution jobs.5253 name: ${{ matrix.network }}5455 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.5657 strategy:58 matrix:59 include: ${{fromJson(needs.prepare-execution-matrix.outputs.matrix)}}6061 steps:6263 - name: Skip if pull request is in Draft64 if: github.event.pull_request.draft == true65 run: exit 16667 - name: Clean Workspace68 uses: AutoModality/action-clean@v1.1.06970 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it71 - uses: actions/checkout@v3.1.072 with:73 ref: ${{ github.head_ref }} #Checking out head commit7475 # Prepare SHA 76 - name: Prepare SHA77 uses: ./.github/actions/prepare7879 - name: Read .env file80 uses: xom9ikk/dotenv@v28182 - name: Log in to Docker Hub83 uses: docker/login-action@v2.1.084 with:85 username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}86 password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}8788 - name: Generate ENV related extend Dockerfile file for POLKADOT89 uses: cuchi/jinja2-action@v1.2.090 with:91 template: .docker/Dockerfile-polkadot.j292 output_file: .docker/Dockerfile-polkadot.${{ matrix.relay_branch }}.yml93 variables: |94 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}95 POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }}96 97 - name: Prepare polkadot98 uses: ./.github/actions/buildContainer99 id: polkadot100 with:101 container: uniquenetwork/builder-polkadot102 tag: ${{ matrix.relay_branch }}103 context: .docker104 dockerfile: Dockerfile-polkadot.${{ matrix.relay_branch }}.yml105 dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}106 dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}107108 - name: Prepare mainnet109 uses: ./.github/actions/buildContainer110 id: mainnet111 with:112 container: uniquenetwork/ci-node-only-${{ matrix.network }}113 tag: ${{ matrix.mainnet_branch }}114 context: .docker115 dockerfile: Dockerfile-unique-release116 args: |117 --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }}118 --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}119 --build-arg UNIQUE_VERSION=${{ matrix.mainnet_branch }}120 dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}121 dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}122123 - name: Prepare latest124 uses: ./.github/actions/buildContainer125 id: latest126 with:127 container: uniquenetwork/ci-node-only-${{ matrix.network }}128 tag: ${{ env.REF_SLUG }}-${{ env.BUILD_SHA }}129 context: .130 dockerfile: .docker/Dockerfile-unique131 args: |132 --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }}133 --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}134 dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}135 dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}136137 - name: Checkout at '${{ matrix.mainnet_branch }}' branch138 uses: actions/checkout@master139 with:140 ref: ${{ github.head_ref }}141 # ref: ${{ matrix.mainnet_branch }} #Checking out head commit142 path: ${{ matrix.mainnet_branch }}143144 - uses: actions/setup-node@v3.5.1145 with:146 node-version: 18147148 - name: Install baedeker149 uses: UniqueNetwork/baedeker-action/setup@built150151 - name: Setup library152 run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library153154 - name: Start network155 uses: UniqueNetwork/baedeker-action@built156 id: bdk157 with:158 jpath: |159 .baedeker/vendor160 tla-str: |161 relay_spec=${{ env.RELAY_CHAIN_TYPE }}-local162 inputs: |163 .baedeker/node-only.jsonnet164 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.name }}'}})165 ephemeral:snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}})166167 - name: Run Parallel tests before Node Parachain upgrade168 working-directory: ${{ matrix.mainnet_branch }}/tests169 if: success()170 run: |171 yarn172 yarn add mochawesome173 ./scripts/wait_for_first_block.sh174 echo "Ready to start tests"175 NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}176 env:177 RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}178179 - name: Run Sequential tests before Node Parachain upgrade180 if: success() || failure()181 working-directory: ${{ matrix.mainnet_branch }}/tests182 run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}183 env:184 RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}185186 - name: "Reconcile: only one old node"187 if: success() || failure()188 uses: UniqueNetwork/baedeker-action/reconcile@built189 with:190 baedeker: ${{ steps.bdk.outputs.baedeker }}191 # Chain should always be built with the mainnet spec, this we first set binary for all nodes expect one, then set mainnet binary for the last node, and then force chainspec to be still generated from mainnet192 inputs: |193 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}}, leave = 1, for_chain = false)194 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}}, for_chain = false)195 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}})196197 - name: Ensure network is alive198 if: success()199 run: |200 ./tests/scripts/wait_for_first_block.sh201 env:202 RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}203204 - name: "Reconcile: all nodes are updated"205 if: success() || failure()206 uses: UniqueNetwork/baedeker-action/reconcile@built207 with:208 baedeker: ${{ steps.bdk.outputs.baedeker }}209 # Chain should always be built with the mainnet spec, this we first set binary for all nodes, and then force chainspec to be still generated from mainnet210 inputs: |211 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}}, for_chain = false)212 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}})213214 - name: Run Parallel tests after Node Parachain upgrade215 working-directory: ${{ matrix.mainnet_branch }}/tests216 if: success() || failure() # run this step even if previous step failed217 run: |218 yarn install219 yarn add mochawesome220 ./scripts/wait_for_first_block.sh221 echo "Ready to start tests"222 NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}223 env:224 RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}225226 - name: Run Sequential tests after Node Parachain upgrade227 if: success() || failure()228 working-directory: ${{ matrix.mainnet_branch }}/tests229 run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}230 env:231 RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}232233 - name: Remove builder cache234 if: always() # run this step always235 run: |236 docker system prune -f1# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586837028/Nodes+only+update2# Node only update with restart polkadot-launch process.34name: nodes-only update56# Triger: only call from main workflow(re-usable workflows)7on:8 workflow_call:91011# A workflow run is made up of one or more jobs that can run sequentially or in parallel12jobs:1314 prepare-execution-matrix:1516 name: execution matrix1718 runs-on: self-hosted-ci19 outputs:20 matrix: ${{ steps.create_matrix.outputs.matrix }}2122 steps:2324 - name: Clean Workspace25 uses: AutoModality/action-clean@v1.1.02627 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it28 - uses: actions/checkout@v3.1.029 with:30 ref: ${{ github.head_ref }} #Checking out head commit3132 - name: Read .env file33 uses: xom9ikk/dotenv@v23435 - name: Create Execution matrix36 uses: CertainLach/create-matrix-action@v437 id: create_matrix38 with:39 matrix: |40 network {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, runtime_features {opal-runtime}41 network {sapphire}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}, runtime_features {sapphire-runtime}42 network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, runtime_features {quartz-runtime}43 network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, runtime_features {unique-runtime}4445 node-only-update:4647 needs: prepare-execution-matrix48 # The type of runner that the job will run on49 runs-on: [self-hosted-ci]5051 timeout-minutes: 2880 # 48 hours for execution jobs.5253 name: ${{ matrix.network }}5455 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.5657 strategy:58 matrix:59 include: ${{fromJson(needs.prepare-execution-matrix.outputs.matrix)}}6061 steps:6263 - name: Skip if pull request is in Draft64 if: github.event.pull_request.draft == true65 run: exit 16667 - name: Clean Workspace68 uses: AutoModality/action-clean@v1.1.06970 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it71 - uses: actions/checkout@v3.1.072 with:73 ref: ${{ github.head_ref }} #Checking out head commit7475 # Prepare SHA 76 - name: Prepare SHA77 uses: ./.github/actions/prepare7879 - name: Read .env file80 uses: xom9ikk/dotenv@v28182 - name: Log in to Docker Hub83 uses: docker/login-action@v2.1.084 with:85 username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}86 password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}8788 - name: Generate ENV related extend Dockerfile file for POLKADOT89 uses: cuchi/jinja2-action@v1.2.090 with:91 template: .docker/Dockerfile-polkadot.j292 output_file: .docker/Dockerfile-polkadot.${{ matrix.relay_branch }}.yml93 variables: |94 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}95 POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }}96 97 - name: Prepare polkadot98 uses: ./.github/actions/buildContainer99 id: polkadot100 with:101 container: uniquenetwork/builder-polkadot102 tag: ${{ matrix.relay_branch }}103 context: .docker104 dockerfile: Dockerfile-polkadot.${{ matrix.relay_branch }}.yml105 dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}106 dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}107108 - name: Prepare mainnet109 uses: ./.github/actions/buildContainer110 id: mainnet111 with:112 container: uniquenetwork/ci-node-only-${{ matrix.network }}113 tag: ${{ matrix.mainnet_branch }}114 context: .docker115 dockerfile: Dockerfile-unique-release116 args: |117 --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }}118 --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}119 --build-arg UNIQUE_VERSION=${{ matrix.mainnet_branch }}120 dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}121 dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}122123 - name: Prepare latest124 uses: ./.github/actions/buildContainer125 id: latest126 with:127 container: uniquenetwork/ci-node-only-${{ matrix.network }}128 tag: ${{ env.REF_SLUG }}-${{ env.BUILD_SHA }}129 context: .130 dockerfile: .docker/Dockerfile-unique131 args: |132 --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }}133 --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}134 dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}135 dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}136137 - name: Checkout at '${{ matrix.mainnet_branch }}' branch138 uses: actions/checkout@master139 with:140 #ref: ${{ github.head_ref }}141 ref: ${{ matrix.mainnet_branch }} #Checking out head commit142 path: ${{ matrix.mainnet_branch }}143144 - uses: actions/setup-node@v3.5.1145 with:146 node-version: 18147148 - name: Install baedeker149 uses: UniqueNetwork/baedeker-action/setup@built150151 - name: Setup library152 run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library153154 - name: Start network155 uses: UniqueNetwork/baedeker-action@built156 id: bdk157 with:158 jpath: |159 .baedeker/vendor160 tla-str: |161 relay_spec=${{ env.RELAY_CHAIN_TYPE }}-local162 inputs: |163 .baedeker/node-only.jsonnet164 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.name }}'}})165 ephemeral:snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}})166167 - name: Run Parallel tests before Node Parachain upgrade168 working-directory: ${{ matrix.mainnet_branch }}/tests169 if: success()170 run: |171 yarn172 yarn add mochawesome173 ./scripts/wait_for_first_block.sh174 echo "Ready to start tests"175 NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}176 env:177 RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}178179 - name: Run Sequential tests before Node Parachain upgrade180 if: success() || failure()181 working-directory: ${{ matrix.mainnet_branch }}/tests182 run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}183 env:184 RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}185186 - name: "Reconcile: only one old node"187 if: success() || failure()188 uses: UniqueNetwork/baedeker-action/reconcile@built189 with:190 baedeker: ${{ steps.bdk.outputs.baedeker }}191 # Chain should always be built with the mainnet spec, this we first set binary for all nodes expect one, then set mainnet binary for the last node, and then force chainspec to be still generated from mainnet192 inputs: |193 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}}, leave = 1, for_chain = false)194 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}}, for_chain = false)195 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}})196197 - name: Ensure network is alive198 if: success()199 run: |200 ./tests/scripts/wait_for_first_block.sh201 env:202 RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}203204 - name: "Reconcile: all nodes are updated"205 if: success() || failure()206 uses: UniqueNetwork/baedeker-action/reconcile@built207 with:208 baedeker: ${{ steps.bdk.outputs.baedeker }}209 # Chain should always be built with the mainnet spec, this we first set binary for all nodes, and then force chainspec to be still generated from mainnet210 inputs: |211 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}}, for_chain = false)212 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}})213214 - name: Run Parallel tests after Node Parachain upgrade215 working-directory: ${{ matrix.mainnet_branch }}/tests216 if: success() || failure() # run this step even if previous step failed217 run: |218 yarn install219 yarn add mochawesome220 ./scripts/wait_for_first_block.sh221 echo "Ready to start tests"222 NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}223 env:224 RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}225226 - name: Run Sequential tests after Node Parachain upgrade227 if: success() || failure()228 working-directory: ${{ matrix.mainnet_branch }}/tests229 run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}230 env:231 RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}232233 - name: Remove builder cache234 if: always() # run this step always235 run: |236 docker system prune -f