Skip to content
This repository has been archived by the owner on Nov 6, 2020. It is now read-only.

Tests parallelized #10452

Merged
merged 38 commits into from
Mar 11, 2019
Merged

Tests parallelized #10452

merged 38 commits into from
Mar 11, 2019

Conversation

TriplEight
Copy link
Collaborator

@TriplEight TriplEight commented Mar 6, 2019

The example of new regular pipeline: https://gitlab.parity.io/parity/parity-ethereum/pipelines/32255

what's better

  • first stage now runs ~ 2 min
  • cargo test now runs ~ 16 min
  • whole pipeline takes ~ 19 min
  • now it's good to launch docker cache

what's changed

  • removed android-build from regular pipeline
  • split test.sh and test-all.sh by this whole lot of jobs
  • some stuff was optimized and simplified
  • nproc now counts threads for cargo test and cpp-test

reflections

  • it's really needed to overwrite the cpp-test
  • makes sense to think how to parallelize test.sh, maybe mark unit tests

@TriplEight TriplEight added the A3-inprogress ⏳ Pull request is in progress. No review needed at this stage. label Mar 6, 2019
@TriplEight TriplEight self-assigned this Mar 6, 2019
@parity-cla-bot
Copy link

It looks like @TriplEight signed our Contributor License Agreement. 👍

Many thanks,

Parity Technologies CLA Bot

@TriplEight TriplEight changed the title WIP: tests splitted, phase 1 Tests parallelized Mar 6, 2019
@TriplEight TriplEight removed the A3-inprogress ⏳ Pull request is in progress. No review needed at this stage. label Mar 6, 2019
@General-Beck General-Beck added A0-pleasereview 🤓 Pull request needs code review. F4-tests 💻 Tests need fixing, improving or augmenting. M1-ci 🙉 Continuous integration. labels Mar 6, 2019
.gitlab-ci.yml Outdated Show resolved Hide resolved
.gitlab-ci.yml Outdated Show resolved Hide resolved
.gitlab-ci.yml Outdated Show resolved Hide resolved
.gitlab-ci.yml Outdated Show resolved Hide resolved
.gitlab-ci.yml Outdated Show resolved Hide resolved
scripts/gitlab/test-cpp.sh Show resolved Hide resolved
@soc1c soc1c added this to the 2.5 milestone Mar 7, 2019
@soc1c soc1c added B1-patch-beta 🕷🕷 B0-patch-stable 🕷 Pull request should also be back-ported to the stable branch. labels Mar 7, 2019
@TriplEight
Copy link
Collaborator Author

for now we are going to skip checking changed files, we are going to check them Gitlab way. But before that caching should be introduced.

Copy link
Collaborator Author

@TriplEight TriplEight left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

right now CI is 10-30% faster

.gitlab-ci.yml Outdated Show resolved Hide resolved
scripts/gitlab/test-cpp.sh Show resolved Hide resolved
accounts/ethkey/src/brain.rs Outdated Show resolved Hide resolved
@TriplEight
Copy link
Collaborator Author

ready for the final review.

@gabreal gabreal self-requested a review March 11, 2019 10:05
.gitlab-ci.yml Show resolved Hide resolved
.gitlab-ci.yml Outdated Show resolved Hide resolved
.gitlab-ci.yml Outdated Show resolved Hide resolved
.gitlab-ci.yml Outdated Show resolved Hide resolved
.gitlab-ci.yml Outdated Show resolved Hide resolved
scripts/gitlab/cargo-check.sh Outdated Show resolved Hide resolved
scripts/gitlab/test-cpp.sh Show resolved Hide resolved
scripts/gitlab/test-linux.sh Show resolved Hide resolved
@gabreal
Copy link
Contributor

gabreal commented Mar 11, 2019

great job, pipeline looks way more detailed and clear now

Copy link
Contributor

@gabreal gabreal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

well, pls go ahead with your pr. In general it looks very nice. About the thread cound I'm still sceptical, and I'm also still curious about the gitlab yaml changes feature.

.gitlab-ci.yml Outdated Show resolved Hide resolved
scripts/gitlab/rust-changes.sh Show resolved Hide resolved
@TriplEight TriplEight merged commit 82a148a into master Mar 11, 2019
@soc1c soc1c deleted the tests_splitting branch March 12, 2019 10:57
soc1c pushed a commit that referenced this pull request Mar 13, 2019
* tests splitted, phase 1

* typo

* fix wrong launch commands

* typos

* rearrangements

* use `nproc` function for threads

* use nproc for threads

* let theads be auto, build-andriod no more in regular run

* split val chain and cargo check

* renamed some files

* wrong phase

* check rust files before test jobs

* lint error

* rust files modivied var

* test except changes

* add rust_changes except

* lint error

* fixes

* .gitlab-ci.yml can't be excluded

* pipeline shouldn't start

* pipeline must go

* pipeline must go 2

* pipeline must go 3

* pipeline must go 4

* pipeline must go 5

* pipeline must go 6

* pipeline must go 7

* pipeline must not go 1

* pipeline must go 8

* avoid skippng tests yet, reintroducing them after the caching

* test theory

* parallelized cargo check with combusting helicopters

* less uploads

* alias for cargo checks

* nice template
@soc1c soc1c mentioned this pull request Mar 13, 2019
6 tasks
soc1c pushed a commit that referenced this pull request Mar 13, 2019
* tests splitted, phase 1

* typo

* fix wrong launch commands

* typos

* rearrangements

* use `nproc` function for threads

* use nproc for threads

* let theads be auto, build-andriod no more in regular run

* split val chain and cargo check

* renamed some files

* wrong phase

* check rust files before test jobs

* lint error

* rust files modivied var

* test except changes

* add rust_changes except

* lint error

* fixes

* .gitlab-ci.yml can't be excluded

* pipeline shouldn't start

* pipeline must go

* pipeline must go 2

* pipeline must go 3

* pipeline must go 4

* pipeline must go 5

* pipeline must go 6

* pipeline must go 7

* pipeline must not go 1

* pipeline must go 8

* avoid skippng tests yet, reintroducing them after the caching

* test theory

* parallelized cargo check with combusting helicopters

* less uploads

* alias for cargo checks

* nice template
@soc1c soc1c mentioned this pull request Mar 13, 2019
7 tasks
soc1c added a commit that referenced this pull request Mar 19, 2019
* version: bump stable

* CI publish to aws (#10446)

* move publish aws from gitlab.yml to gitlab scripts

* gitlab.yml cleaning
move publish AWS to gitlab scripts
remove dependencies from android build

* Ensure static validator set changes are recognized (#10467)

* CI aws git checkout (#10451)

* Updating the CI system with the publication of releases and binary files on github

Signed-off-by: Denis S. Soldatov aka General-Beck <general.beck@gmail.com>

* move publish aws from gitlab.yml to gitlab scripts

Signed-off-by: Denis S. Soldatov aka General-Beck <general.beck@gmail.com>

* gitlab.yml cleaning
move publish AWS to gitlab scripts
remove dependencies from android build

Signed-off-by: Denis S. Soldatov aka General-Beck <general.beck@gmail.com>

* Revert "Updating the CI system with the publication of releases and binary files on github"

This reverts commit da87e06.

* remove no-git for aws

* microfix

* no need in no_git then

* Revert "CI aws git checkout (#10451)" (#10456)

* Revert "CI aws git checkout (#10451)"

This reverts commit 3e1d731.

* Update .gitlab-ci.yml

revert aws script with small fixes

* Delete publish-aws.sh

* Tests parallelized (#10452)

* tests splitted, phase 1

* typo

* fix wrong launch commands

* typos

* rearrangements

* use `nproc` function for threads

* use nproc for threads

* let theads be auto, build-andriod no more in regular run

* split val chain and cargo check

* renamed some files

* wrong phase

* check rust files before test jobs

* lint error

* rust files modivied var

* test except changes

* add rust_changes except

* lint error

* fixes

* .gitlab-ci.yml can't be excluded

* pipeline shouldn't start

* pipeline must go

* pipeline must go 2

* pipeline must go 3

* pipeline must go 4

* pipeline must go 5

* pipeline must go 6

* pipeline must go 7

* pipeline must not go 1

* pipeline must go 8

* avoid skippng tests yet, reintroducing them after the caching

* test theory

* parallelized cargo check with combusting helicopters

* less uploads

* alias for cargo checks

* nice template

* Fix `ci-skip-issue` name

* Fix build flag

* Remove ci-skip-tests flag for stable
soc1c added a commit that referenced this pull request Mar 19, 2019
* version: bump beta

* Implement parity_versionInfo & parity_setChain on LC; fix parity_setChain (#10312)

* Light client: implement parity_versionInfo RPC

* Light client: implement set_exit_handler & parity_setChain RPC

* parity_setChain RPC: return an error if failed (instead of `true`)

* Implement eth_subscribe('syncing') RPC for full node & light node

* Fix indentation

* Revert commit: Implement eth_subscribe('syncing')

* Revert change to Cr callback function

* CI publish to aws (#10446)

* move publish aws from gitlab.yml to gitlab scripts

* gitlab.yml cleaning
move publish AWS to gitlab scripts
remove dependencies from android build

* CI aws git checkout (#10451)

* Updating the CI system with the publication of releases and binary files on github

Signed-off-by: Denis S. Soldatov aka General-Beck <general.beck@gmail.com>

* move publish aws from gitlab.yml to gitlab scripts

Signed-off-by: Denis S. Soldatov aka General-Beck <general.beck@gmail.com>

* gitlab.yml cleaning
move publish AWS to gitlab scripts
remove dependencies from android build

Signed-off-by: Denis S. Soldatov aka General-Beck <general.beck@gmail.com>

* Revert "Updating the CI system with the publication of releases and binary files on github"

This reverts commit da87e06.

* remove no-git for aws

* microfix

* no need in no_git then

* Revert "CI aws git checkout (#10451)" (#10456)

* Revert "CI aws git checkout (#10451)"

This reverts commit 3e1d731.

* Update .gitlab-ci.yml

revert aws script with small fixes

* Delete publish-aws.sh

* Tests parallelized (#10452)

* tests splitted, phase 1

* typo

* fix wrong launch commands

* typos

* rearrangements

* use `nproc` function for threads

* use nproc for threads

* let theads be auto, build-andriod no more in regular run

* split val chain and cargo check

* renamed some files

* wrong phase

* check rust files before test jobs

* lint error

* rust files modivied var

* test except changes

* add rust_changes except

* lint error

* fixes

* .gitlab-ci.yml can't be excluded

* pipeline shouldn't start

* pipeline must go

* pipeline must go 2

* pipeline must go 3

* pipeline must go 4

* pipeline must go 5

* pipeline must go 6

* pipeline must go 7

* pipeline must not go 1

* pipeline must go 8

* avoid skippng tests yet, reintroducing them after the caching

* test theory

* parallelized cargo check with combusting helicopters

* less uploads

* alias for cargo checks

* nice template

* Ensure static validator set changes are recognized (#10467)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A0-pleasereview 🤓 Pull request needs code review. B0-patch-stable 🕷 Pull request should also be back-ported to the stable branch. F4-tests 💻 Tests need fixing, improving or augmenting. M1-ci 🙉 Continuous integration.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants