observatorium / obsctl

A cli to interact with Observatorium instances.
Apache License 2.0
10 stars 14 forks source link

Add binary generation for releases #47

Closed saswatamcode closed 2 years ago

saswatamcode commented 2 years ago

This PR adds support for binary generation for different platforms during release. It uses promu and a CircleCI job to automate this (the config has been mostly copied from Thanos). Would need some maintainer help in setting this up in CircleCI. 🙂

This addresses the discussion in #38. This project will still be installable via go install.

I've used promu here as that is what I'm familiar with and is also used by larger projects like Thanos, Prometheus, Alertmanager etc. Feel free to recommend alternatives that might be better!

douglascamata commented 2 years ago

I love to use GoReleaser for these cases. It's easy to use and does the job very well.

matej-g commented 2 years ago

I love to use GoReleaser for these cases. It's easy to use and does the job very well.

Hm yes, I think there were also some discussion in Thanos about switching to GoReleaser, but as of now it looks like most projects in our ecosystem use promu as @saswatamcode said in description and that's probably what we have most experience with.

So I'm not opposed to using promu for this initial work and we could evaluate GoReleaser sometime in the future again. WDYT @saswatamcode @douglascamata?

saswatamcode commented 2 years ago

Sure, I think GoReleaser might be a great alternative that we can/might need to adopt in the future (even for other projects)!. Let's try promu for now, and see if we face difficulties! It might be good to contribute and fix things upstream too so that projects using promu in the ecosystem can benefit from it! 🙂

I don't feel too strongly about this either way!

douglascamata commented 2 years ago

I prefer using GoReleaser for being accessible and simple to use. There is a small subset of Go devs out there (mostly people involved in project in the Prometheus ecosystem) that know about promu and how to use it, while there are plenty that have had some experience with GoReleaser. I noticed that promu has very little documentation that I would find, while GoReleaser has plenty.

douglascamata commented 2 years ago

Please don't consider my comment a blocker though. 😄

saswatamcode commented 2 years ago

Sure! I think we kind of fall within the small subset of Go + Prometheus ecosystem, especially with Observatorium being an adjacent org to Thanos. There is a push within ecosystem to move to GoReleaser too e.g https://github.com/thanos-io/thanos/issues/5343. So I think it might be worth moving to GoReleaser when more mature projects do, as that way we'll have potential things to reuse like configs or even things like CircleCI orbs. 🙂