Ask HN: Which CI/CD do you use for a monorepo?

6 points by StreamBright ↗ HN
I am looking or the simplest (ideally YAML free) CI/CD that uses either Dockerfiles, worse YAML files to trigger builds.

I would like to place a file to a folder that has specific instructions how to build the projects.

Example:

- repo/backend/api

- repo/frontend/www

- repo/frontend/app

I would like to have 3 files that define how each folder builds. Api might be Python and deployed to arm64, www is static html, css, etc. deployed to a CDN.

I do not understand why the major CI/CD vendors have a convoluted YAML hell with custom images and commands when we have Docker for 10 years. In last 10 years non-of the CI/CD vendors I know of created a platform where I can use a Dockerfile that references a public or private image that I can use to build my project. At this stage I am only AWS Codebuild that allows the use of Docker image from ECR but I still need to do YAML.

Is there a company that has a super simple CI/CD that would be 5 minutes to set up?

We have wasted couple of weeks on CircleCI and whenever we need to change it is a major pain and it takes hours to find out which YAML line has an incorrect indentation or why a certain tool breaks when used on a "orb".

I am just getting tired of these.

7 comments

[ 0.25 ms ] story [ 29.0 ms ] thread
Hi there! Dagger (https://dagger.io) contributor here. Looks like Dagger could be a very nice fit for what you're looking for; it allows you to define your pipelines in either Go, Python or Typescript/JavaScript (more languages to come) as well as targeting multiple CPU platforms. Regarding monorepos, here's a link on how Dagger makes that experience quite nice: https://youtu.be/vJfoyN77fo0

If you have any questions or need any further help, happy to connect in our discord server!

Cheers!

You can try out SparrowCI (https://github.com/melezhik/SparrowCI) -it’s simple and could be self-hosted. It builds on docker images, so if you spin up an SparrowCI on arm64 host you should be probably good. It’s not possible to have 3 separate CI pipelines but you can organize repo pipeline in such a way that it’s split by 3 or many tasks to cover different parts of your system.
… but probably, if you need to build a Docker image SparrowCI is not a fit, however there is probably a simple fix to allow to do that …