-
Notifications
You must be signed in to change notification settings - Fork 180
Description
AL-Go version
latest
Describe the issue
I want to build all projects first and then run tests afterwards, this is not really possible today.
Today, projects are sorted in order of dependencies and as soon as projects are built, the project which tests the apps in that project will be built in the next round. This behavior causes projects which runs tests to be performed side-by-side with build projects, delaying the builds unnecessarily.
We are aiming to have build projects to complete in 1-2 minutes and test projects will often take much longer. When test projects are run side-by-side with build projects, the subsequent build projects will wait for the test projects even though it isn't necessary.
Which completes in 2:01, saving a full 45 minutes from the first run, just by re-ordering and allowing people to see compile errors up-front - fail early!
The key difference here is just the order in which projects are built/tested. In the first run, build3 had to wait 30 minutes until the test run was done before building the next jobs, and 1 hour and 44 until the last build jobs would run.
In the second run - all test jobs are running in parallel at the very end, getting compile errors quicly and postponing test runs until the very last.
If necessary, I can put the modified behavior behind a setting, so that you can get the old behavior if you like.
Expected behavior
No unnecessary delays when building projects.
Steps to reproduce
Create a multi-project repository, with 4 levels of depth like:
P0 contains app and test app
P1 contains app (with dependency on P0) and test app
P2 contains app (with dependency on P1) and test app
P0.test points to test folder in P0
P1.test points to test folder in P1
P2.test points to test folder in P2
Run CI/CD, you will see:
P0 built first
Then P1 + P0.Test
Then P2 + P1.Test
Then P2.Test
Should be
P0
Then P1
Then P2
Then P0.Test + P1.Test + P2.Test
Additional context (logs, screenshots, etc.)
No response

