I recently asked on the fediverse:

If you're a programmer and use a continuous integration system to build, test, and maybe deliver or deploy the software, what's your biggest annoyance or gripe? (Whatever CI system you use.)

I got a bunch of answers. Follow the link above for all of them, here is a biased summary:

  • it's too hard to write the specification for how a project should be built, tested, delivered, and deployed ("the pipeline")
    • it's easy to make mistakes
    • when something breaks, debugging is hard, partly because it is done remotely
    • it's easy to make mistakes, even catastrophic ones
  • even everything goes well, it takes too long for a pipeline to run successfully
    • concurrency is hard to exploit, especially correctly
    • it's hard to only build/test what is affected by changes, so many pipelines spend a lot of resources on building and testing everything
  • some people really don't like YAML, especially large amounts of YAML

The summary is biased, as that's what I was expecting to hear, based on personal experience.

I have been thinking about some solutions to annoyances like these, but I'm not yet ready to speak about them publicly. I hope to at least make a proof of concept prototype example demonstration of what I have in mind before I open up. (Which might mean I never do.)

Those willing to pay me my consulting rates to work on this please get in touch privately.