this post was submitted on 12 Apr 2024
114 points (97.5% liked)

Programming

16768 readers
87 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] Olap 5 points 4 months ago (5 children)

You know what's a hard pill to swallow for Jenkins haters? It's likely older than your career, and is going to outlive you too. Like bash, and C, and gnu-utils.

Want to appear godlike in any org? Learn a tiny amount of groovy and read the pipelines pages - https://www.jenkins.io/doc/book/pipeline/

Jenkins is battle tested, Jenkins is likely already in your org, and replacing it for anything else is almost not worth the time from a strategic perspective. But it isn't perfect, testing it in particular - a pain in the ass

So here's the best tip: skinny Jenkinsfiles. When you use a sh: have it run a Makefile command, or your build tool command. Keep them short single line things. Don't rely on massive ENVs. Dockerfiles for most stuff. Dynamic container agents in the cloud are actually good. Learn to use archiveArtifact, integrate with test report plugins. Learn about parallel pipelines.

[–] [email protected] 3 points 4 months ago

Yeah, this is something I stressed at my place. Your Jeninksfile should set up environment variables, authentication related stuff, and call out to some build tool to build the project. The Jenkinsfile should also be configure to use a docker container to run the build within. In projects at my place that's a Docker file on the project that ultimately sets up and installs all the tools and dependencies required for a valid build environment that's just checked in along side the Jenkinsfile.

load more comments (4 replies)