git.delta.rocks / unique-network / refs/commits / c26667bb54c3

difftreelog

source

.github/workflows/integration-tests.yml12.3 KiBsourcehistory
1# Test workflow for debug parallel and sequental tests in scope of execution time reducing.2name: Integration tests34# Triger: only call from main workflow(re-usable workflows)5on:6  workflow_call:7#Define Workflow variables89# A workflow run is made up of one or more jobs that can run sequentially or in parallel10jobs:1112  nodes-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@v327        with:28          ref: ${{ github.head_ref }}  #Checking out head commit2930      - name: Read .env file31        uses: xom9ikk/dotenv@v1.0.23233      - name: Create Execution matrix34        uses: fabiocaccamo/create-matrix-action@v235        id: create_matrix36        with:37          matrix: |38            network {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}39            network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}40            network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}41 42  parallel-test:43    needs: nodes-execution-matrix44    # The type of runner that the job will run on45    runs-on: [self-hosted-ci,large]4647    timeout-minutes: 13804849    name: ${{ matrix.network }} - parallel5051    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.5253    strategy:54      matrix:55        include: ${{fromJson(needs.nodes-execution-matrix.outputs.matrix)}}5657    steps:5859      - name: Clean Workspace60        uses: AutoModality/action-clean@v1.1.06162      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it63      - uses: actions/checkout@v364        with:65          ref: ${{ github.head_ref }}  #Checking out head commit6667      - name: Read .env file68        uses: xom9ikk/dotenv@v1.0.26970      - name: Generate ENV related extend file for docker-compose71        uses: cuchi/jinja2-action@v1.2.072        with:73          template: .docker/docker-compose.tmp-node.j274          output_file: .docker/docker-compose.node.${{ matrix.network }}.yml75          variables: |76            REPO_URL=${{ github.server_url }}/${{ github.repository }}.git77            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}78            POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}79            POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }}            80            POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}81            MAINNET_TAG=${{ matrix.mainnet_tag }}82            MAINNET_BRANCH=${{ matrix.mainnet_branch }}83            NETWORK=${{ matrix.network }}84            BRANCH=${{ github.head_ref }}85            86      - name: Show build configuration87        run: cat .docker/docker-compose.node.${{ matrix.network }}.yml8889      - name: Generate launch-config-forkless-nodata.json90        uses: cuchi/jinja2-action@v1.2.091        with:92          template: .docker/forkless-config/launch-config-node-update-only-v3.j293          output_file: .docker/launch-config-forkless-nodata.json94          variables: |95            NETWORK=${{ matrix.network }}96            97      - name: Show launch-config-forkless configuration98        run: cat .docker/launch-config-forkless-nodata.json99100      - uses: actions/setup-node@v3101        with:102          node-version: 16103104      - name: Build the stack105        run: docker-compose -f ".docker/docker-compose.node.${{ matrix.network }}.yml" up -d --build --remove-orphans --force-recreate --timeout 300106107      #  🚀 POLKADOT LAUNCH COMPLETE 🚀108      - name: Check if docker logs consist messages related to testing of Node Parachain Upgrade.109        if: success()110        run: |111          counter=160112          function check_container_status {113                docker inspect -f {{.State.Running}} node-parachain114          }115          function do_docker_logs {116                docker logs --details node-parachain  2>&1117          }118          function is_started {119                if [ "$(check_container_status)" == "true" ]; then120                        echo "Container: node-parachain RUNNING";121                        echo "Check Docker logs"122                        DOCKER_LOGS=$(do_docker_logs)123                        if [[ ${DOCKER_LOGS} = *"POLKADOT LAUNCH COMPLETE"* ]];then124                                echo "🚀 POLKADOT LAUNCH COMPLETE 🚀"125                                return 0126                        else127                                echo "Message not found in logs output, repeating..."128                                return 1129                        fi130                else131                        echo "Container node-parachain NOT RUNNING"132                        echo "Halting all future checks"133                        exit 1134                fi135          echo "something goes wrong"136          exit 1137          }138          while ! is_started; do139                echo "Waiting for special message in log files "140                sleep 30s141                counter=$(( $counter - 1 ))142                echo "Counter: $counter"143                if [ "$counter" -gt "0" ]; then144                         continue145                else146                         break147                fi148          done149          echo "Halting script"150          exit 0151        shell: bash152153      - name: Run Parallel tests on Node Parachain154        working-directory: tests155        run: |156          yarn install157          yarn add mochawesome158          echo "Ready to start tests"159          yarn polkadot-types160          NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}161        env:162          RPC_URL: http://127.0.0.1:9933/163164      - name: Parallel Tests report165        uses: phoenix-actions/test-reporting@v8166        id: test-report-parallel167        if: success() || failure()    # run this step even if previous step failed168        with:169          name: Parallel Tests report - ${{ matrix.network }}            # Name of the check run which will be created170          path: tests/mochawesome-report/test-parallel-*.json    # Path to test results171          reporter: mochawesome-json172          fail-on-error: 'false'173    174             175      - name: Stop running containers176        if: always()                   # run this step always177        run: docker-compose -f ".docker/docker-compose.node.${{ matrix.network }}.yml" down --volumes178179      - name: Remove builder cache180        if: always()                   # run this step always181        run: |182          docker builder prune -f -a183          docker system prune -f184          docker image prune -f -a185          186      - name: List files in Workspace187        if: always()188        run: ls -la ./189190  sequential-test:191    needs: nodes-execution-matrix192    # The type of runner that the job will run on193    runs-on: [self-hosted-ci,large]194195    timeout-minutes: 1380196197    name: ${{ matrix.network }} - sequential198199    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.200201    strategy:202      matrix:203        include: ${{fromJson(needs.nodes-execution-matrix.outputs.matrix)}}204205    steps:206207      - name: Clean Workspace208        uses: AutoModality/action-clean@v1.1.0209210      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it211      - uses: actions/checkout@v3212        with:213          ref: ${{ github.head_ref }}  #Checking out head commit214215      - name: Read .env file216        uses: xom9ikk/dotenv@v1.0.2217218      - name: Generate ENV related extend file for docker-compose219        uses: cuchi/jinja2-action@v1.2.0220        with:221          template: .docker/docker-compose.tmp-node.j2222          output_file: .docker/docker-compose.node.${{ matrix.network }}.yml223          variables: |224            REPO_URL=${{ github.server_url }}/${{ github.repository }}.git225            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}226            POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}227            POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }}            228            POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}229            MAINNET_TAG=${{ matrix.mainnet_tag }}230            MAINNET_BRANCH=${{ matrix.mainnet_branch }}231            NETWORK=${{ matrix.network }}232            BRANCH=${{ github.head_ref }}233            234      - name: Show build configuration235        run: cat .docker/docker-compose.node.${{ matrix.network }}.yml236237      - name: Generate launch-config-forkless-nodata.json238        uses: cuchi/jinja2-action@v1.2.0239        with:240          template: .docker/forkless-config/launch-config-node-update-only-v3.j2241          output_file: .docker/launch-config-forkless-nodata.json242          variables: |243            NETWORK=${{ matrix.network }}244            245      - name: Show launch-config-forkless configuration246        run: cat .docker/launch-config-forkless-nodata.json247248      - uses: actions/setup-node@v3249        with:250          node-version: 16251252      - name: Build the stack253        run: docker-compose -f ".docker/docker-compose.node.${{ matrix.network }}.yml" up -d --build --remove-orphans --force-recreate --timeout 300254255      #  🚀 POLKADOT LAUNCH COMPLETE 🚀256      - name: Check if docker logs consist messages related to testing of Node Parachain Upgrade.257        if: success()258        run: |259          counter=160260          function check_container_status {261                docker inspect -f {{.State.Running}} node-parachain262          }263          function do_docker_logs {264                docker logs --details node-parachain  2>&1265          }266          function is_started {267                if [ "$(check_container_status)" == "true" ]; then268                        echo "Container: node-parachain RUNNING";269                        echo "Check Docker logs"270                        DOCKER_LOGS=$(do_docker_logs)271                        if [[ ${DOCKER_LOGS} = *"POLKADOT LAUNCH COMPLETE"* ]];then272                                echo "🚀 POLKADOT LAUNCH COMPLETE 🚀"273                                return 0274                        else275                                echo "Message not found in logs output, repeating..."276                                return 1277                        fi278                else279                        echo "Container node-parachain NOT RUNNING"280                        echo "Halting all future checks"281                        exit 1282                fi283          echo "something goes wrong"284          exit 1285          }286          while ! is_started; do287                echo "Waiting for special message in log files "288                sleep 30s289                counter=$(( $counter - 1 ))290                echo "Counter: $counter"291                if [ "$counter" -gt "0" ]; then292                         continue293                else294                         break295                fi296          done297          echo "Halting script"298          exit 0299        shell: bash300301      - name: Run Sequential tests on Node Parachain302        working-directory: tests303        run: |304          yarn install305          yarn add mochawesome306          echo "Ready to start tests"307          yarn polkadot-types308          NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}309        env:310          RPC_URL: http://127.0.0.1:9933/311312      - name: Sequential Tests report313        uses: phoenix-actions/test-reporting@v8314        id: test-report-sequential315        if: success() || failure()    # run this step even if previous step failed316        with:317          name: Parallel Tests report - ${{ matrix.network }}            # Name of the check run which will be created318          path: tests/mochawesome-report/test-sequential-*.json    # Path to test results319          reporter: mochawesome-json320          fail-on-error: 'false'321       322      - name: Stop running containers323        if: always()                   # run this step always324        run: docker-compose -f ".docker/docker-compose.node.${{ matrix.network }}.yml" down --volumes325326      - name: Remove builder cache327        if: always()                   # run this step always328        run: |329          docker builder prune -f -a330          docker system prune -f331          docker image prune -f -a332          333      - name: List files in Workspace334        if: always()335        run: ls -la ./