177 points by Aissen 2 days ago | 49 comments
geerlingguy 2 days ago
sebazzz 2 days ago
saurik 1 day ago
pjmlp 1 day ago
Installing a cross-platform targeting compiler toolchain is next level.
DrillShopper 19 hours ago
We usually keep archives of the software releases (even ones that are really, REALLY old and not out in service for the most part except for refurbs of old product), but being able to rebuild them and more importantly build a fixed version targeting the OS it originally targeted is really nice.
nixosbestos 14 hours ago
tliltocatl 21 hours ago
relistan 1 day ago
justincormack 1 day ago
relistan 15 hours ago
hdjdjdn 12 hours ago
ecnahc515 2 days ago
* Configure a workflow with 1 job for each arch, each building a standalone single-arch image, tagging it with a unique tag, and pushing each to your registry
* Configure another job which runs at the completion of the previous jobs that creates a combined manifest containing each image using `docker manifest create`.
Basically, doing the steps listed in https://www.docker.com/blog/multi-arch-build-and-images-the-... under "The hard way with docker manifest ".
Does anyone have a better approach, or some reusable workflows/GHA that make this process simpler? I know about Depot.dev which basically abstracts the runners away and handles all of this for you, but I don't see a good way to do this yourself without GitHub offering some better abstraction for building docker images.
Edit: I just noticed https://news.ycombinator.com/item?id=42729529 which has a great example of exactly these steps (and I just realized you can just push the digests, instead of tags too, which is nice).
jhardy54 1 day ago
trumpvoter 1 day ago
Personally prefer just using Go/ko whenever possible ;)
agartner 2 days ago
jimmydoe 2 days ago
kylegalbraith 2 days ago
Even with this, building multi-platform Docker images with fast persistent caching in GitHub Actions will still be slow in the worst case and tedious in the best case.
We've also expanded into GitHub Actions runners, bringing our fast caching and faster compute into the actual runner.
We've done some cool things like making caching and disk access faster using ramdisks, Ceph, and blob storage [1]. We're offering Intel, ARM, and macOS runners at half the cost of what GitHub offers to private repos. We're also focused on accelerating even more builds outside of the runner. [2]
[0] https://depot.dev/products/container-builds
[1] https://depot.dev/blog/introducing-github-actions-ultra-runn...
eltondegeneres 2 days ago
kylegalbraith 2 days ago
We charge $0.08/minute for macOS runners [0] which has 8 CPUs, 24 GB of memory, and 150 GB of disk. They run with M2 chips, so the closest GitHub-hosted macOS runner is the arm64 one with 6 CPUs at $0.16/minute [1].
It's also worth mentioning that we charge by the minute but track by the second. Whereas GitHub actually rounds up to the closest minute. So a 10-second build on Depot is 10 seconds, and you don't get charged a minute until you've accumulated a minutes worth of build time.
[0] https://depot.dev/docs/github-actions/runner-types#macos-run...
[1] https://docs.github.com/en/billing/managing-billing-for-your...