-
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
travis: Fuchsia builder #39918
travis: Fuchsia builder #39918
Conversation
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @alexcrichton (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
bcf6476
to
2dc7528
Compare
|
||
# Download sources | ||
host=https://fuchsia.googlesource.com | ||
git clone --depth 1 $host/magenta |
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.
We tend to prefer to pin to specific commits where possible to avoid an upstream commit accidentally breaking our build, could these clones all be followed with a cd $dir && git reset --hard $rev
?
It should be fine to do a full clone, the Docker container is cached so we won't pay that build time on each build.
#!/bin/sh | ||
${tool} --target=${arch}-unknown-fuchsia --sysroot=/usr/local/${arch}-unknown-fuchsia "\$@" | ||
EOF | ||
chmod +x /usr/local/bin/${arch}-unknown-fuchsia-${tool} |
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'm fine with this but if you'd prefer to just export AR_$target=llvm-ar
that's also fine by me
.travis.yml
Outdated
@@ -19,6 +19,7 @@ matrix: | |||
- env: IMAGE=dist-arm-linux DEPLOY=1 | |||
- env: IMAGE=dist-armv7-aarch64-linux DEPLOY=1 | |||
- env: IMAGE=dist-freebsd DEPLOY=1 | |||
- env: IMAGE=dist-fuchsia DEPLOY=1 |
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.
Right now we've actually got another similar container, cross
above, which just builds a couple of targets that we release. Could you fold this container into that one and just add the targets there?
That container doesn't take too long to build so we should definitely be able to get a full build in under three hours, and that way we don't have to burn an extra slot on a new travis builder :)
Looks great, thanks for the PR! As one final piece, if you'd like, you can edit |
Oh and one final thing. Travis limits our logs to 4MB maximum and it looks like 2 builds of clang and one build of LLVM may push us over that limit. We have a script floating around though to deal with this. When folding this into the We'll worry later about deduplication across containers :) |
2dc7528
to
e8253de
Compare
All done, please take a look. It takes about 38 minutes to build on my machine, so hopefully it'll be under three hours on the Travis builder. |
e8253de
to
decebdc
Compare
src/ci/docker/cross/Dockerfile
Outdated
libedit-dev \ | ||
libncurses5-dev | ||
|
||
RUN curl -L https://cmake.org/files/v3.8/cmake-3.8.0-rc1-Linux-x86_64.tar.gz | \ |
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.
Could you throw in a small comment to why a newer version of CMake is needed?
Also if switching to ubuntu 16.10 pulls in a new enough version it'd be ok to update to that as well.
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.
CMake 3.8.0 is (going to) be the first version with Fuchsia support, RC1 was only released two weeks ago so I don't think it's available in any Linux distribution just yet. Do you want me to add the comment in this PR?
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.
Sure yeah, that'd be great (just ping me and I'll re-r+)
src/ci/docker/cross/build-fuchsia.sh
Outdated
fetch() { | ||
mkdir -p $2 | ||
pushd $2 > /dev/null | ||
curl -sL $1/+archive/$3.tar.gz | tar xzf - |
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.
👍
@bors: r+ Looks great! We can always throw in the comments later :) |
📌 Commit decebdc has been approved by |
decebdc
to
18b0f88
Compare
Commend added. |
@bors: r+ |
📌 Commit 18b0f88 has been approved by |
travis: Fuchsia builder This change introduces a Dockerfile and script which builds a complete Fuchsia toolchain which can be used to build Rust distribution for Fuchsia. We only support cross-compiling at the moment, hence only setting the target.
travis: Fuchsia builder This change introduces a Dockerfile and script which builds a complete Fuchsia toolchain which can be used to build Rust distribution for Fuchsia. We only support cross-compiling at the moment, hence only setting the target.
⌛ Testing commit 18b0f88 with merge 7ae0561... |
💔 Test failed - status-travis |
@petrhosek is that maybe a typo'd rev for compiler-rt? |
67f934e
to
a5eea01
Compare
I split the Fuchsia toolchain into a separate builder again, can you take a look again and retry if it looks fine to you? |
@bors: r+ |
📌 Commit a5eea01 has been approved by |
🔒 Merge conflict |
@bors retry |
🔒 Merge conflict |
@frewsxcv We're waiting for @alexcrichton to wake up and unbreak @bors, retrying won't help 😞. |
@bors: retry |
🔒 Merge conflict |
@bors: retry |
☔ The latest upstream changes (presumably #40382) made this pull request unmergeable. Please resolve the merge conflicts. |
This change introduces a Dockerfile and script which builds a complete Fuchsia toolchain which can be used to build Rust distribution for Fuchsia. We only support cross-compiling at the moment, hence only setting the target.
a5eea01
to
9a84611
Compare
@bors: r+ |
📌 Commit 9a84611 has been approved by |
travis: Fuchsia builder This change introduces a Dockerfile and script which builds a complete Fuchsia toolchain which can be used to build Rust distribution for Fuchsia. We only support cross-compiling at the moment, hence only setting the target.
travis: Fuchsia builder This change introduces a Dockerfile and script which builds a complete Fuchsia toolchain which can be used to build Rust distribution for Fuchsia. We only support cross-compiling at the moment, hence only setting the target.
Rollup of 38 pull requests - Successful merges: #39202, #39820, #39918, #39921, #40092, #40146, #40199, #40225, #40239, #40257, #40259, #40261, #40277, #40278, #40287, #40297, #40311, #40315, #40319, #40324, #40336, #40340, #40344, #40345, #40367, #40369, #40372, #40373, #40379, #40385, #40386, #40389, #40400, #40404, #40410, #40422, #40423, #40424 - Failed merges: #40220, #40329, #40426
Rollup of 38 pull requests - Successful merges: #39202, #39820, #39918, #39921, #40092, #40146, #40199, #40225, #40239, #40257, #40259, #40261, #40277, #40278, #40287, #40297, #40311, #40315, #40319, #40324, #40336, #40340, #40344, #40345, #40367, #40369, #40372, #40373, #40379, #40385, #40386, #40389, #40400, #40404, #40410, #40422, #40423, #40424 - Failed merges: #40220, #40329, #40426
This change introduces a Dockerfile and script which builds a complete
Fuchsia toolchain which can be used to build Rust distribution for
Fuchsia. We only support cross-compiling at the moment, hence only
setting the target.