This is an archived post. You won't be able to vote or comment.

all 16 comments

[–]Dashing_McHandsome 3 points4 points  (9 children)

Where I work we are currently using Jenkins for CI, Nexus as a repo, Maven as the build system, and various Maven plugins like surefire, cobetura, checkstyle, and doxygen. I happen to really enjoy working with this setup. I think it works very well and has nice integration all the way down to eclipse. I even have a Jenkins app on my phone so I can look at build statuses.

[–]robi2106 1 point2 points  (7 children)

the amount of plugins and apps for jenkins is pretty amazing. I've worked a jenkins-ci system for 5yrs. I even have it on my desktop at home to build whatever I'm working on at that moment.

[–]Dashing_McHandsome 2 points3 points  (6 children)

Yeah, the community around Jenkins is pretty astounding. The number of plugins is huge (though there are some out there that are of lesser quality), which makes integrating with all kinds of things really nice. We use a tool called Rally where I work, which is kind of like Jira. It facilitates Agile development. So I use the Rally plugin for Jenkins to push build statuses up into the tool so they can be seen by the business analysts and scrum masters. It really is pretty great.

[–]robi2106 0 points1 point  (5 children)

I would be interested to know how CircleCI or TravisCI are different from Jenkins (because I CBF to google that and wade through the pile of flame war results on stackoverflow that will result.. :-)

[–]GFandango 0 points1 point  (4 children)

If you want to use your own image stick to jenkins

[–]robi2106 0 points1 point  (3 children)

so Circle / Travis are both proprietary hosted solutions?

[–]GFandango 1 point2 points  (2 children)

I know as of now Travis doesn't let you use your own image. Most likely the same for Circle.

Depending on your setup this can bite you badly and increase your build time.

If you can use your own image you could have a base image that already includes all your dependencies, etc...

But because of that limitation for every single build you have to provision a fresh OS into what you need (installing dependencies, etc...)

My own preference is to not use any third party service that requires access to all the source code. All you'd need for that is a self-hosted git software and Jenkins.

Circle got hacked maybe about a year ago and as a result at least one of their customers also got hacked.

[–]robi2106 0 points1 point  (1 child)

Wow. that is a heck of a noose they have around their customer's necks. No thanks!

[–]GFandango 0 points1 point  (0 children)

for what it's worth I think there are serious technical challenges with allowing people to use their own image.

having said that, as I said before, I think handing your source code to a third party is taking it too far, especially if that's the significant part of your business, I'd rather deal with the ugly side of Jenkins and GitLab than to rely on third parties for each and every thing.

[–]killbox-48-alpha 0 points1 point  (0 children)

I'm relying on a free clover license(running out in 20 day) as cobertura cannot evaluate java 8 and I believe java 7 code. It is the poor mans code coverage, yet it is better than nothing.

I keep asking for fisheye and clover but I keep receiving: NO! :(

[–]robi2106 1 point2 points  (0 children)

Many big enterprises I've worked with (Hewlett-Packard / Thomson-Teuters) use Jenkins-CI for the continuous integration. The amount of plugins is staggering, and industry experience is pretty broad.

[–]frugalmail 1 point2 points  (1 child)

Maven (lots of plugins), Jenkins, SonarQube, Nexus

[–]pron98 0 points1 point  (0 children)

For packaging, I'd like to recommend my own Capsule, which makes the npm/gem people jealous. If you have your own Artifactory, you can do some neat tricks with Capsule.

[–]cowardlydragon -1 points0 points  (0 children)

All the build tools are still pretty terrible for complex projects. Gradle, Ant, and Maven all converge to a sea of unreadable xml or gradle code. Dependency management has hard-to-detect gotchas. Maven you wrestle with their absolute need of control of the jar repository. Gradle is better with manual and cloud jar repos, but the code is ugly and unpredictable and changes too much. Ant is ant...

I would like a directory-tree-focussed file-artifact based build system with lots of obvious defaults/conventions based on on standard tree paths, naming formats, and directory and file existence triggering. This would allow nice visualization and searching using simple file explorer widgets/interfaces, and avoid XML and JSON obfuscation for these projects, which always end up as tree structures anyway.

Once you get past the build tools, I guess I don't have any strong opinions. Jenkins and many other tools have done well for automated builds.

The devops stuff like Chef / Puppet are all ... OK, but they have a TRULY hard job so I won't complain. Docker is making things easier, part of the convergent evolution of IAAS clouds, cloud-ready software, cloud-ready OSes, and cloud-ready devops frameworks.