Is Hudson the perfect tool for complex C ++ builds?
I have C ++ build which is about 4 hours. Compile and packaging takes about 1/2 time and the test consumes the other half. Currently, we are using a home system but there are few steps to go to Hudson because we use it for all our Java constructions.
My problem is that continuous integration is not enough ... continuous 4 hour intervals should I need a tool that explain me parallel to a sensible creation.
Hudson has been very good for small construction or Java, where I am sitting on top of a large Maven project, but I do not think it will work well for the complex C ++ build.
What are your experiences?
It seems that you have some questions here:
- < Strong> Should I use the CI server to build my C ++ build? The answer is obviously yes your system of your house may be adequate, but this is not standard, it is possible to possibly expand, and by maintaining it is the job you actually paid for doing has gone. It's distracted.
- Hudson is the right choice for my project? Perhaps this work will be completed, and the benefit of having a deployment already on your site, however, you specifically mention that you want a tool that supports parallelism, and not me It seems that Hudson actually fits the bill. The problem is that Hudson was not made in the mind with parallelism, see Hudson is a "job" represented in the manufacturing process, which is a series of steps executed in sequence - checkout, compilation, testing, package etc. There is no way to get those steps to run in parallel. Now, you can get your process around by modeling it with many jobs. Every work is completely independent, so surely they can be run in parallel; You can use some kind of coordination of jobs, but the whole process should be more complicated, and Karkati - rather than doing one thing that represents the same part of the manufacturing process, you have many unrelated tasks, naming The best are tied through the conference.
- Is Electric Cloud Support? Again, a clear yes. Electric Cloud Provides Electric Commander, a CI server is built in parallel support from the time of installation. With Hudson, a job is used to represent the work, but it can easily be operated easily within a job (just check the "parallel" box on those steps), so that you can add an add- Ons and kludges: The process of making a run is a job, as well as with parallel phases as you.
- Did the right CI server "continuously" put me back in my integration? The ACE server is the only thing you will get so far, a CI server can provide you with a rough analogance - so by doing a little bit, you can set up to run packaging in parallel with the test, For example, with a little more work, you can probably split your test phase into some independent pieces that can be run in parallel.
& nbsp; & Nbsp; You have not given too many details, but suppose you have 90 minutes of compilation, 30 minutes of packaging, and 2 hours of testing which can be divided into four 30 minute pieces. Let's say you can packaging and test together. This will bring your 4 hour process to a total of 2 hours. At this point, your process has a "long pole" compilation phase, and although you can break the hands into pieces that can be run in parallel by your CI server, the truth is that the CI server is just the right tool for that job is not.
& nbsp; & Nbsp; A better option is to use a building tool that can give you automatic precisely synchronization within the compiled phase. For example, if you are already using gmake, you can trygmake -j8
to run 8 compilations simultaneously if your makeifiers are clean and your dependencies All are correct, and if you have a fleshy build server, then it can give you a great performance boost. You can also use electric accelerator, another product from the electric cloud, which was specially designed to speed up this part of the building process, even for those builds that are inaccurate or incomplete obstacles Can not usegmake -j
safely due to
Hope that helps.
Comments
Post a Comment