5 ms·
I looked at their main page and got the impression this tool is not very / not at all useful - except perhaps for some niche I'm not in. > Earthly is a syntax
by einpoklum 5y ago
I looked at their main page and got the impression this tool is not very / not at all useful - except perhaps for some niche I'm not in.
> Earthly is a syntax for defining your build.
I already have syntax for defining my build.
> It works with your existing build system.
If I have a build system, or a build system generator, why do I need to redefine my build another way?
> With Earthly, all builds are containerized
Huh? What? Why? ... That's already a deal breaker. I don't want to be limited to building within containers.
> With Earthly, all builds are ... repeatable
Isn't that true for any decent build system?
> With Earthly, all builds are ... language agnostic
An ambiguous statement. Especially since a build process does depend, to some extent, on the language of the source files.
> Get repeatable and understandable builds today.
(shrug) more marketing talk.
> It's like Makefile and Dockerfile had a baby.
I don't want Dockerfile in the family, and as for Makefile - it's too low-level. Makefiles get generated these days (and have been for over 20 years for most software packages, IIANM.)
> No more git commit -m "try again" .
This has never been a problem for me.
(Well, ok, if there's network trouble, then downloading things during a build will fail; but Earthly can't magically reconnect a broken network.)
> "Earthly is a pragmatic and incremental solution to a thorny problem that all organizations face"
Which thorny problem is that? The "non-repeatable builds"? I'm confused.
- fishywang 5y agoMy thoughts exactly. I guess there's a niche for Mac/Windows developers to be able to run the build system on linux, because that's what their CI system runs (so it might fail for some issues that does not fail on their host machines), but most CI systems cannot run nested containers (because docker-in-docker requires some privileges), and as a result their CI system usually can not run this thing, which totally defeats the purpose.
- verdverm 5y agoEarthly is essentially a make/dockerfile syntax for a BuildKit frontend. If you understand and agree that BuildKit has value, than that's the jist of it. Agree with all your points for sure, but people need words on their landing page
- yagizdegirmenci 5y ago> > It works with your existing build system. > If I have a build system, or a build system generator, why do I need to redefine my build another way? There are build systems such as SBT, Maven, Webpack etc, Other build systems such as Bazel completely replaces them, what earthly offers is integration with them.
- pcj-github 5y agoThe comparison to Bazel here is really not appropriate. The core competency of Bazel is to know exactly the build graph and be able to do the minimum amount of work possible. I don't see how this (basically syntactic sugar over multi-stage docker builds) is going to scale in a large monorepo with hundreds or thousands of developers and still maintain CI build times on the order of minutes.
- agbell 5y agoHere is a small monorepo example. We build a DAG of dependencies between parts of the monorepo and only rebuild what is needed. This is different but similar to what Bazel does.
- einpoklum 5y agoI still don't understand. If you're using, say, SBT and you like it, why do you need Earthly again? And if you don't like it, why don't you replace it if it's possible to replace?
- agbell 5y agoHere is an SBT example[1]. Earthly is starting up the database dependencies, running the integration tests, tearing them down and other glue type things that need to happen when a complex build pipeline has dependencies and several steps. https://github.com/earthly/earthly/blob/main/examples/integration-test/Earthfile https://github.com/earthly/earthly/blob/main/examples/integr...
- mrmanner 5y agoIf you use both SBT and npm, for example, to build your full project, then having something to wrap them could be nice. That could be make or earthly or a random script. Also if you’re using SBT and you do like it, but you want something it doesn’t do, say shared caching. In that case Earthly could provide that but you can keep your existing build config intact. At the cost of added complexity, though.