Skip to content

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

6 pointsStreamBright7 comments
On 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.

Comments

You want to take a look at Earthly. https://earthly.dev/

This gives you a mix of docker and a makefile.

The best bit is you can test your pipeline locally and you are vendor agnostic.

I'm using it here https://github.com/purton-tech/cloak

I guess this is exactly what I was looking for. Thanks a million!

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 …

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!

i’ve liked github actions for this. i used it on WebReducer (https://github.com/zekenie/web-reducer)

Does it work with Arm?

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.