-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Add a Docker container for doing automated builds for CloudABI. #47427
Conversation
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.
Given that we are not going to add a new CI job in the short term, could you move the dist-cloudabi
folder as src/ci/docker/disabled/dist-cloudabi
?
.travis.yml
Outdated
@@ -126,6 +126,8 @@ matrix: | |||
if: branch = auto | |||
- env: IMAGE=dist-armv7-linux DEPLOY=1 | |||
if: branch = auto | |||
- env: IMAGE=dist-cloudabi DEPLOY=1 | |||
if: branch = auto |
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.
I don't think we want to put this as a separate job on the CI for now due to resource limitation.
Aww... That's too bad. Be sure to get in touch with me if CPU capacity opens up. |
Sorry if I'm sounding a bit negative, but not having automated builds for CloudABI is going to be more annoying than I had anticipated. If no automated builds can be provided, my idea would be to set up an automated build myself. That way, people can install Rust nightly on their operating system of choice and extend that with CloudABI support by extracting a It turns out this won't work in practice, because
Do you by any chance know what would be the most elegant way to deal with this? |
A potential solution is https://github.com/japaric/xargo. However, what you suggest would work, you'd just have to ship all of the "std" component that we normally do, including |
@EdSchouten You can try adding this to dist-various-1 or dist-various-2 builder. |
@kennytm Integrating it in |
@EdSchouten |
@EdSchouten ah yes @Mark-Simulacrum and @malbarbo are both right in that if this is a separate builder we don't currently have the capacity to add more so it'll need to be Most of our containers use 16.04 as that was the latest when they were created, but I'm all for updating them as eagerly as possible (pending we're able to fix accidental regressions that creates of course). The In other words, let's see if we can fold this into |
Setting up a cross compilation toolchain for CloudABI is relatively easy. It's just a matter of installing a somewhat recent version of Clang (5.0 preferred) and installing the corresponding ${target}-cxx-runtime package, containing a set of core C/C++ libraries (libc, libc++, libunwind, etc). Eventually it would be nice if we could also run 'x.py test'. That, however still requires some more work. Both libtest and compiletest would need to be adjusted to deal with CloudABI's requirement of having all of an application's dependencies injected. Let's settle for just doing 'x.py dist' for now.
There is not enough capacity to do automated builds for CloudABI at this time.
As discussed in rust-lang#47427, let's not have a separate container for doing CloudABI builds. It's a lot faster if we integrate it into an existing container, so there's less duplication of what's being built. Upgrade the existing container to Ubuntu 17.10, which is required for CloudABI builds. The version of Clang shipped with 16.04 is not recent enough to support CloudABI properly.
7b2e25a
to
ae4288f
Compare
Hi @alexcrichton. Thanks for clarifying! I just integrated CloudABI support into |
Thanks @EdSchouten! I wonder if we could perhaps start with 1 or 2 targets just to make sure things work? We can always expand if we've still got capacity afterwards! |
We'll turn on other architectures if it turns out we have enough capacity.
Done! \o/ |
@bors: r+ |
📌 Commit dcf0cd0 has been approved by |
@bors retry Hmm... odd. The Travis page mentioned this build got cancelled? Not sure whether I have rights to force a retry. |
@EdSchouten: 🔑 Insufficient privileges: and not in try users |
@EdSchouten The build is canceled because Travis ded https://www.traviscistatus.com/incidents/c1s4dlyxd4lf The build hasn't actually started, so |
Add a Docker container for doing automated builds for CloudABI. Setting up a cross compilation toolchain for CloudABI is relatively easy. It's just a matter of installing a somewhat recent version of Clang (5.0 preferred) and installing the corresponding `${target}-cxx-runtime` package, containing a set of core C/C++ libraries (libc, libc++, libunwind, etc). Eventually it would be nice if we could also run `x.py test`. That, however still requires some more work. Both libtest and compiletest would need to be adjusted to deal with CloudABI's requirement of having all of an application's dependencies injected. Let's settle for just doing `x.py dist` for now.
Add a Docker container for doing automated builds for CloudABI. Setting up a cross compilation toolchain for CloudABI is relatively easy. It's just a matter of installing a somewhat recent version of Clang (5.0 preferred) and installing the corresponding `${target}-cxx-runtime` package, containing a set of core C/C++ libraries (libc, libc++, libunwind, etc). Eventually it would be nice if we could also run `x.py test`. That, however still requires some more work. Both libtest and compiletest would need to be adjusted to deal with CloudABI's requirement of having all of an application's dependencies injected. Let's settle for just doing `x.py dist` for now.
Setting up a cross compilation toolchain for CloudABI is relatively
easy. It's just a matter of installing a somewhat recent version of
Clang (5.0 preferred) and installing the corresponding
${target}-cxx-runtime
package, containing a set of core C/C++ libraries(libc, libc++, libunwind, etc).
Eventually it would be nice if we could also run
x.py test
. That,however still requires some more work. Both libtest and compiletest
would need to be adjusted to deal with CloudABI's requirement of having
all of an application's dependencies injected. Let's settle for just
doing
x.py dist
for now.