Building a CI/CD Pipeline Runner from Scratch in Python

(muhammadraza.me)

42 points | by mr_o47 3 days ago ago

9 comments

  • systemerror 5 hours ago ago

    Why does air-gapped environment require rolling your own CI/CD solution? Plenty of examples of air-gapped Jenkins and/or Argo Workflows. Was this just an educational exercise?

    • verdverm 2 hours ago ago

      Jenkins sucks but is insanely reliable

      Argo Workflows does not live up to what they advertise, it is so much more complex to setup and then build workflows for. Helm + Argo is pain (both use the same template delimiters...)

      • bigstrat2003 40 minutes ago ago

        Jenkins, like many tools with extreme flexibility, sucks as much as you make it suck. You can pretty easily turn Jenkins into a monstrosity that makes everyone afraid to ever try to update it. On the other hand, you can also have a pretty solid setup that is easy to work on. The trouble is that the tool itself doesn't guide you much to the good path, so unless you've seen a pleasant Jenkins instance before you're likely to have a worse time than necessary.

        • IshKebab 25 minutes ago ago

          Are you sure, because last time I used Jenkins it actively sucked. The interface was a total mess and it doesn't surface results in any useful way.

    • mr_o47 5 hours ago ago

      This was more like an educational exercise

      • esafak 4 hours ago ago

        Since you're exercising, you can take it to the next level where you don't specify the next step but the inputs to each task, allowing you to infer the DAG and implement caching...

        • verdverm 2 hours ago ago

          You can do this with cue/flow, but have not turned it into a full CI system. The building blocks are there

          • mr_o47 an hour ago ago

            Never heard of cue/flow will definitely check it out

    • piker 2 hours ago ago

      It seems like a simple CI/CD in an airgapped environment might be simpler to implement than to (1) learn and (2) onboard an off-the-shelf solution when your airgapped requirement limits your ability to leverage the off-the-shelf ecosystem.