4 ms·
How come Bun uses Buildkite instead of self-hosting the CI infra?
by JustSkyfall 2mo ago
How come Bun uses Buildkite instead of self-hosting the CI infra?
- simonw 2mo agoPresumably because they "build for [macOS, Linux, FreeBSD, Android, Windows] x [ARM64, x64]" and self hosting all of that would be time-consuming and expensive.
- CamouflagedKiwi 2mo agoProbably because they don't want to self-host Windows or MacOS servers when they can pay someone else to do that for them (or Linux ones, I assume that is within their wheelhouse for production but CI is a bit of a different beast to model inference).
- Jarred 2mo agoIt spawns ephemeral EC2/Azure instances, which is a lot cheaper than the GitHub actions runners we used before that. We shard to a lot of machines for tests and I’d be worried about running out if we used dedicated servers. BuildKite is fine but I wouldn’t be that surprised if we move off of BuildKite to a custom thing at some point. Months ago, we switched from CMake to a handrolled typescript build system and it made our builds faster and simpler.
- JustSkyfall 2mo agoThanks for answering! I suppose my second question would be how much Bun spends on CI per month atm - I'd imagine that robobun would have ramped up the bill a fair bit
- latchkey 2mo agoyou don't need buildkite or blacksmith anymore. codex trivially built me a self-hosted gh actions runner workflow for ephemeral vm's (just a big bash script that manages the vms with qemu). i even sped up the builds with my own custom base image with everything installed in it that i need too. it works flawlessly. fanning that out to starting and stopping instances wouldn't be too much of a stretch.
- m00dy 2mo agoDoes it work with macOS ?
- latchkey 2mo agoweird question, i don't see why not. osx has a fantastic virtualization story. https://developer.apple.com/documentation/virtualization/running-macos-in-a-virtual-machine-on-apple-silicon https://developer.apple.com/documentation/virtualization/run...
- m00dy 2mo agobro, I was a committer for libvirt