From 5a3f942b588a71d6df472d75350c9bb4bb571bb1 Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Fri, 08 Sep 2023 00:01:01 +0000 Subject: [PATCH] ci: move forkless-nodata to baedeker --- --- a/.docker/Dockerfile-unique +++ b/.docker/Dockerfile-unique @@ -48,11 +48,13 @@ cd unique-chain && \ echo "Using runtime features '$RUNTIME_FEATURES'" && \ CARGO_INCREMENTAL=0 cargo build --release --features="$RUNTIME_FEATURES" --locked && \ - mv ./target/release/unique-collator /unique_parachain/unique-chain/ + mv ./target/release/unique-collator /unique_parachain/unique-chain/ && \ + cd target/release/wbuild && find . -name "*.wasm" -exec sh -c 'mkdir -p "../../../wasm/$(dirname {})"; cp {} "../../../wasm/{}"' \; # ===== BIN ====== FROM ubuntu:22.04 as builder-polkadot COPY --from=builder-polkadot-bin /unique_parachain/unique-chain/unique-collator /bin/unique-collator +COPY --from=builder-polkadot-bin /unique_parachain/unique-chain/wasm /wasm ENTRYPOINT ["/bin/unique-collator"] --- /dev/null +++ b/.github/actions/extractDocker/action.yml @@ -0,0 +1,27 @@ +name: Extract files from docker image +description: '' +inputs: + image: + description: Image to extract + required: true + directory: + description: Directory to extract from image + required: true +outputs: + dir: + description: Extracted directory + value: ${{ steps.mktemp.outputs.dir }} +runs: + using: composite + steps: + - name: Create temporary directory + id: mktemp + run: | + dir=$(mktemp -d -p $RUNNER_TEMP) + echo "dir=$dir" >> $GITHUB_OUTPUT + shell: bash + - name: Extract directory from image + run: | + docker run --entrypoint tar "${{ inputs.image }}" \ + -C ${{ inputs.directory }} -c . | tar -xC ${{ steps.mktemp.outputs.dir }} + shell: bash --- a/.github/workflows/forkless-update-nodata.yml +++ b/.github/workflows/forkless-update-nodata.yml @@ -8,9 +8,10 @@ # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: - prepare-execution-marix: - name: Prepare execution matrix + prepare-execution-matrix: + + name: execution matrix runs-on: self-hosted-ci outputs: @@ -34,14 +35,14 @@ id: create_matrix with: matrix: | - network {quartz}, wasm_name {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}} - network {unique}, wasm_name {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}} - network {opal}, wasm_name {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}} - network {sapphire}, wasm_name {quartz}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}} - + network {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, runtime_features {opal-runtime}, wasm_name {opal} + network {sapphire}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}, runtime_features {sapphire-runtime}, wasm_name {quartz} + network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, runtime_features {quartz-runtime}, wasm_name {quartz} + network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, runtime_features {unique-runtime}, wasm_name {unique} forkless-nodata-build: - needs: prepare-execution-marix + + needs: prepare-execution-matrix # The type of runner that the job will run on runs-on: [self-hosted-ci,large] @@ -53,9 +54,10 @@ strategy: matrix: - include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}} + include: ${{fromJson(needs.prepare-execution-matrix.outputs.matrix)}} steps: + - name: Clean Workspace uses: AutoModality/action-clean@v1.1.0 @@ -64,253 +66,125 @@ with: ref: ${{ github.head_ref }} #Checking out head commit - - name: Read .env file - uses: xom9ikk/dotenv@v2 - # Prepare SHA - name: Prepare SHA uses: ./.github/actions/prepare + - name: Read .env file + uses: xom9ikk/dotenv@v2 + - name: Log in to Docker Hub uses: docker/login-action@v2.1.0 with: username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - # Build main image for FORKLESS-UPDATE-NODATA - - name: Generate ENV related extend Dockerfile file + - name: Generate ENV related extend Dockerfile file for POLKADOT uses: cuchi/jinja2-action@v1.2.0 with: - template: .docker/Dockerfile-parachain-upgrade.j2 - output_file: .docker/Dockerfile-parachain-upgrade.${{ matrix.network }}.yml + template: .docker/Dockerfile-polkadot.j2 + output_file: .docker/Dockerfile-polkadot.${{ matrix.relay_branch }}.yml variables: | RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} - NETWORK=${{ matrix.network }} - MAINNET_BRANCH=${{ matrix.mainnet_branch }} - WASM_NAME=${{ matrix.wasm_name }} POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }} - POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }} - - - name: Show build Dockerfile - run: cat .docker/Dockerfile-parachain-upgrade.${{ matrix.network }}.yml - - - name: Generate launch-config-forkless-nodata.json - uses: cuchi/jinja2-action@v1.2.0 + + - name: Prepare polkadot + uses: ./.github/actions/buildContainer + id: polkadot with: - template: .docker/forkless-config/launch-config-forkless-nodata.j2 - output_file: .docker/forkless-config/launch-config-forkless-nodata.json - variables: | - WASM_NAME=${{ matrix.wasm_name }} - RELAY_CHAIN_TYPE=${{ env.RELAY_CHAIN_TYPE }} - - - name: Show launch-config-forkless configuration - run: cat .docker/forkless-config/launch-config-forkless-nodata.json + container: uniquenetwork/builder-polkadot + tag: ${{ matrix.relay_branch }} + context: .docker + dockerfile: Dockerfile-polkadot.${{ matrix.relay_branch }}.yml + dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - - name: Run find-and-replace to remove slashes from branch name - uses: mad9000/actions-find-and-replace-string@4 - id: branchname + - name: Prepare mainnet + uses: ./.github/actions/buildContainer + id: mainnet with: - source: ${{ github.head_ref }} - find: '/' - replace: '-' - - - name: Set build SHA - shell: bash - run: | - echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV - - - name: Build the stack - run: cd .docker/ && docker build --no-cache --file ./Dockerfile-parachain-upgrade.${{ matrix.network }}.yml --tag uniquenetwork/ci-forkless-nodata-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA ../ - - - name: Push docker image version - run: docker push uniquenetwork/ci-forkless-nodata-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA - - - name: Remove builder cache - if: always() # run this step always - run: | - docker builder prune -f - docker system prune -f - - - forkless-nodata-tests: - needs: [prepare-execution-marix, forkless-nodata-build] - # The type of runner that the job will run on - runs-on: [self-hosted-ci, large] - - timeout-minutes: 600 - - name: ${{ matrix.network }}-nodata-tests - - 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. - - strategy: - matrix: - include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}} - - steps: - - name: Skip if pull request is in Draft - if: github.event.pull_request.draft == true - run: exit 1 + container: uniquenetwork/ci-nodata-${{ matrix.network }} + tag: ${{ matrix.mainnet_branch }} + context: .docker + dockerfile: Dockerfile-unique-release + args: | + --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }} + --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} + --build-arg UNIQUE_VERSION=${{ matrix.mainnet_branch }} + dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - - name: Clean Workspace - uses: AutoModality/action-clean@v1.1.0 - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - name: Prepare latest + uses: ./.github/actions/buildContainer + id: latest with: - ref: ${{ github.head_ref }} #Checking out head commit - - - name: Prepare - uses: ./.github/actions/prepare - - - name: Set build SHA - shell: bash - run: | - echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV + container: uniquenetwork/ci-nodata-${{ matrix.network }} + tag: ${{ env.REF_SLUG }}-${{ env.BUILD_SHA }} + context: . + dockerfile: .docker/Dockerfile-unique + args: | + --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }} + --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} + dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - - name: Run find-and-replace to remove slashes from branch name - uses: mad9000/actions-find-and-replace-string@4 - id: branchname + - name: Extract wasms + uses: ./.github/actions/extractDocker + id: wasms with: - source: ${{ github.head_ref }} - find: '/' - replace: '-' - - - name: Read .env file - uses: xom9ikk/dotenv@v2 - - - name: Generate ENV related extend file for docker-compose - uses: cuchi/jinja2-action@v1.2.0 - with: - template: .docker/docker-compose.forkless-nodata.j2 - output_file: .docker/docker-compose.forkless-nodata.${{ matrix.network }}.yml - variables: | - NETWORK=${{ matrix.network }} - BUILD_TAG=${{ steps.branchname.outputs.value }}-$BUILD_SHA - - - name: Show build configuration - run: cat .docker/docker-compose.forkless-nodata.${{ matrix.network }}.yml - - - name: Log in to Docker Hub - uses: docker/login-action@v2.1.0 - with: - username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} - password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - - - name: Build the stack - run: docker-compose -f ".docker/docker-compose.forkless-nodata.${{ matrix.network }}.yml" up -d --remove-orphans --force-recreate --timeout 300 + image: ${{ steps.latest.outputs.name }} + directory: /wasm - uses: actions/setup-node@v3.5.1 with: node-version: 18 - - name: Check if docker logs consist logs related to Runtime Upgrade testing. - if: success() - run: | - counter=160 - function check_container_status { - docker inspect -f {{.State.Running}} forkless-nodata - } - function do_docker_logs { - docker logs --details forkless-nodata 2>&1 - } - function is_started { - if [ "$(check_container_status)" == "true" ]; then - echo "Container: forkless-nodata RUNNING"; - echo "Check Docker logs" - DOCKER_LOGS=$(do_docker_logs) - if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then - echo "🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸" - return 0 - elif [[ ${DOCKER_LOGS} = *"🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"* ]];then - echo "🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧" - return 1 - else - echo "Message not found in logs output, repeating..." - return 1 - fi - else - echo "Container forkless-nodata not RUNNING" - echo "Halting all future checks" - exit 1 - fi - exit 0 - } - while ! is_started; do - echo "Waiting for special message in log files " - sleep 30s - counter=$(( $counter - 1 )) - echo "Counter: $counter" - if [ "$counter" -gt "0" ]; then - continue - else - break - fi - done - echo "Halting script" - exit 0 - shell: bash + - name: Install baedeker + uses: UniqueNetwork/baedeker-action/setup@built + + - name: Setup library + run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library - - name: Collect Docker Logs - if: success() || failure() - uses: jwalton/gh-docker-logs@v2.2.1 + - name: Start network + uses: UniqueNetwork/baedeker-action@built + id: bdk with: - dest: './forkless-parachain-upgrade-nodata-logs.${{ matrix.network }}' + jpath: | + .baedeker/vendor + tla-str: | + relay_spec=rococo-local + inputs: | + .baedeker/node-only.jsonnet + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.name }}'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}}, extra_node_mixin = {legacyRpc: true}) - - name: Show docker logs - if: success() || failure() - run: cat './forkless-parachain-upgrade-nodata-logs.${{ matrix.network }}/forkless-nodata.log' - - - name: Run Parallel tests + - name: "Reconcile: runtime is upgraded" working-directory: tests run: | - yarn install - yarn add mochawesome + yarn ./scripts/wait_for_first_block.sh - echo "Ready to start tests" - NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW} + echo "Executing upgrade" + yarn ts-node --esm src/util/authorizeEnactUpgrade.ts ${{ steps.wasms.outputs.dir }}/${{ matrix.wasm_name }}-runtime/${{ matrix.wasm_name }}_runtime.compact.compressed.wasm env: - RPC_URL: http://127.0.0.1:9944/ - - - name: Test Report Parallel - uses: phoenix-actions/test-reporting@v10 - 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' + RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} - - name: Run Sequential tests + - name: Run Parallel tests after forkless upgrade working-directory: tests - if: success() || failure() run: | - yarn install - yarn add mochawesome ./scripts/wait_for_first_block.sh echo "Ready to start tests" - NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW} + NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW} env: - RPC_URL: http://127.0.0.1:9944/ - - - name: Test Report Sequential - uses: phoenix-actions/test-reporting@v10 - 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' + RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} - - name: Stop running containers - if: always() # run this step always - run: docker-compose -f ".docker/docker-compose.forkless-nodata.${{ matrix.network }}.yml" down + - name: Run Sequential tests after forkless 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: ${{ env.RELAY_UNIQUE_HTTP_URL }} - name: Remove builder cache if: always() # run this step always run: | - docker builder prune -f -a docker system prune -f - docker image prune -f -a --- a/tests/package.json +++ b/tests/package.json @@ -18,6 +18,7 @@ "eslint": "^8.45.0", "eslint-plugin-mocha": "^10.1.0", "mocha": "^10.1.0", + "mochawesome": "^7.1.3", "ts-node": "^10.9.1", "typescript": "^5.1.6" }, --- a/tests/yarn.lock +++ b/tests/yarn.lock @@ -1888,7 +1888,7 @@ languageName: node linkType: hard -"chalk@npm:^4.0.0, chalk@npm:^4.1.0": +"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -2269,6 +2269,13 @@ languageName: node linkType: hard +"dateformat@npm:^4.5.1": + version: 4.6.3 + resolution: "dateformat@npm:4.6.3" + checksum: c3aa0617c0a5b30595122bc8d1bee6276a9221e4d392087b41cbbdf175d9662ae0e50d0d6dcdf45caeac5153c4b5b0844265f8cd2b2245451e3da19e39e3b65d + languageName: node + linkType: hard + "debug@npm:2.6.9, debug@npm:^2.2.0": version: 2.6.9 resolution: "debug@npm:2.6.9" @@ -2394,6 +2401,13 @@ languageName: node linkType: hard +"diff@npm:^5.0.0": + version: 5.1.0 + resolution: "diff@npm:5.1.0" + checksum: c7bf0df7c9bfbe1cf8a678fd1b2137c4fb11be117a67bc18a0e03ae75105e8533dbfb1cda6b46beb3586ef5aed22143ef9d70713977d5fb1f9114e21455fba90 + languageName: node + linkType: hard + "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -2557,7 +2571,7 @@ languageName: node linkType: hard -"escape-html@npm:~1.0.3": +"escape-html@npm:^1.0.3, escape-html@npm:~1.0.3": version: 1.0.3 resolution: "escape-html@npm:1.0.3" checksum: 6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 @@ -3158,6 +3172,17 @@ languageName: node linkType: hard +"fs-extra@npm:^10.0.0": + version: 10.1.0 + resolution: "fs-extra@npm:10.1.0" + dependencies: + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: dc94ab37096f813cc3ca12f0f1b5ad6744dfed9ed21e953d72530d103cea193c2f81584a39e9dee1bea36de5ee66805678c0dddc048e8af1427ac19c00fffc50 + languageName: node + linkType: hard + "fs-extra@npm:^4.0.2": version: 4.0.3 resolution: "fs-extra@npm:4.0.3" @@ -3233,6 +3258,13 @@ languageName: node linkType: hard +"fsu@npm:^1.1.1": + version: 1.1.1 + resolution: "fsu@npm:1.1.1" + checksum: 470564b7586fab03ec7bbb13f3b15cf316d51919174b44e31718d4de2f7de4ce07dc180d62b984c144b7ec6e0cca2174c03985a5d8cbef70bd1ec12f1da8968d + languageName: node + linkType: hard + "function-bind@npm:^1.1.1": version: 1.1.1 resolution: "function-bind@npm:1.1.1" @@ -3464,7 +3496,7 @@ languageName: node linkType: hard -"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.6": +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -3966,6 +3998,13 @@ languageName: node linkType: hard +"js-tokens@npm:^3.0.0 || ^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 + languageName: node + linkType: hard + "js-yaml@npm:4.1.0, js-yaml@npm:^4.1.0": version: 4.1.0 resolution: "js-yaml@npm:4.1.0" @@ -4031,6 +4070,19 @@ languageName: node linkType: hard +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: ^4.1.6 + universalify: ^2.0.0 + dependenciesMeta: + graceful-fs: + optional: true + checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 + languageName: node + linkType: hard + "jsprim@npm:^1.2.2": version: 1.4.2 resolution: "jsprim@npm:1.4.2" @@ -4090,6 +4142,34 @@ languageName: node linkType: hard +"lodash.isempty@npm:^4.4.0": + version: 4.4.0 + resolution: "lodash.isempty@npm:4.4.0" + checksum: a8118f23f7ed72a1dbd176bf27f297d1e71aa1926288449cb8f7cef99ba1bc7527eab52fe7899ab080fa1dc150aba6e4a6367bf49fa4e0b78da1ecc095f8d8c5 + languageName: node + linkType: hard + +"lodash.isfunction@npm:^3.0.9": + version: 3.0.9 + resolution: "lodash.isfunction@npm:3.0.9" + checksum: 99e54c34b1e8a9ba75c034deb39cedbd2aca7af685815e67a2a8ec4f73ec9748cda6ebee5a07d7de4b938e90d421fd280e9c385cc190f903ac217ac8aff30314 + languageName: node + linkType: hard + +"lodash.isobject@npm:^3.0.2": + version: 3.0.2 + resolution: "lodash.isobject@npm:3.0.2" + checksum: 6c1667cbc4494d0a13a3617a4b23278d6d02dac520311f2bbb43f16f2cf71d2e6eb9dec8057315b77459df4890c756a256a087d3f4baa44a79ab5d6c968b060e + languageName: node + linkType: hard + +"lodash.isstring@npm:^4.0.1": + version: 4.0.1 + resolution: "lodash.isstring@npm:4.0.1" + checksum: eaac87ae9636848af08021083d796e2eea3d02e80082ab8a9955309569cb3a463ce97fd281d7dc119e402b2e7d8c54a23914b15d2fc7fff56461511dc8937ba0 + languageName: node + linkType: hard + "lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" @@ -4114,6 +4194,17 @@ languageName: node linkType: hard +"loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: ^3.0.0 || ^4.0.0 + bin: + loose-envify: cli.js + checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 + languageName: node + linkType: hard + "lossless-json@npm:^2.0.9": version: 2.0.11 resolution: "lossless-json@npm:2.0.11" @@ -4522,6 +4613,48 @@ languageName: node linkType: hard +"mochawesome-report-generator@npm:^6.2.0": + version: 6.2.0 + resolution: "mochawesome-report-generator@npm:6.2.0" + dependencies: + chalk: ^4.1.2 + dateformat: ^4.5.1 + escape-html: ^1.0.3 + fs-extra: ^10.0.0 + fsu: ^1.1.1 + lodash.isfunction: ^3.0.9 + opener: ^1.5.2 + prop-types: ^15.7.2 + tcomb: ^3.2.17 + tcomb-validation: ^3.3.0 + validator: ^13.6.0 + yargs: ^17.2.1 + bin: + marge: bin/cli.js + checksum: bbfafc781a5b5aa39a012e0bed7d50ac929f72a46dee640223e4398b5f2121bd552a58f1dd481c0133678650a2e4730a9f97b8a5f26f2956b66b5c0057eb9391 + languageName: node + linkType: hard + +"mochawesome@npm:^7.1.3": + version: 7.1.3 + resolution: "mochawesome@npm:7.1.3" + dependencies: + chalk: ^4.1.2 + diff: ^5.0.0 + json-stringify-safe: ^5.0.1 + lodash.isempty: ^4.4.0 + lodash.isfunction: ^3.0.9 + lodash.isobject: ^3.0.2 + lodash.isstring: ^4.0.1 + mochawesome-report-generator: ^6.2.0 + strip-ansi: ^6.0.1 + uuid: ^8.3.2 + peerDependencies: + mocha: ">=7" + checksum: 87730026de2a407752088e9baddc105660bfd228d491f9f6588784cd7a200712b40a4987232d3870a353bb5deec61ae6e080686fb2effe099da240067fe619d6 + languageName: node + linkType: hard + "mock-fs@npm:^4.1.0": version: 4.14.0 resolution: "mock-fs@npm:4.14.0" @@ -4838,6 +4971,15 @@ languageName: node linkType: hard +"opener@npm:^1.5.2": + version: 1.5.2 + resolution: "opener@npm:1.5.2" + bin: + opener: bin/opener-bin.js + checksum: 33b620c0d53d5b883f2abc6687dd1c5fd394d270dbe33a6356f2d71e0a2ec85b100d5bac94694198ccf5c30d592da863b2292c5539009c715a9c80c697b4f6cc + languageName: node + linkType: hard + "optionator@npm:^0.9.3": version: 0.9.3 resolution: "optionator@npm:0.9.3" @@ -5042,6 +5184,17 @@ languageName: node linkType: hard +"prop-types@npm:^15.7.2": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: ^1.4.0 + object-assign: ^4.1.1 + react-is: ^16.13.1 + checksum: c056d3f1c057cb7ff8344c645450e14f088a915d078dcda795041765047fa080d38e5d626560ccaac94a4e16e3aa15f3557c1a9a8d1174530955e992c675e459 + languageName: node + linkType: hard + "propagate@npm:^2.0.0": version: 2.0.1 resolution: "propagate@npm:2.0.1" @@ -5178,6 +5331,13 @@ languageName: node linkType: hard +"react-is@npm:^16.13.1": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f + languageName: node + linkType: hard + "readable-stream@npm:^3.6.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" @@ -5806,6 +5966,22 @@ languageName: node linkType: hard +"tcomb-validation@npm:^3.3.0": + version: 3.4.1 + resolution: "tcomb-validation@npm:3.4.1" + dependencies: + tcomb: ^3.0.0 + checksum: 0b0bc3dab680274aeaadd8bd01528cffc7065e4ebb2b50ee354c3cc99b443530a7a7c9a3c7abf609d8e44927c51036fcef302d1bc743ff670fddbe04e8cc1e53 + languageName: node + linkType: hard + +"tcomb@npm:^3.0.0, tcomb@npm:^3.2.17": + version: 3.2.29 + resolution: "tcomb@npm:3.2.29" + checksum: 484e39a06ce59f1752b7589cb5fce9a7f58bd34ba11a48045d5d955c7bb7133d5617f8bf2dcf2b27f06df0dffe3734097c15179c86e4f9e5bff224c99c90aa8c + languageName: node + linkType: hard + "text-table@npm:^0.2.0": version: 0.2.0 resolution: "text-table@npm:0.2.0" @@ -6133,6 +6309,7 @@ find-process: ^1.4.7 lossless-json: ^2.0.9 mocha: ^10.1.0 + mochawesome: ^7.1.3 solc: 0.8.20 ts-node: ^10.9.1 typechain: ^8.2.0 @@ -6148,6 +6325,13 @@ languageName: node linkType: hard +"universalify@npm:^2.0.0": + version: 2.0.0 + resolution: "universalify@npm:2.0.0" + checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 + languageName: node + linkType: hard + "unpipe@npm:1.0.0, unpipe@npm:~1.0.0": version: 1.0.0 resolution: "unpipe@npm:1.0.0" @@ -6224,6 +6408,15 @@ languageName: node linkType: hard +"uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df + languageName: node + linkType: hard + "uuid@npm:^9.0.0": version: 9.0.0 resolution: "uuid@npm:9.0.0" @@ -6240,6 +6433,13 @@ languageName: node linkType: hard +"validator@npm:^13.6.0": + version: 13.11.0 + resolution: "validator@npm:13.11.0" + checksum: d1e0c27022681420756da25bc03eb08d5f0c66fb008f8ff02ebc95812b77c6be6e03d3bd05cf80ca702e23eeb73dadd66b4b3683173ea2a0bc7cc72820bee131 + languageName: node + linkType: hard + "varint@npm:^5.0.0": version: 5.0.2 resolution: "varint@npm:5.0.2" @@ -6806,7 +7006,7 @@ languageName: node linkType: hard -"yargs@npm:^17.7.2": +"yargs@npm:^17.2.1, yargs@npm:^17.7.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: -- gitstuff