buildkite / feedback

Got feedback? Please let us know!
https://buildkite.com
25 stars 24 forks source link

Augment docs with guidance for how to host native packages? #380

Closed petemounce closed 6 years ago

petemounce commented 6 years ago

One of the problems I’d like to start to solve via introducing buildkite is distribution of builds and deployment. We have some of this done, but bespoke. I’m quite interested to see how hard it might be to change our existing builds so that they start to create native packages (via, probably, FPM: https://github.com/jordansissel/fpm/). At that point, I think our docker builds would become a lot more consistent, since they’d basically just add an apt repo and install the thing.

However, I’ve never hosted an apt repository (or an RPM one, come to that, though I've written homebrew and chocolatey packages before). It would be great to augment your docs to mention a bit about how to go about that, since you do that for distributing the agent. It strikes me as quite a nice addition since I doubt I'd be the only person with the same kind of challenge?

toolmantim commented 6 years ago

Package Cloud is an awesome service for this, and works really nicely with Buildkite: https://packagecloud.io/docs#buildkite

Our fpm usage is here for reference: https://github.com/buildkite/agent/blob/a58fe98264a095aea87ebf89735432e9be49668a/scripts/build-rpm-package.sh#L43

We're only a small team, so I can imagine it'll fall into the scope of our docs I'm sorry to say. I can imagine a plugin or two could help in the future, to wrap up some of these common workflows?

If you do end up having some good learnings to share, we'd be happy to feature it on the blog, or possibly work it into our docs too.

Thanks for the feedback though… it's good food for thought!

toolmantim commented 6 years ago

Also I'm sure we're happy to answer any questions about fpm/s3 hosting if you have them! Hit us up on Slack, or on support. @sj26 and @keithpitt have had the most experience so far.

sj26 commented 6 years ago

We publish our rpms using createrepo_c here, and upload the results to an s3 bucket called yum.buildkite.com:

https://github.com/buildkite/agent/blob/a58fe98264a095aea87ebf89735432e9be49668a/.buildkite/steps/publish-rpm-package.sh

And we publish our debian packages here using the excellent deb-s3 to apt.buildkite.com:

https://github.com/buildkite/agent/blob/a58fe98264a095aea87ebf89735432e9be49668a/scripts/publish-debian-package.sh

PackageCloud is great, though, if you just want to drop something in!

petemounce commented 6 years ago

Thanks for the links, I'll dig into those.