this post was submitted on 11 Aug 2023
546 points (95.5% liked)

Programmer Humor

19735 readers
619 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 39 points 1 year ago* (last edited 1 year ago) (6 children)

Real talk- I agree with this meme as truth.

The more and more I use CICD tools, the more I see value in scripting out my deployment with shell scripts and Dockerfiles that can be run anywhere, to include within a CICD tool.

This way, the CICD tool is merely a launch point for the aforementioned deployment scripts, and its only other responsibility is injecting deployment tokens and credentials into the scripts as necessary.

Anyone else in the same boat as me?

I’d be curious to hear about projects where my approach would not work, if anyone is willing to share!

Edit: In no way does my approach to deployment reduce my appreciation for the efforts required to make a CICD pipeline happen. I’m just saying that in my experience, I don’t find most CICD platforms’ features to be necessary.

[–] wso277 23 points 1 year ago

This is pretty much what we do as well

All the build logic is coded in python scripts, the jenkins file only defines the stage (with branch restrictions) and calls the respective script function.

This means it works on all machines and if we need to move away from jenkins integration with a new ci platform would require minimal effort.

[–] [email protected] 14 points 1 year ago

You're not advocating against CI like the meme seems to be, but rather for CI builds to be runnable on human's machines and the results should be same/similar as in when running w/in the CI system. Which is what CI folks want anyway.

[–] SpaceNoodle 4 points 1 year ago (1 children)

Yeah, except for the Docker part

[–] gornius 9 points 1 year ago (1 children)
[–] SpaceNoodle 6 points 1 year ago (1 children)

TBF, the problem isn't Docker, it's overused containerization

[–] [email protected] 10 points 1 year ago (1 children)

I’ve found Docker helpful when I want to use it to build binaries or use CLI tools that may not be available directly on the CICD platform. Also, Docker makes it easier to run the same code on MacOS that I ended up running on a Linux CICD server.

What would you consider to be overuse of containers?

[–] SpaceNoodle 3 points 1 year ago

Snap is a good example of container madness.

[–] [email protected] 2 points 1 year ago

Honestly, CI is only meaningful on bigger projects (more than 100 man-hours invested in total). So I most often go without.

But I do see its point.

[–] devious 2 points 1 year ago

I don't think there is a single right or wrong answer but to play devils advocate making your CI tooling lightweight orchestration for your scripts that do the majority of the work means you lose the advantages of being able to easily add in third party tools that you want to integrate with your pipeline (quality, security, testing, reporting, auditing, artefact management, alerting, etc). It becomes more complex the more pipelines you are creating while maintaining a consistent set of tooling integrations.

[–] [email protected] 1 points 1 year ago

Then you would probably enjoy concourse