From 429358c2bb85f1b33db626bc2b4f2f97215af1bd Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Tue, 18 Oct 2022 14:14:49 +0000 Subject: [PATCH] Merge pull request #656 from UniqueNetwork/tests/parallel-ci Tests/parallel ci --- --- a/.docker/Dockerfile-parachain-node-only +++ b/.docker/Dockerfile-parachain-node-only @@ -80,7 +80,7 @@ nvm install v16.16.0 && \ nvm use v16.16.0 -RUN git clone https://github.com/uniquenetwork/polkadot-launch -b feature/runtime-upgrade-testing +RUN git clone https://github.com/uniquenetwork/polkadot-launch -b unique-network RUN export NVM_DIR="$HOME/.nvm" && \ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \ --- a/.docker/docker-compose.tmp-node.j2 +++ b/.docker/docker-compose.tmp-node.j2 @@ -24,9 +24,11 @@ expose: - 9944 - 9933 + - 9844 ports: - 127.0.0.1:9944:9944 - 127.0.0.1:9933:9933 + - 127.0.0.1:9844:9844 logging: options: max-size: "1m" --- a/.env +++ b/.env @@ -1,27 +1,22 @@ RUST_TOOLCHAIN=nightly-2022-07-24 POLKADOT_BUILD_BRANCH=release-v0.9.29 -POLKADOT_MAINNET_BRANCH=release-v0.9.26 +POLKADOT_MAINNET_BRANCH=release-v0.9.28 +STATEMINT_BUILD_BRANCH=release-parachains-v9271 +ACALA_BUILD_BRANCH=2.9.6 +MOONBEAM_BUILD_BRANCH=v0.26.1 UNIQUE_MAINNET_TAG=v924010 - -KUSAMA_MAINNET_BRANCH=release-v0.9.26 -QUARTZ_MAINNET_TAG=quartz-v924012-2-opal-runtime-feature - -UNQWND_MAINNET_BRANCH=release-v0.9.24 +UNIQUE_REPLICA_FROM=wss://eu-ws.unique.network:443 -OPAL_REPLICA_FROM=wss://eu-ws-opal.unique.network:443 +KUSAMA_MAINNET_BRANCH=release-v0.9.29 +STATEMINE_BUILD_BRANCH=parachains-v9271 +KARURA_BUILD_BRANCH=release-karura-2.9.5 +MOONRIVER_BUILD_BRANCH=v0.26.1 +QUARTZ_MAINNET_TAG=quartz-v924012-2 QUARTZ_REPLICA_FROM=wss://eu-ws-quartz.unique.network:443 -UNIQUE_REPLICA_FROM=wss://eu-ws.unique.network:443 +UNQWND_MAINNET_BRANCH=release-v0.9.30 +WESTMINT_BUILD_BRANCH=parachains-v9290 +OPAL_MAINNET_TAG=quartz-v924012-2-opal-runtime-feature +OPAL_REPLICA_FROM=wss://eu-ws-opal.unique.network:443 POLKADOT_LAUNCH_BRANCH=unique-network - -KARURA_BUILD_BRANCH=2.9.1 -ACALA_BUILD_BRANCH=2.9.2 - -MOONRIVER_BUILD_BRANCH=runtime-1701 -MOONBEAM_BUILD_BRANCH=runtime-1701 - -STATEMINE_BUILD_BRANCH=parachains-v9270 -STATEMINT_BUILD_BRANCH=release-parachains-v9230 -WESTMINT_BUILD_BRANCH=parachains-v9270 - --- a/.github/workflows/ci-develop.yml +++ b/.github/workflows/ci-develop.yml @@ -29,6 +29,14 @@ if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'xcm')) }} uses: ./.github/workflows/xcm.yml secrets: inherit # pass all secrets + + forkless: + if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'forkless')) }} + uses: ./.github/workflows/forkless.yml + + node-only-update: + if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'forkless')) }} + uses: ./.github/workflows/node-only-update_v2.yml codestyle: if: github.event.pull_request.draft == false --- a/.github/workflows/execution-matrix.yml +++ b/.github/workflows/execution-matrix.yml @@ -36,7 +36,7 @@ id: create_matrix with: matrix: | - network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}} + network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.OPAL_MAINNET_TAG }}}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}} network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, replica_from_address {${{ env.QUARTZ_REPLICA_FROM }}} network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}, replica_from_address {${{ env.UNIQUE_REPLICA_FROM }}} --- a/.github/workflows/forkless-update-data_v2.yml +++ b/.github/workflows/forkless-update-data_v2.yml @@ -36,7 +36,7 @@ id: create_matrix with: matrix: | - network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}} + network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.OPAL_MAINNET_TAG }}}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}} network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, replica_from_address {${{ env.QUARTZ_REPLICA_FROM }}} network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}, replica_from_address {${{ env.UNIQUE_REPLICA_FROM }}} --- a/.github/workflows/forkless-update-nodata_v2.yml +++ b/.github/workflows/forkless-update-nodata_v2.yml @@ -33,11 +33,11 @@ uses: xom9ikk/dotenv@v1.0.2 - name: Create Execution matrix - uses: fabiocaccamo/create-matrix-action@v2 + uses: CertainLach/create-matrix-action@v3 id: create_matrix with: matrix: | - network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}} + network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.OPAL_MAINNET_TAG }}} network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}} network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}} @@ -100,6 +100,9 @@ - name: Show launch-config-forkless configuration run: cat .docker/launch-config-forkless-nodata.json + - uses: actions/setup-node@v3 + with: + node-version: 16 - name: Build the stack run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --force-recreate --timeout 300 @@ -161,6 +164,50 @@ - name: Show docker logs if: success() || failure() run: cat './forkless-parachain-upgrade-nodata-logs.${{ matrix.features }}/node-parachain.log' + + - name: Run Parallel tests + working-directory: tests + run: | + yarn install + yarn add mochawesome + node scripts/readyness.js + echo "Ready to start tests" + yarn polkadot-types + NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW} + env: + RPC_URL: http://127.0.0.1:9933/ + + - name: Test Report Parallel + uses: phoenix-actions/test-reporting@v8 + id: test-report-parallel + if: success() || failure() # run this step even if previous step failed + with: + name: Report Parallel tests results - ${{ matrix.network }} # Name of the check run which will be created + path: tests/mochawesome-report/test-parallel-*.json # Path to test results + reporter: mochawesome-json + fail-on-error: 'false' + + - name: Run Sequential tests + working-directory: tests + run: | + yarn install + yarn add mochawesome + node scripts/readyness.js + echo "Ready to start tests" + yarn polkadot-types + NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW} + env: + RPC_URL: http://127.0.0.1:9933/ + + - name: Test Report Sequential + uses: phoenix-actions/test-reporting@v8 + id: test-report-sequential + if: success() || failure() # run this step even if previous step failed + with: + name: Report Sequential tests results - ${{ matrix.network }} # Name of the check run which will be created + path: tests/mochawesome-report/test-sequential-*.json # Path to test results + reporter: mochawesome-json + fail-on-error: 'false' - name: Stop running containers if: always() # run this step always --- a/.github/workflows/generate-execution-matrix.yml +++ b/.github/workflows/generate-execution-matrix.yml @@ -40,6 +40,6 @@ id: create_matrix with: matrix: | - network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}} + network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.OPAL_MAINNET_TAG }}}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}} network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, replica_from_address {${{ env.QUARTZ_REPLICA_FROM }}} network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}, replica_from_address {${{ env.UNIQUE_REPLICA_FROM }}} --- a/.github/workflows/market-test_v2.yml +++ b/.github/workflows/market-test_v2.yml @@ -10,8 +10,8 @@ market_test: # The type of runner that the job will run on - runs-on: [self-hosted-ci,medium] - timeout-minutes: 180 + runs-on: [self-hosted-ci,large] + timeout-minutes: 360 name: ${{ matrix.network }} --- a/.github/workflows/node-only-update_v2.yml +++ b/.github/workflows/node-only-update_v2.yml @@ -32,11 +32,11 @@ uses: xom9ikk/dotenv@v1.0.2 - name: Create Execution matrix - uses: fabiocaccamo/create-matrix-action@v2 + uses: CertainLach/create-matrix-action@v3 id: create_matrix with: matrix: | - network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}} + network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.OPAL_MAINNET_TAG }}} network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}} network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}} @@ -47,9 +47,7 @@ # The type of runner that the job will run on runs-on: [self-hosted-ci,large] - - - timeout-minutes: 2880 + timeout-minutes: 2880 # 48 hours for execution jobs. name: ${{ matrix.network }} @@ -161,7 +159,6 @@ with: ref: ${{ matrix.mainnet_branch }} #Checking out head commit path: ${{ matrix.mainnet_branch }} - - name: Run tests before Node Parachain upgrade working-directory: ${{ matrix.mainnet_branch }}/tests @@ -174,7 +171,7 @@ env: RPC_URL: http://127.0.0.1:9933/ - - name: Test Report Before Node upgrade + - name: Upload Test Report Before Node upgrade uses: phoenix-actions/test-reporting@v8 id: test-report-before if: success() || failure() # run this step even if previous step failed @@ -184,9 +181,49 @@ reporter: mochawesome-json fail-on-error: 'false' + # TODO uncomment thease steps after the merge + #- name: Run Parallel tests before Node Parachain upgrade + # working-directory: ${{ matrix.mainnet_branch }}/tests + # run: | + # yarn install + # yarn add mochawesome + # echo "Ready to start tests" + # yarn polkadot-types + # NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW} + # env: + # RPC_URL: http://127.0.0.1:9933/ + + #- name: Upload Parallel Test Report Before Node upgrade + # uses: phoenix-actions/test-reporting@v8 + # id: test-parallel-report-before + # if: success() || failure() # run this step even if previous step failed + # with: + # name: Tests before node upgrade ${{ matrix.network }} # Name of the check run which will be created + # path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-parallel-*.json # Path to test results + # reporter: mochawesome-json + # fail-on-error: 'false' + + # - name: Run Sequential tests before Node Parachain upgrade + # if: success() || failure() + # working-directory: ${{ matrix.mainnet_branch }}/tests + # run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW} + # env: + # RPC_URL: http://127.0.0.1:9933/ + + # - name: Upload Sequential Test Report Before Node upgrade + # uses: phoenix-actions/test-reporting@v8 + # id: test-sequential-report-before + # if: success() || failure() # run this step even if previous step failed + # with: + # name: Tests before node upgrade ${{ matrix.network }} # Name of the check run which will be created + # path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-sequential-*.json # Path to test results + # reporter: mochawesome-json + # fail-on-error: 'false' + - name: Send SIGUSR1 to polkadot-launch process if: success() || failure() run: | + #Get PID of polkadot-launch ContainerID=$(docker ps -aqf "name=node-parachain") PID=$(docker exec node-parachain pidof 'polkadot-launch') sleep 30s @@ -195,11 +232,10 @@ echo -e "\n" echo -e "Restart polkadot-launch process: $PID\n" docker exec node-parachain kill -SIGUSR1 ${PID} - echo -e "SIGUSR1 sent to Polkadot-launch PID: $PID\n" - echo -e "Get node-parachain logs:\n" - docker logs -t -n 5 ${ContainerID} + echo "SIGUSR1 sent to Polkadot-launch PID: $PID" + docker logs ${ContainerID} - - name: Get chain logs + - name: Get chain logs in case of docker image crashed after Polkadot Launch restart if: failure() # run this step only at failure run: | docker exec node-parachain cat /polkadot-launch/9944.log @@ -253,9 +289,9 @@ echo "Halting script" exit 0 shell: bash - + + ## TODO: Remove next two blocks before switch to Parrallel & Sequental tests. Uncoment commented blocks. - name: Run tests after Node Parachain upgrade - if: success() working-directory: ${{ matrix.mainnet_branch }}/tests run: | yarn install @@ -276,6 +312,46 @@ reporter: mochawesome-json fail-on-error: 'false' + # TODO uncomment thease steps after the merge + #- name: Run Parallel tests after Node Parachain upgrade + # working-directory: ${{ matrix.mainnet_branch }}/tests + # run: | + # yarn install + # yarn add mochawesome + # node scripts/readyness.js + # echo "Ready to start tests" + # yarn polkadot-types + # NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW} + # env: + # RPC_URL: http://127.0.0.1:9933/ + + #- name: Test Report Parallel After Node upgrade + # uses: phoenix-actions/test-reporting@v8 + # id: test-report-parallel-after + # if: success() || failure() # run this step even if previous step failed + # with: + # name: Tests after node upgrade ${{ matrix.network }} # Name of the check run which will be created + # path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-parallel-*.json # Path to test results + # reporter: mochawesome-json + # fail-on-error: 'false' + + #- name: Run Sequential tests after Node Parachain upgrade + # if: success() || failure() + # working-directory: ${{ matrix.mainnet_branch }}/tests + # run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW} + # env: + # RPC_URL: http://127.0.0.1:9933/ + + #- name: Upload Sequential Test Report After Node upgrade + # uses: phoenix-actions/test-reporting@v8 + # id: test-sequential-report-after + # if: success() || failure() # run this step even if previous step failed + # with: + # name: Tests before node upgrade ${{ matrix.network }} # Name of the check run which will be created + # path: ${{ matrix.mainnet_branch }}/tests/mochawesome-report/test-sequential-*.json # Path to test results + # reporter: mochawesome-json + # fail-on-error: 'false' + - name: Stop running containers if: always() # run this step always @@ -288,6 +364,7 @@ docker system prune -f docker image prune -f -a - - name: Clean Workspace - if: always() - uses: AutoModality/action-clean@v1.1.0 + - name: Remove repo at the end + if: always() # run this step always + run: | + ls -ls ./ -- gitstuff