You are viewing a single thread.
View all comments
44 points
*

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.

permalink
report
reply
22 points

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.

permalink
report
parent
reply
14 points

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.

permalink
report
parent
reply
5 points

What about related tools such as viewing artifacts such as for example total memory usage, and graphing that in the browser.

And sending emails, messages etc in case of a failure or change.

permalink
report
parent
reply
3 points

Most of those things mentioned aren’t bona fide needs for me. Once a developer is deploying their project, they’re watching it go through the pipeline so they can quickly respond to issues and validate that everything in production looks good before they switch contexts to something else.

I see what you’re saying though, depending on what exactly is being deployed, the policies of your organization, and maybe expectations that developers are working in another context once they kick off a deployment, it could be necessary to have alerting like that. In that case it may be wise to flex some features of your CICD platform (or build a more robust script for deployment that can handle error alerting, which may or may not be worth it).

permalink
report
parent
reply
1 point

I come from game dev. We do lots of checks on the data that all kinds of people can screw up. So it’s important these situations are handled automatically with an email to the responsible person. A simple change can break the game, or someone might commit an uncompressed texture so the memory usage jumps up.

permalink
report
parent
reply
4 points

Yeah, except for the Docker part

permalink
report
parent
reply
9 points

What’s wrong with Docker?

permalink
report
parent
reply
6 points

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

permalink
report
parent
reply
2 points

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.

permalink
report
parent
reply
2 points

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.

permalink
report
parent
reply
2 points

Then you would probably enjoy concourse

permalink
report
parent
reply

Programmer Humor

!programmer_humor@programming.dev

Create post

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

  • Keep content in english
  • No advertisements
  • Posts must be related to programming or programmer topics

Community stats

  • 3.3K

    Monthly active users

  • 1K

    Posts

  • 38K

    Comments