ci: build and test with s390x-resolute runner - #1227
Conversation
fb7b7a2 to
19be4b4
Compare
|
(rebased to pick up 5ef80b3 and see where it's getting stuck) |
| # os: ["self-hosted", "linux", "riscv64"] | ||
| - target: riscv64gc-unknown-linux-gnu | ||
| os: ubuntu-24.04 | ||
| - target: s390x-resolute-medium-rust |
There was a problem hiding this comment.
Oh - this needs to be the actual rust target
19be4b4 to
d3e02e9
Compare
|
the new runner might be slow due to the cache miss, I want to try to push a new commit to check how it behaves with the cache hit. |
|
It's building nextest from source since there's no binary for this arch, which is taking extra long too (though seems like the ubuntu-24.04-s390x image is reasonably fast?). If trying again with cache doesn't speed things up much, it might be worth an compiler-builtins/.github/workflows/main.yaml Lines 152 to 154 in 5ef80b3 (edit: install-action actually has |
|
we might ask Canonical if they can install cargo next test on the runner for us so that it is always available. Although we might not be able to pin the version 🤔 |
|
I'm fine without an exact version as long as it's relatively recent, the pinning is mostly for Zizmor rather than needing specific features |
|
Actually if we want to control the version, we could cache it 👀 Btw, there wasn't a cache hit even in the second run because I think the cache is populated only from the main branch. This Canonical runner seems slower than the IBM one because to run |
Just building once then putting it on ci-mirrors? That does sound nice 🤔. The nextest maintainers have been pretty open to adding arches if they get the CI resources, maybe we should ask if they'd apply to the IBM program.
I would have expected this to work, but the inner workings of GHA cache are a complete mystery to me 🙂
Up to you for what you're trying to get. If you wanted a persistent job to keep testing then we can figure out what to do with nextest, but the existing s390x job covers things well so it's also fine to close. |
I was thinking more of caching the artifacts in github actions cache. It's easier and requires less maintenance. Similar to how we cache cargo artifacts now.
this is also an option! |
|
I thought rust-cache takes care of those since it should cache the bin dir (I think?), but it also looks like the other s390x job had to rebuild. Hmm |
|
I think the issue is the order of the steps, since the rust-cache action runs after the install action. |
|
Aside caching, I found an interesting data point from this workflow run : it seems the IBM Runners have a significantly bigger CPU compared with the Canonical I'd not be surprised if the IBM runner has bigger numbers for other hardware parameters like RAM/Disk sizes, IO perf, etc. That could explain the difference between the two jobs executions, at least partially. |
62ee24c to
1e4d4b4
Compare
We'd like to this add new `s390x` runner to `compiler-builtins`. This new runner is provided by Canonical. After some iteration alongside with Canonical folks, the `large` runner offers hardware spec similar to the existing s390x provided by IBM and [delivers similar build times](https://github.com/rust-lang/compiler-builtins/actions/runs/31516313575/job/93862267593?pr=1227). Moreover, it runs on ubuntu-26.04 rather than ubuntu-24.04, and it features a Github integration more friendly to `t-infra`, since the related Github App requires less permissions to run. We don't need to remove the s390x IBM runners right now. We propose having both s390x runners running side by side for a while and circle back after a few PRs, sticking with the Canonical one afterwards if everything goes well.
1e4d4b4 to
1549528
Compare
|
Actually I guess that one was fast because the cache was available, for this cold build it's taking a very long time. I think I'd like to wait for #1253 which should get rid of the time spent building nextest (cc @Gelbpunkt) |


We'd like to this add new
s390xrunner tocompiler-builtins.This new runner is provided by Canonical. After some iteration alongside with Canonical folks, the
largerunner offers hardware spec similar to the existing s390x provided by IBM and delivers similar build times.Moreover, it runs on ubuntu-26.04 rather than ubuntu-24.04, and it features a Github integration more friendly to
t-infra, since the related Github App requires less permissions to run.We don't need to remove the s390x IBM runners right now. We propose having both s390x runners running side by side for a while and circle back after a few PRs, sticking with the Canonical one afterwards if everything goes well.