Open PhracturedBlue opened 5 years ago
I actual don't mind to have a longer runtime for travis. Normally my project in the work take about 45minutes to finish. I would prefer to add all targets into travis-ci.
because I like to have a quick response to a change if it is broken
Matrix is faster, since usually, at least four builds are running in parallel and each is less than two minutes. Nightly takes over nine minutes until we get first results.
Check PR #578
I'm not sure how travis reports build time. I would expect that the nightly build will fail really quickly if we break devo8 or devo10 since they build 1st, so even the monolithic build may be faster than the matrix build in the fast-fail as well as the full-run case. And with a monolthic build we could probably increase parallelism and see further benefit (I'm not sure how travis allocates resources, so maybe not). On the other hand, the logs from monolithic builds are more difficult to parse.
When I've worked with gitlab or Jenkins CI, I am able to setup sophisticated multi-stage builds where you can have a common setup and then parallelize just the build stage. and treat each part as its own stage. This could be helpful, because we do not really benefit from having separate VMs for each matrix target, and the setup time is significant.
Did u try this? https://docs.travis-ci.com/user/build-stages If not I can take a look today.
From what I've read, each build stage job is run in a separate VM, so this wouldn't give any gain.
my idea is first stage just build some basic targets like what we do today. second stage build zips which run a full build. so if it breaks the common targets, you will notice immediately.
On Sun, Jan 13, 2019 at 5:09 PM TheRealMoeder notifications@github.com wrote:
From what I've read, each build stage job is run in a separate VM, so this wouldn't give any gain.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/DeviationTX/deviation/issues/577#issuecomment-453813651, or mute the thread https://github.com/notifications/unsubscribe-auth/AAuzRL8ahRaWvPn9nVoj7cjx98VNj69gks5vCvfXgaJpZM4Z8u2m .
-- -Howard
basically fail fast approach.
On Sun, Jan 13, 2019 at 5:23 PM Howard Su howard0su@gmail.com wrote:
my idea is first stage just build some basic targets like what we do today. second stage build zips which run a full build. so if it breaks the common targets, you will notice immediately.
On Sun, Jan 13, 2019 at 5:09 PM TheRealMoeder notifications@github.com wrote:
From what I've read, each build stage job is run in a separate VM, so this wouldn't give any gain.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/DeviationTX/deviation/issues/577#issuecomment-453813651, or mute the thread https://github.com/notifications/unsubscribe-auth/AAuzRL8ahRaWvPn9nVoj7cjx98VNj69gks5vCvfXgaJpZM4Z8u2m .
-- -Howard
-- -Howard
How is this going to be faster than current approach with (expanded) matrix? Currently we have first results for major targets within a minute. Also, we have small logs and at a glance you can see which target fails.
Current approach, we need go to click the link to travis website to find out when the job is running. the status only reports back when the job finish. I just want something which can fail if some early targets already failed before long running job (make zips).
If I'm not mistaken, if one of the Travis matrix jobs fails, we already get the red x in GitHub for the commit. Build time is around 20 seconds per target, about 40 seconds are needed for setting up the VM before the build begins. So having more than 3 builds in each Travis job will not be anymore efficient. I guess one option would be to make matrix of 5 for the larger targets (each major transmitter/emu line: black and white, color, text, emu, winemu) where zips for all "subtargets" are build and the build script posting a GitHub status back for each individual target.
if that's the case, my suggestion doesn't matter.
I think your suggestion works. maybe you want another target other than zips.
On Sun, Jan 13, 2019 at 7:38 PM TheRealMoeder notifications@github.com wrote:
If I'm not mistaken, if one of the Travis matrix jobs fails, we already get the red x in GitHub for the commit. Build time is around 20 seconds per target, about 40 seconds are needed for setting up the VM before the build begins. So having more than 3 builds in each Travis job will not be anymore efficient. I guess one option would be to make matrix of 5 for the larger targets (each major transmitter/emu line: black and white, color, text, emu, wine) where zips for all "subtargets" are build and the build script posting a GitHub status back for each individual target.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/DeviationTX/deviation/issues/577#issuecomment-453822392, or mute the thread https://github.com/notifications/unsubscribe-auth/AAuzRKMSCun8KBOhh9mpvNNEFjF9gquvks5vCxqjgaJpZM4Z8u2m .
-- -Howard
shall we at least add at9, devof4 into the build matrix?
at9 should already be there today. I'm not opposed to adding f4
yes. why at9 is like TARGET= but others are MAKETARGET. what's the difference?
On Fri, Jan 18, 2019 at 8:12 AM PhracturedBlue notifications@github.com wrote:
at9 should already be there today. I'm not opposed to adding f4
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/DeviationTX/deviation/issues/577#issuecomment-455379767, or mute the thread https://github.com/notifications/unsubscribe-auth/AAuzRAvH93bHf76izi4eQTRKkdPHBjTbks5vERF9gaJpZM4Z8u2m .
-- -Howard
there shouldn't be any. probably just added incorrectly
Currently our target matrix for travis does not cover all of the targets in the nightly build. Additionally, the travis build takes almost twice as long to run the matrix as the nightly build (which has more targets). The primary reason for the matrix build was to reduce runtime, and we seem to be failing at that. We need to rethink the travis build setup