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

difftreelog

Merge pull request #215 from UniqueNetwork/ci/speedup-tests

Alexei2021-10-20parents: #b24dbee #78977ee.patch.diff
in: master
Speedup tests

13 files changed

modified.dockerignorediffbeforeafterboth
2.github/2.github/
3doc/3doc/
4target/4target/
5tests/
5chain-data*/6chain-data*/
6smart_contract/7smart_contract/
8Dockerfile-parachain
9docker-compose-tests-parachain.yml
710
modifiedCargo.lockdiffbeforeafterboth
3952 "pallet-offences-benchmarking",3952 "pallet-offences-benchmarking",
3953 "pallet-proxy",3953 "pallet-proxy",
3954 "pallet-recovery",3954 "pallet-recovery",
3955 "pallet-scheduler 4.0.0-dev",3955 "pallet-scheduler",
3956 "pallet-session",3956 "pallet-session",
3957 "pallet-session-benchmarking",3957 "pallet-session-benchmarking",
3958 "pallet-society",3958 "pallet-society",
5306 "pallet-nft-charge-transaction",5306 "pallet-nft-charge-transaction",
5307 "pallet-nft-transaction-payment",5307 "pallet-nft-transaction-payment",
5308 "pallet-randomness-collective-flip",5308 "pallet-randomness-collective-flip",
5309 "pallet-scheduler 3.0.0",
5310 "pallet-sudo",5309 "pallet-sudo",
5311 "pallet-timestamp",5310 "pallet-timestamp",
5312 "pallet-transaction-payment",5311 "pallet-transaction-payment",
5313 "pallet-transaction-payment-rpc-runtime-api",5312 "pallet-transaction-payment-rpc-runtime-api",
5314 "pallet-treasury",5313 "pallet-treasury",
5314 "pallet-unq-scheduler",
5315 "pallet-vesting",5315 "pallet-vesting",
5316 "pallet-xcm",5316 "pallet-xcm",
5317 "parachain-info",5317 "parachain-info",
6284 "sp-std",6284 "sp-std",
6285]6285]
6286
6287[[package]]
6288name = "pallet-scheduler"
6289version = "3.0.0"
6290dependencies = [
6291 "frame-benchmarking",
6292 "frame-support",
6293 "frame-system",
6294 "log",
6295 "parity-scale-codec",
6296 "serde",
6297 "sp-core",
6298 "sp-io",
6299 "sp-runtime",
6300 "sp-std",
6301 "substrate-test-utils",
6302 "up-sponsorship",
6303]
63046286
6305[[package]]6287[[package]]
6306name = "pallet-scheduler"6288name = "pallet-scheduler"
6516 "sp-std",6498 "sp-std",
6517]6499]
6500
6501[[package]]
6502name = "pallet-unq-scheduler"
6503version = "3.0.0"
6504dependencies = [
6505 "frame-benchmarking",
6506 "frame-support",
6507 "frame-system",
6508 "log",
6509 "parity-scale-codec",
6510 "serde",
6511 "sp-core",
6512 "sp-io",
6513 "sp-runtime",
6514 "sp-std",
6515 "substrate-test-utils",
6516 "up-sponsorship",
6517]
65186518
6519[[package]]6519[[package]]
6520name = "pallet-utility"6520name = "pallet-utility"
7772 "pallet-offences",7772 "pallet-offences",
7773 "pallet-offences-benchmarking",7773 "pallet-offences-benchmarking",
7774 "pallet-proxy",7774 "pallet-proxy",
7775 "pallet-scheduler 4.0.0-dev",7775 "pallet-scheduler",
7776 "pallet-session",7776 "pallet-session",
7777 "pallet-session-benchmarking",7777 "pallet-session-benchmarking",
7778 "pallet-staking",7778 "pallet-staking",
12787 "pallet-offences-benchmarking",12787 "pallet-offences-benchmarking",
12788 "pallet-proxy",12788 "pallet-proxy",
12789 "pallet-recovery",12789 "pallet-recovery",
12790 "pallet-scheduler 4.0.0-dev",12790 "pallet-scheduler",
12791 "pallet-session",12791 "pallet-session",
12792 "pallet-session-benchmarking",12792 "pallet-session-benchmarking",
12793 "pallet-society",12793 "pallet-society",
modifiedDockerfile-parachaindiffbeforeafterboth
1# ===== BUILD ======1# ===== Rust builder =====
2FROM phusion/baseimage:focal-1.0.0 as builder2FROM phusion/baseimage:focal-1.0.0 as rust-builder
3LABEL maintainer="Unique.Network"3LABEL maintainer="Unique.Network"
44
5
6
7ARG RUST_TOOLCHAIN=nightly-2021-06-285ARG RUST_TOOLCHAIN=nightly-2021-06-28
8#ARG RUST_C=1.55.0-nightly6#ARG RUST_C=1.55.0-nightly
9ARG POLKA_VERSION=v0.9.107ARG POLKA_VERSION=v0.9.10
24#RUN echo $POLKA_VERSION22#RUN echo $POLKA_VERSION
25#RUN echo $NFT_BRANCH23#RUN echo $NFT_BRANCH
2624
25ARG PROFILE=release
2726
27ENV CARGO_HOME="/cargo-home"
28ENV PATH="/cargo-home/bin:$PATH"
2829
29ARG PROFILE=release30RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
3031
31RUN apt-get update && \32RUN apt-get update && \
32 apt-get dist-upgrade -y -o Dpkg::Options::="--force-confold" && \33 apt-get dist-upgrade -y -o Dpkg::Options::="--force-confold" && \
33 apt-get install -y cmake pkg-config libssl-dev git clang34 apt-get install -y cmake pkg-config libssl-dev git clang
3435
35# Get project and run it36RUN rustup toolchain uninstall $(rustup toolchain list) && \
37 rustup toolchain install $RUST_TOOLCHAIN && \
38 rustup default $RUST_TOOLCHAIN && \
39 rustup target list --installed && \
40 rustup show
41RUN rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN
3642
37#RUN git clone -b $NFT_BRANCH https://$USER:$PASS@github.com/UniqueNetwork/unique-chain.git /nft_parachain43RUN cargo install cargo-chef
3844
39
40RUN mkdir nft_parachain45RUN mkdir nft_parachain
41WORKDIR /nft_parachain46WORKDIR /nft_parachain
47
48# ===== Chef =====
49FROM rust-builder as chef
50
42COPY . .51COPY . .
52RUN cargo chef prepare --recipe-path recipe.json
4353
54# ===== BUILD ======
55FROM rust-builder as builder
4456
45RUN export CARGO_HOME="/cargo-home" && curl https://sh.rustup.rs -sSf | sh -s -- -y57RUN mkdir nft_parachain
46RUN export PATH="/cargo-home/bin:$PATH" && \58WORKDIR /nft_parachain
47 export CARGO_HOME="/cargo-home" && \
48 cargo fetch
4959
50RUN export PATH="/cargo-home/bin:$PATH" && \60COPY --from=chef /nft_parachain/recipe.json recipe.json
51 export CARGO_HOME="/cargo-home" && \61RUN cargo chef cook --release --recipe-path recipe.json
52 rustup toolchain uninstall $(rustup toolchain list) && \
53 rustup toolchain install $RUST_TOOLCHAIN && \
54# rustup toolchain install $RUST_C && \
55 rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN && \
56 rustup default $RUST_TOOLCHAIN && \
57 rustup target list --installed && \
58 rustup show
5962
60RUN export PATH="/cargo-home/bin:$PATH" && \63COPY . .
61 export CARGO_HOME="/cargo-home" && \
62 cargo build "--$PROFILE"64RUN cargo build "--$PROFILE"
63 # && \65 # && \
64 # cargo test66 # cargo test
6567
68# ===== BUILD POLKADOT =====
69FROM rust-builder as builder-polkadot
6670
71RUN mkdir nft_parachain
72WORKDIR /nft_parachain
6773
68RUN git clone -b $POLKA_VERSION --depth 1 https://github.com/paritytech/polkadot.git && \74RUN git clone -b $POLKA_VERSION --depth 1 https://github.com/paritytech/polkadot.git && \
69 cd polkadot && \75 cd polkadot && \
70 git tag -n && \76 git tag -n && \
71 export PATH="/cargo-home/bin:$PATH" && \
72 export CARGO_HOME="/cargo-home" && \
73 cargo build --release77 cargo build --release
7478
75# ===== RUN ======79# ===== RUN ======
7882
79ARG PROFILE=release83ARG PROFILE=release
8084
81COPY --from=builder /nft_parachain/target/$PROFILE/nft /nft_private/target/$PROFILE/
82COPY --from=builder /nft_parachain/polkadot/target/$PROFILE/polkadot /polkadot/target/$PROFILE/
83
84RUN apt-get update && \
85 apt-get dist-upgrade -y -o Dpkg::Options::="--force-confold" && \
86 apt-get install -y cmake pkg-config libssl-dev git clang
87
88RUN git clone https://github.com/paritytech/polkadot-launch.git
89
90RUN apt-get -y update && \85RUN apt-get -y update && \
91 apt-get -y upgrade && \86 apt-get -y upgrade && \
92 apt-get -y install curl && \87 apt-get -y install curl git && \
93 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \88 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \
94 export NVM_DIR="$HOME/.nvm" && \89 export NVM_DIR="$HOME/.nvm" && \
95 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \90 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
96 nvm install v15.5.0 && \91 nvm install v15.5.0 && \
97 nvm use v15.5.092 nvm use v15.5.0
98# npm install --save @polkadot/api && \
99# npm install --save-dev mochawesome
10093
94RUN git clone https://github.com/paritytech/polkadot-launch.git
10195
96RUN export NVM_DIR="$HOME/.nvm" && \
97 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
98 cd /polkadot-launch && \
99 npm install --global yarn && \
100 yarn
101
102COPY --from=builder /nft_parachain/target/$PROFILE/nft /nft_private/target/$PROFILE/
103COPY --from=builder-polkadot /nft_parachain/polkadot/target/$PROFILE/polkadot /polkadot/target/$PROFILE/
104
102CMD export NVM_DIR="$HOME/.nvm" && \105CMD export NVM_DIR="$HOME/.nvm" && \
103 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \106 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
104 cd /polkadot-launch && \107 cd /polkadot-launch && \
105 npm install --global yarn && \108 yarn start launch-config.json
106 yarn install && \109
107 yarn build && \
108 yarn start launch-config.json
deletedDockerfile-testsdiffbeforeafterboth

no changes

modifieddocker-compose-tests-parachain.ymldiffbeforeafterboth
31 container_name: integration_tests31 container_name: integration_tests
32 image: integration_tests32 image: integration_tests
33 build:33 build:
34 context: ./34 context: tests/
35 dockerfile: Dockerfile-tests35 dockerfile: Dockerfile-tests
36 environment:
37 RPC_URL: http://blockchain_nodes:9934/
36 volumes:38 volumes:
37 - ./tests/src/config_docker.ts:/nft_parachain/tests/src/config.ts39 - ./tests/src/config_docker.ts:/nft_parachain/src/config.ts
38 - /home/ubuntu/mochawesome-report:/nft_parachain/tests/mochawesome-report40 - /home/ubuntu/mochawesome-report:/nft_parachain/mochawesome-report
41 - ./runtime_types.json:/runtime_types.json
39# command: bash -c 'while true; do sleep 20; df -h; done'42# command: bash -c 'while true; do sleep 20; df -h; done'
40 networks:43 networks:
41 - node_test_network44 - node_test_network
modifiedpallets/scheduler/Cargo.tomldiffbeforeafterboth
1[package]1[package]
2name = "pallet-scheduler"2name = "pallet-unq-scheduler"
3version = "3.0.0"3version = "3.0.0"
4authors = ["Parity Technologies <admin@parity.io>"]4authors = ["Parity Technologies <admin@parity.io>"]
5edition = "2018"5edition = "2018"
modifiedruntime/Cargo.tomldiffbeforeafterboth
68 'serde',68 'serde',
69 'pallet-inflation/std',69 'pallet-inflation/std',
70 'pallet-nft/std',70 'pallet-nft/std',
71 'pallet-scheduler/std',71 'pallet-unq-scheduler/std',
72 'pallet-nft-charge-transaction/std',72 'pallet-nft-charge-transaction/std',
73 'pallet-nft-transaction-payment/std',73 'pallet-nft-transaction-payment/std',
74 'nft-data-structs/std',74 'nft-data-structs/std',
387pallet-nft = { path = '../pallets/nft', default-features = false, version = '3.0.0' }387pallet-nft = { path = '../pallets/nft', default-features = false, version = '3.0.0' }
388pallet-inflation = { path = '../pallets/inflation', default-features = false, version = '3.0.0' }388pallet-inflation = { path = '../pallets/inflation', default-features = false, version = '3.0.0' }
389nft-data-structs = { path = '../primitives/nft', default-features = false, version = '0.9.0' }389nft-data-structs = { path = '../primitives/nft', default-features = false, version = '0.9.0' }
390pallet-scheduler = { path = '../pallets/scheduler', default-features = false, version = '3.0.0' }390pallet-unq-scheduler = { path = '../pallets/scheduler', default-features = false, version = '3.0.0' }
391# pallet-contract-helpers = { path = '../pallets/contract-helpers', default-features = false, version = '0.1.0' }391# pallet-contract-helpers = { path = '../pallets/contract-helpers', default-features = false, version = '0.1.0' }
392pallet-nft-transaction-payment = { path = '../pallets/nft-transaction-payment', default-features = false, version = '3.0.0' }392pallet-nft-transaction-payment = { path = '../pallets/nft-transaction-payment', default-features = false, version = '3.0.0' }
393pallet-nft-charge-transaction = { path = '../pallets/nft-charge-transaction', default-features = false, version = '3.0.0' }393pallet-nft-charge-transaction = { path = '../pallets/nft-charge-transaction', default-features = false, version = '3.0.0' }
modifiedruntime/src/lib.rsdiffbeforeafterboth
748 //pallet_contract_helpers::ContractSponsorshipHandler<Runtime>,748 //pallet_contract_helpers::ContractSponsorshipHandler<Runtime>,
749);749);
750750
751impl pallet_scheduler::Config for Runtime {751impl pallet_unq_scheduler::Config for Runtime {
752 type Event = Event;752 type Event = Event;
753 type Origin = Origin;753 type Origin = Origin;
754 type PalletsOrigin = OriginCaller;754 type PalletsOrigin = OriginCaller;
821 // Unique Pallets821 // Unique Pallets
822 Inflation: pallet_inflation::{Pallet, Call, Storage} = 60,822 Inflation: pallet_inflation::{Pallet, Call, Storage} = 60,
823 Nft: pallet_nft::{Pallet, Call, Config<T>, Storage, Event<T>} = 61,823 Nft: pallet_nft::{Pallet, Call, Config<T>, Storage, Event<T>} = 61,
824 Scheduler: pallet_scheduler::{Pallet, Call, Storage, Event<T>} = 62,824 Scheduler: pallet_unq_scheduler::{Pallet, Call, Storage, Event<T>} = 62,
825 NftPayment: pallet_nft_transaction_payment::{Pallet, Call, Storage} = 63,825 NftPayment: pallet_nft_transaction_payment::{Pallet, Call, Storage} = 63,
826 Charging: pallet_nft_charge_transaction::{Pallet, Call, Storage } = 64,826 Charging: pallet_nft_charge_transaction::{Pallet, Call, Storage } = 64,
827 // ContractHelpers: pallet_contract_helpers::{Pallet, Call, Storage} = 65,827 // ContractHelpers: pallet_contract_helpers::{Pallet, Call, Storage} = 65,
addedtests/.dockerignorediffbeforeafterboth

no changes

addedtests/Dockerfile-testsdiffbeforeafterboth

no changes

deletedtests/package-lock.jsondiffbeforeafterboth

no changes

addedtests/scripts/wait_for_first_block.shdiffbeforeafterboth

no changes

modifiedtests/src/config_docker.tsdiffbeforeafterboth
6import process from 'process';6import process from 'process';
77
8const config = {8const config = {
9 substrateUrl: process.env.substrateUrl || 'ws://172.17.0.1:9944',9 substrateUrl: process.env.substrateUrl || 'ws://blockchain_nodes:9944',
10 frontierUrl: process.env.frontierUrl || 'http://172.17.0.1:9933',10 frontierUrl: process.env.frontierUrl || 'http://blockchain_nodes:9933',
11};11};
1212
13export default config;13export default config;