Hi Bjoern,

Thanks for the pointers! I don’t think Earthly needs to necessarily replace
promu. Or at least not entirely, and not all at the same time. Conceivably,
it’s possible to set up Earthly to work kinda like a pass-through for the
promu commands.

I’m not familiar with the challenges of the Prometheus build, so I’ll try
to list a few *possible* benefits. I’m shooting in the dark here - emphasis
on “possible” :-)

   - In general, build scripts not captured by promu run containerized when
   ran through Earthly. This helps with keeping everything reproducible.
   (Earthly can also run things natively
   <https://docs.earthly.dev/earthfiles/earthfile#locally-experimental>, if
   that is needed - but it’s not the default). If promu is ran in Earthly,
   then it can optionally run containerized, eliminating any
   environment-specific variance.
   - Changes to the CI scripts can be tested locally, thus helping with the
   iteration speed when changing the build in any way.
   - Integration tests for client libraries can execute in a containerized
   environment. This helps with putting together the right language-specific
   dependencies, and also possibly set up matrix testing, to test against
   multiple versions of the client’s language. Such tests can execute isolated
   from one-another and in parallel.
   - For setups where many languages and repos interact with each other,
   Earthly has very powerful cross-repo import mechanisms if needed to bring
   everything together for integration testing. For example, if another
   project needs promu, it can be as easy as something like COPY
   github.com/prometheus/promu+promu/promu ./. You can also control
   versioning, tags, branches, etc. through build args.
   - Multi-platform support allows testing against other architectures
   (e.g. arm64). In Earthly, this works really well via QEMU under the hood.
   - If migrating from one CI vendor to another, migrating to Earthly first
   helps abstract away the CI. This helps reduce CI vendor lock-in, in case
   Circle decides to do what Travis did.
   - Compute intensive steps (if there are any) can be cached and not
   repeated if the inputs have not changed. In Earthly, this can work
with a remote
   cache <https://docs.earthly.dev/guides/shared-cache> too.

If any of this seems interesting, I’d be happy to put together a demo PR to
POC a particular benefit. Also open to hearing of any specific challenges
the community has with the build.

Cheers,
Vlad.

On Thu, Mar 18, 2021 at 8:43 AM Bjoern Rabenstein <[email protected]>
wrote:

> On 17.03.21 11:43, Vlad A. Ionescu wrote:
> >
> > Not sure if this is the right place for this question. Wondering if
> anyone
> > is interested in trying https://github.com/earthly/earthly for the
> > Prometheus build.
> >
> > Earthly could help with reproducing CI failures locally (via containers)
> > and for performing multiple isolated integration tests in parallel.
> >
> > It works well on top of Circle CI.
>
> The Prometheus project has its own organically grown build system, see
> https://github.com/prometheus/promu , and rather elaborate CircleCI
> setup. Not saying that's a perfect solution, but any new solution
> needs to meet that bar, plus justify the effort and friction of
> changing by some added relevant value.
>
> From that perspective, perhaps the first step should be to clarify
> what would improve and what would change, and then convince
> stakeholders that they actually want and need the improvements.
>
> --
> Björn Rabenstein
> [PGP-ID] 0x851C3DA17D748D03
> [email] [email protected]
>

-- 
You received this message because you are subscribed to the Google Groups 
"Prometheus Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/prometheus-developers/CAO_OUmMq9h4HAWxqOCnoWQjM5Eqb753iEpL%2B%3D%3DATfmx6mdHzBQ%40mail.gmail.com.

Reply via email to