Continuous Stack Integration with Visual C ++ and C #

Please recommend a good continuous integration that will build and integrate with the .net stack and visual C ++.

Some recommendations that I have

  • Jenkins
  • Cruisecontrol
  • Teamcity

Due to the poly-density of the project, would you recommend a solution for continuous integration?

+6
source share
5 answers

I have used all three for several years. Some of the answers below say that most of the work will be to create your own build scripts. This was true in my experience. We use a combination of MSBuild and Powershell scripts for our build process, which can be run under almost any CI tool, so choosing one of them comes down to what you are looking for in terms of configuration, integration with other systems, performance and ease of use.

Short answer:

I recommend Jenkins. So far, this is the best combination of these qualities. It has a ton of plugins, some localization and is actively developed by the OSS community.

Long answer:

  • I started with Cruise Control.Net. It was easy to configure with a text file, and I found it very reliable. However, we moved away from him because Thoughtworks was moving toward paid products (Cruise, now Go), and future development was in question. Since then, the new team forged the project, but since then little is known about the future development.
  • We switched to TeamCity, which is free and has an excellent ajax-y user interface. It is easy to set up and get started, as well as many features for distributed assemblies. We stop using TeamCity for several reasons. The server does a ton of things, and it was a bit redundant for our basic needs. However, this was not very customizable (see "Time Zones" and "Notification"), and we often found that the administration user interface was confusing. Everything was in order, but our performance problems were also steadily worsening. We started with the standard release of HSSQLDB, moved our installation to the SQL server when we started to experience degraded performance, and then we had to completely abandon the use of the server because performance continued to deteriorate over time. I'm not sure I was the culprit, but I could not find any cleanup for this, which would explain the constantly deteriorating performance, as the Tomcat web server fought against SQL Server for resources, even if there were no active moves. I am sure that this is my fault and I didn’t have enough of some important settings or to direct the server more memory, but this is a common service box, we did not have these problems with CC.Net, and most importantly, I not Java / Tomcat, and they don’t have too much time to deal with these problems.
  • We have now moved to Jenkins. Everything seems to be working fine now, but we were not with him for long. It was easy to set up, it seems there aren’t as many resources as TeamCity, and it has a ridiculous amount of plugins. The only drawback so far is similar to many OSS products, it does not seem to have the best documentation, and it does so much that I can tweak the handles a bit to tweak it the way we want.
+5
source

Between CruiseControl and TeamCity TeamCity is faster and easier to set up, but you may need to check its license. I can't talk to Jenkins without ever using him.

+2
source

Jenkins has the great advantage of being very extensible (currently more than 400 plugins), which allows him to be combined with a huge number of other tools. Thus, it gives you complete freedom in choosing another tool. I recently read that this is one of the TeamCity problems that you blocked when using the entire set of tools (for example, using SVN or Git, since the version control system will be impossible).

I myself use Jenkins for our projects that have Java and C ++ code, and I am very pleased with this tool. We used to have CruiseControl, and we never regretted this switch.

+1
source

I tried both Cruise Control and Jenkins, and Jenkins impressed me with a very quick and convenient setup.

The three lists you list are reasonable, and the main problem will be to create the assembly script (s) needed to create the artifact (s) of the assembly. If you manage to get them to do what they need, changing the CI system should not be a big problem.

+1
source

After implementing all three in different stores, I chose all of the above. Choose one.

0
source

Source: https://habr.com/ru/post/901966/


All Articles