Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add parallel_tests for test suite in CI #8678

Merged
merged 34 commits into from Jan 28, 2022

Conversation

alecslupu
Copy link
Contributor

@alecslupu alecslupu commented Jan 3, 2022

🎩 What? Why?

Reduce the time to run the test suite, related to #6194

As per below table, this PR releases 4 additional workers for each time the pipeline is running. Based on the measurements from above, the initial time has a sum of 778 minutes in actions, while the optimized version has 593 action minutes. We can conclude there is a economy of about 185 minutes in the actions time for each PR / merge action.

Further actions we can take to speed up some of the tests is to investigate the matrix feature in github actions, but that would consume additional workers.

Test Number of tests Initial Optimized Comments
[CI] Accountability 432 examples22m 16m -
[CI] Admin (system tests 1) 210 examples23m 22m 359 Tests
  • 210 From this suite
  • 144 from System test 2
  • 5 not selected by previous method
[CI] Admin (system tests 2) 144 examples15m Collapsed in [CI] Admin (system tests 1)
[CI] Admin (unit tests) 663 examples12m 9m -
[CI] Api 18 examples6m 7m-
[CI] Assemblies 820 examples24m 18m
[CI] Blogs 150 examples10m 9m
[CI] Budgets617 examples30m 18m
[CI] Comments 673 examples17m 18m
[CI] Conferences805 examples22m 20m
[CI] Consultations459 examples17m 13m
[CI] Core (lib specs) 948 examples13m 15m
[CI] Core (system specs)345 examples25m16m
[CI] Core (unit tests)2014 examples35m26m
[CI] Debates 419 examples21m18m
[CI] Dev (system specs) 2 examples8m8m
[CI] Elections (system admin 1) 139 examples22m 26m 252 examples
  • 139 from [CI] Elections (system admin 1)
  • 113 from [CI] Elections (system admin 2)
[CI] Elections (system admin 2) 113 examples16m - Collapsed into: [CI] Elections (system admin 1)
[CI] Elections (system public)114 examples26m24m
[CI] Elections (unit tests)1088 examples27m20m
[CI] Forms288 examples9m8m
[CI] Generators 7 examples28m22m
[CI] Initiatives (system admin)126 examples17m15m
[CI] Initiatives (system public 168 examples22m16m
[CI] Initiatives (unit tests) 782 examples18m11m
[CI] Meetings (system admin) 219 examples31m20m
[CI] Meetings (system public 1) 141 examples 19m 26m 347 examples
  • 141 examples from [CI] Meetings (system public 1)
  • 206 examples from [CI] Meetings (system public 2)
[CI] Meetings (system public 2) 206 examples20mCollapsed into [CI] Meetings (system public 1)
[CI] Meetings (unit tests)1135 examples23m15m
[CI] Pages 51 examples7m7m
[CI] Participatory processes 938 examples36m22m
[CI] Proposals (system admin) 198 examples21m22m
[CI] Proposals (system public 1) 181 examples 29m 30m 426 examples
[CI] Proposals (system public2) 176 examples 20m Collapsed into [CI] Proposals (system public 1)
[CI] Proposals (unit tests)1490 examples18m14m
[CI] Sortitions193 examples14m12m
[CI] Surveys 281 examples20m23m
[CI] System 71 examples9m8m
[CI] Templates 36 examples8m7m
[CI] Verifications261 examples,18m12m

📌 Related Issues

Link your PR to an issue

Testing

This PR does not adds any Product features. It only reduces the amount of time required to run the other test suites.

📋 Checklist

🚨 Please review the guidelines for contributing to this repository.

  • CONSIDER adding a unit test if your PR resolves an issue.
  • ✔️ DO check open PR's to avoid duplicates.
  • ✔️ DO keep pull requests small so they can be easily reviewed.
  • ✔️ DO build locally before pushing.
  • ✔️ DO make sure tests pass.
  • ✔️ DO make sure any new changes are documented in docs/.
  • ✔️ DO add and modify seeds if necessary.
  • ✔️ DO add CHANGELOG upgrade notes if required.
  • ✔️ DO add to GraphQL API if there are new public fields.
  • ✔️ DO add link to MetaDecidim if it's a new feature.
  • AVOID breaking the continuous integration build.
  • AVOID making significant changes to the overall architecture.

📷 Screenshots

Please add screenshots of the changes you're proposing
Description

♥️ Thank you!

@alecslupu alecslupu force-pushed the fix/parallel_tests branch 6 times, most recently from aecd0a5 to e844f3f Compare January 4, 2022 08:02
@andreslucena andreslucena marked this pull request as ready for review January 5, 2022 08:07
@andreslucena
Copy link
Member

I marked as review to see the CI execution. Can you add some description @alecslupu 🙏🏽? Also, you'll need to resolve merge conflicts (it must be from #8677 for sure, as you might already know 😄)

@alecslupu alecslupu marked this pull request as draft January 26, 2022 05:47
@alecslupu alecslupu force-pushed the fix/parallel_tests branch 4 times, most recently from 7c4b974 to 126c637 Compare January 26, 2022 16:37
@alecslupu alecslupu force-pushed the fix/parallel_tests branch 5 times, most recently from 2e38a43 to 6a16b95 Compare January 26, 2022 20:26
@alecslupu alecslupu self-assigned this Jan 27, 2022
@alecslupu alecslupu added type: internal PRs that aren't necessary to add to the CHANGELOG for implementers target: developer-experience labels Jan 27, 2022
@alecslupu alecslupu changed the title Add parallel_tests for Accountability Add parallel_tests for test suite Jan 27, 2022
@alecslupu alecslupu marked this pull request as ready for review January 27, 2022 18:15
Copy link
Member

@andreslucena andreslucena left a comment

Choose a reason for hiding this comment

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

One doubt and the typical changes of git references...
Great job!! 🚀

@andreslucena andreslucena changed the title Add parallel_tests for test suite Add parallel_tests for test suite in CI Jan 28, 2022
@andreslucena andreslucena merged commit 9731b83 into decidim:develop Jan 28, 2022
@alecslupu alecslupu deleted the fix/parallel_tests branch January 28, 2022 11:59
@alecslupu alecslupu added this to the 0.27.0 milestone Jul 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
target: developer-experience type: internal PRs that aren't necessary to add to the CHANGELOG for implementers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants