Live data from Hacker News

Ask HN: What CI/CD server/service do you use?

news.ycombinator.com

11–20 of 32 posts

Re: Ask HN: What CI/CD server/service do you use?

#12
I use GitLab not only because it's built in but because I've also had a really smooth experience with them.

They might be slower than others, but imo all development is made locally so I don't mind if sometimes it takes more than 5 minutes (used to take longer but they have improved a lot!).

I've only waited for like 30 minutes once. I would definitely recommend it.

Re: Ask HN: What CI/CD server/service do you use?

#13
After being a Jenkins person for years I recently started playing around with Visual Studio Team Services, Microsoft's hosted TFS product: https://www.visualstudio.com/team-services/.

You don't have to use TFS as the backend as git is supported and all of your build and release stuff is under the same roof. They have added a lot of "tasks" for most of the popular languages but worst case is you can always run shell commands to do stuff.

The UI leaves a bit to be desired (I think) but for the most part I can live with it.

Full disclosure, I work at MSFT but have been a Linux/Open Source/non-ms person for most of my career.

EDIT: With all of that being said I do like Gitlab because it offers many of the same features (code repo, builds, etc) and am using Gitea/Gogs on my own VM for repo mirroring from Github.

Re: Ask HN: What CI/CD server/service do you use?

#14

I'm using GitLab CI. I use GitLab.com for the free private git project hosting. GitLab.com has free CI servers available (even for private projects) that work well if you don't need to run builds all the time. A lot of people use their shared CI runners, so your jobs/builds might take several minutes before they start running. If you have a larger need, you can always host your own runners (software is FOSS). GitLab'…

Do you use it for building docker images? I can't work out how to tag my images with versions. They all become "latest". Do I have to change the gitlab config file every push?

Re: Ask HN: What CI/CD server/service do you use?

#15
post #4

We use Jenkins, hosted on Amazon. We're .NET stack, so some of the other options didn't work. Biggest lesson for us: Avoid putting all your logic into Jenkins templates. You're not capturing your CI/deployment logic in version control, and this can cause problems down the road (we backed up Jenkins regularly, but versioning was a weak point). Instead, do as much as you can in scripts, and use Jenkins as a glorified c…

> Biggest lesson for us: Avoid putting all your logic into Jenkins templates. You're not capturing your CI/deployment logic in version control, and this can cause problems down the road (we backed up Jenkins regularly, but versioning was a weak point). We've found the Job DSL plugin pretty useful for backing jobs up. https://wiki.jenkins-ci.org/display/JENKINS/Job+DSL+Plugin

I'd also second the Job DSL plugin if you want to keep all your Jenkins config in version control.

Its also worth looking at replacing all your freestyle jobs with Jenkins Pipeline and have the job definition defined in a Jenkinsfile in your repository. We've got a new syntax coming out of beta shortly that makes the experience a lot more declarative thats worth a look https://github.com/jenkinsci/pipeline-model-definition-plugi...

Re: Ask HN: What CI/CD server/service do you use?

#16

After being a Jenkins person for years I recently started playing around with Visual Studio Team Services, Microsoft's hosted TFS product: https://www.visualstudio.com/team-services/ . You don't have to use TFS as the backend as git is supported and all of your build and release stuff is under the same roof. They have added a lot of "tasks" for most of the popular languages but worst case is you can always run shell…

Have you taken Jenkins Blue Ocean [1] and Declarative Pipeline [2] for a spin since moving to TFS? We are quickly modernising everything from the UI to the way you manage your Pipelines in version control. Would be very interested in getting your thoughts on how we stack up now vs your past experience :)

[1] https://jenkins.io/projects/blueocean/ [2] https://github.com/jenkinsci/pipeline-model-definition-plugi...

Re: Ask HN: What CI/CD server/service do you use?

#17
post #14

I'm using GitLab CI. I use GitLab.com for the free private git project hosting. GitLab.com has free CI servers available (even for private projects) that work well if you don't need to run builds all the time. A lot of people use their shared CI runners, so your jobs/builds might take several minutes before they start running. If you have a larger need, you can always host your own runners (software is FOSS). GitLab'…

Do you use it for building docker images? I can't work out how to tag my images with versions. They all become "latest". Do I have to change the gitlab config file every push?

I came to second Gitlab CI. I build all of my docker images in Gitlab CI and tag them. The trick is to use the gitlab ci environment variables (I tag with with the git tag or the git branch name depending using this method). If you would like to get a bit more help, feel free to email me. My username here at gmail.

Re: Ask HN: What CI/CD server/service do you use?

#18

I use GitLab not only because it's built in but because I've also had a really smooth experience with them. They might be slower than others, but imo all development is made locally so I don't mind if sometimes it takes more than 5 minutes (used to take longer but they have improved a lot!). I've only waited for like 30 minutes once. I would definitely recommend it.

For my larger business projects (the ones that make money) I finally broke down and ran my own runners. I never have to wait anymore!

I do love gitlab ci.

Re: Ask HN: What CI/CD server/service do you use?

#19
post #14

Earlier quoted context omitted.

Do you use it for building docker images? I can't work out how to tag my images with versions. They all become "latest". Do I have to change the gitlab config file every push?

I came to second Gitlab CI. I build all of my docker images in Gitlab CI and tag them. The trick is to use the gitlab ci environment variables (I tag with with the git tag or the git branch name depending using this method). If you would like to get a bit more help, feel free to email me. My username here at gmail.

That's very kind of you. Thanks. I think I understand how you do it. You just tag the git commit and get that value in the build by using $CI_BUILD_TAG?

The description for that variable says it's only available when building a tag. Does that just mean the commit needs to be tagged before a push?

Update: I just found this, which is probably exactly what I want to do: https://github.com/gitlabhq/gitlab-ci/issues/637

Update 2: Wait. What? This doesn't sound right. Now I'm confused: https://docs.gitlab.com/ce/ci/yaml/#tags

Update 3: It seems those are 2 different types of "tag", both mentioned in the same configuration subobject. Crazy.

Re: Ask HN: What CI/CD server/service do you use?

#20
I use Codeship [1] for personal (private) project and Travis CI [2] for open source ones. I had also use AppVeyor [3] for one of my Windows web app project.

I chose Codeship since it was the only one (at the time) that had BitBucket integration. The free tier (100 builds / mo) was more than enough for my side projects. In addition, it supports a lot of deployment targets (e.g. ElasticBeanstalk and Heroku).

I use Travis CI for open source projects initially since it is what everyone uses :) However, one feature that I find really useful is the test matrix. I used it to test my project against different Java version and Cassandra distribution versions [4].

I use AppVeyor on one of my side project (which lies dormant now) since needing to test against both *nix and Windows build (a .NET / Mono web application).

[1] - https://codeship.com/

[2] - https://travis-ci.org/

[3] - https://www.appveyor.com/

[4] - https://github.com/builtamont-oss/cassandra-migration

Post reply on HN