Live data from Hacker News

The worst thing about Jenkins is that it works (2019)

twitchard.github.io

141–150 of 275 posts

Re: The worst thing about Jenkins is that it works (2019)

#141
post #58
post #16

All of the test runners have their issues. I've had as much problems with Jenkins as I've had with Github Runners and similar solutions. The best way out of this is to subdivide responsibilities: - Put all build/publish/test logic in Makefiles or scripts in the repo. This means that devs can run it locally as well. The only interaction between a test runner and the codebase should be running `make `. - Put all permis…

>- Put all build/publish/test logic in Makefiles or scripts in the repo. This means that devs can run it locally as well. The only interaction between a test runner and the codebase should be running `make `. This always breaks because then each platform has a specific way of defining env vars or secrets for those Makefiles and bash scripts. End result is devs still can't really run CI "proper" the way it's configure…

You're correct. I sometimes forward my devs the script they need to run locally in order to replicate what Jenkins does. It has the looks of

    make  THIS=THAT AND_THIS=THAT AND_THAT_THING=SOME_OTHER_THING ETC=ETC
Sometimes it won't fit into a Slack message, so I attach it as a text snippet instead.

Re: The worst thing about Jenkins is that it works (2019)

#142

Earlier quoted context omitted.

OP's company is paying for a dedicated CI team. Unless they have special needs, they probably aren't concerned about the CI hosting costs themselves.

I’ve worked at some places that were pretty huge, but the finance department absolutely fucking nickle and dime over everything . Even the smallest EC2 instances had to be accounted for with a business reason that they would accept, with audits happening every few days. Asking for a licence for something upfront was like pulling teeth.

You were in a cost center, and/or your company had no concept of productivity.

Re: The worst thing about Jenkins is that it works (2019)

#143
post #16

All of the test runners have their issues. I've had as much problems with Jenkins as I've had with Github Runners and similar solutions. The best way out of this is to subdivide responsibilities: - Put all build/publish/test logic in Makefiles or scripts in the repo. This means that devs can run it locally as well. The only interaction between a test runner and the codebase should be running `make `. - Put all permis…

This is such a great point!

Your pipelines should mostly be CI provider agnostic and runnable from anywhere, including your laptop during development.

If you ever need to change a CI provider, you just move your pipelines.

I'm definitely biased, I'm working at Garden[0] which allows you to do just that but it's mostly applicable for teams using Kubernetes. I paused at your comment because Garden has sometimes been called "a makefile for the cloud".

Whatever tooling you use, having portable pipelines that you can iterate on and debug from your laptop is the only sane approach imo.

[0] https://docs.garden.io/overview/use-cases#faster-simpler-and...

Re: The worst thing about Jenkins is that it works (2019)

#144

> On a previous team I had used Concourse CI to some extent, but I wasn’t really blown away by the experience. Travis and Circle were mentioned. I was a fool. I should have committed to seriously researching some of the contenders and making a more informed decision, but I lacked the willpower and the discernment. The whole post can be summed up as he had very little CICD experience. Made lots of beginner mistakes, w…

This is "the worst part of Jenkins is that it works". You shouldn't judge a developer tool by just what is possible to do with the tool. After all, with a little turing-completeness it is possible to do anything with anything -- you should judge the tool by what is easy to do with the tool. A good developer tool shouldn't require knowledge of a bunch of arcana to "configure correctly". A good tool protects you from "…

I wasn't judging the tools. I use several of them and with 0 complaints.

I'm judging the article for being incorrect about it's specific points and for focusing on a single tool while the alternatives also suffer from the exact same issues.

Re: The worst thing about Jenkins is that it works (2019)

#146
cloud is so good now it’s hard to justify not doing something bespoke. ec2 spot is insanely cheaper than turnkey cicd, and better in almost every way.

i’m delighted to pay 30% over infra cost for convenience, but not 500%. and it better actually be convenient, not just have a good landing page and sales team.

this month i learned localzones have even better spot prices. losangeles-1 is half the spot price of us-west-2.

for a runner, do something like this, but react to an http call instead of a s3 put[1].

for a web ui do something like this[2].

s3, lambda, and ec2 spot are a perfect fit for cicd and a lot more.

1. https://github.com/nathants/libaws/tree/91b1c27fc947e067ed46...

2. https://github.com/nathants/aws-exec/tree/e68769126b5aae0e35...

Re: The worst thing about Jenkins is that it works (2019)

#147

Gitlab CI is still the best CI in the game IMO, but GitHub Actions gives it an incredible run for it's money because of how easy action re-use is. I meant to make a blog post about this, but here's a good a place as any: GitLab absolutely innovated many hard parts of CI/CD as a platform-native piece, but it feels like they lose slightly to GitHub on what GitHub does best -- social virality for developers. The problem…

How is Gitlab CI materially different from the jenkins model? I find that the only difference is that it's YAML - so even harder to debug, and maintains the same model where you must re run an entire pipeline every commit to test functionality.

You can run locally first to test functionality : - )

Re: The worst thing about Jenkins is that it works (2019)

#148
> Your editor won’t syntax highlight the Bash inside Groovy. You can’t run “shellcheck” (or any sort of Linter) on the Bash inside the groovy. You can’t very easily execute your shell commands to test them.

this lands, and not specifically for jenkins. CI generally is inscrutable and difficult to test

every CI has its quirk

github CI feels fundamentally worse than gitlab because job artifacts are native in gitlab -- this makes a million things easier. github's own action for attaching things to releases is deprecated. the upload-artifact action doesn't work in nektos/act (the only way to test locally)

Re: The worst thing about Jenkins is that it works (2019)

#149
post #35

Jenkins is rock solid. Been using it for three years to deliver highly critical software. The development experience is the worst of all ci tools since no one wants to setup jenkinspipelineunit to test the pipelines. Dagger might be the salvation here, but even that tool didn't support Jenkins out of the gate. And for those that are reading this, the statement about pipeline groovy being a trap is exactly right. Avoi…

> And for those that are reading this, the statement about pipeline groovy being a trap is exactly right. Avoid writing groovy at all costs. I disagree with this pretty strongly. I've worked with Jenkins where it was all freestyle jobs and it was a nightmare to maintain. Pipelines written in groovy are essential to doing Jenkins well, imo. It's also not exactly hard to write groovy. It's basically Java, not some weir…

I'd suggest you wait until you spend a whole day on script approval and @NonCPS idiosyncrasies before you define Jenkins pipeline Groovy DSL as "basically Java". This doesn't mean you shouldn't be writing it, you should — but for the reasons completely different from its supposed "similarity to Java".

Re: The worst thing about Jenkins is that it works (2019)

#150
Jenkins is amazing for one thing in particular, and I've not really seen it replicated well elsewhere (like gitlab ci): common job execution. Letting people run jobs on/against shared equipment, rather than having people run scripts locally.

I wouldn't recommend it for general CI other than that. Think of it like a butler, able to do small jobs, not as your complete home assistant.

Post reply on HN