-
Notifications
You must be signed in to change notification settings - Fork 101
[Infra] Get rid of the Terraform/AWS, fix missing arm64 and docker image artifacts #2160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
We previously used a bespoke AWS EC2 instance in order to build statically linked ARM64 linux release artifacts. However, it hasn't worked in the last 3 releases, and GitHub now provides ARM64 runners out of the box. It's much simpler to just use them, as we do for X86_64, and scrap the whole AWS part.
|
Branch | infra/get-rid-of-AWS-runner |
Testbed | ubuntu-latest |
Click to view all benchmark results
Benchmark | Latency | microseconds (µs) |
---|---|---|
fibonacci 10 | 📈 view plot 🚷 view threshold | 385.71 |
foldl arrays 50 | 📈 view plot 🚷 view threshold | 1,572.40 |
foldl arrays 500 | 📈 view plot 🚷 view threshold | 5,828.50 |
foldr strings 50 | 📈 view plot 🚷 view threshold | 5,881.50 |
foldr strings 500 | 📈 view plot 🚷 view threshold | 50,176.00 |
generate normal 250 | 📈 view plot 🚷 view threshold | 46,768.00 |
generate normal 50 | 📈 view plot 🚷 view threshold | 1,886.40 |
generate normal unchecked 1000 | 📈 view plot 🚷 view threshold | 2,854.20 |
generate normal unchecked 200 | 📈 view plot 🚷 view threshold | 654.53 |
pidigits 100 | 📈 view plot 🚷 view threshold | 2,773.50 |
pipe normal 20 | 📈 view plot 🚷 view threshold | 1,288.80 |
pipe normal 200 | 📈 view plot 🚷 view threshold | 8,579.80 |
product 30 | 📈 view plot 🚷 view threshold | 752.98 |
scalar 10 | 📈 view plot 🚷 view threshold | 1,315.80 |
sum 30 | 📈 view plot 🚷 view threshold | 749.86 |
I ran the workflows manually and they've been going on for hours, which is a good sign. I will consider this to work as far as we can tell if they fail on the final step when they won't found the release tag. I'll also drop the last commit, which is just for testing purpose (avoid the failure of the workflows at the very beginning) |
with: | ||
ref: ${{ github.event_name == 'release' && '' || github.event.inputs.release_tag }} | ||
# with: | ||
# ref: ${{ github.event_name == 'release' && '' || github.event.inputs.release_tag }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reminder to put this back
with: | ||
ref: ${{ github.event_name == 'release' && '' || github.event.inputs.release_tag }} | ||
# with: | ||
# ref: ${{ github.event_name == 'release' && '' || github.event.inputs.release_tag }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reminder to put this back
with: | ||
ref: ${{ github.event_name == 'release' && '' || github.event.inputs.release_tag }} | ||
# with: | ||
# ref: ${{ github.event_name == 'release' && '' || github.event.inputs.release_tag }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reminder to put this back
🤔 Maybe this is unrelated, but it seems like the long build time is because we're trying to rebuild a bunch of nix arm stuff. Maybe switching from nixos-unstable to nixos-24.11 would make us hit the cache more? |
Officially, Hydra provides ARM64 binaries for the stable and the unstable channel. But if it's moving fast I guess you can miss some of them in unstable? In general this is a good question to ask. I think we still need unstable for some dependencies, typically Topiary - if we want to take it from Nixpkgs instead of directly from the flake. We could probably use stable for the Rust toolchain but I wonder if that would be a win, as having two different nixpkgs versions comes with a risk of losing sharing of core libraries and binaries. Or take everything "cutting-edge" from github directly and use an |
17bc485
to
9d3a5b8
Compare
I'm not sure what to do about RustC's segfault though 😰 |
rust-lang/rust#135867: it seems it's a known bug and switching to ubuntu-22 images instead of 24 is a work-around for now. |
Fixes #2156.
We previously used a bespoke AWS EC2 instance in order to build statically linked ARM64 linux release artifacts. However, it hasn't worked in the last 3 releases, and GitHub now provides ARM64 runners out of the box. It's much simpler to just use them, as we do for X86_64, and scrap the whole AWS part.