GithubHelp home page GithubHelp logo

rust-lang-deprecated / rust-buildbot Goto Github PK

View Code? Open in Web Editor NEW
36.0 36.0 27.0 956 KB

Buildbot configs for the Rust project

Home Page: http://buildbot.rust-lang.org/

License: Apache License 2.0

CSS 4.66% HTML 31.70% Shell 11.45% Python 52.20%

rust-buildbot's People

Contributors

alexcrichton avatar angelsl avatar barosl avatar brson avatar cuviper avatar diggsey avatar dotdash avatar eddyb avatar edunham avatar froydnj avatar graydon avatar m4b avatar mneumann avatar nrc avatar pietro avatar rillian avatar semarie avatar timnn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rust-buildbot's Issues

Better support of Tiers-2 platforms

Currently, Tiers-2 platforms (bitrig-64-opt, linux-musl-64-opt, freebsd10_32-1, freebsd10_64-1, dragonflybsd-64-opt, and openbsd-64-opt) have buildbot configuration but are ignored for any failure by @bors.

I wonder if it could be revised to be ignored only for failing in test, and make a failure on compile be blocking too for merging ?

Eventually having 3 levels for platforms:

  • Tiers-1 platforms: any failure is blocking
  • Tiers-2 platforms: any failure on compile is blocking (but failure on test are not)
  • Tiers-3 platforms: not blocking

I don't known enough buildbot for proposing PR. But I can try if this proposition have any interest.

stunnel on OSX is crazy slow

The packaging builders on nightly have an "upload" step where they upload their artifacts to the buildmaster, but on the macs this can take hours where the Linux/Windows machine take seconds. The buildmaster is on EC2 and so are the Linux/Windows machines, but we're pushing at most 1GB of data from Macstadium to EC2 which shouldn't take an hour.

I've watched locally and it looks like stunnel is uploading at ~100KB/s. So far I've tried (none have worked)

  • Restarting stunnel
  • Adding TCP_NODELAY to our stunnel config on the client
  • Updating stunnel to 5.35

I also was able to shove about 10MB/s of zeros via nc to the buildmaster, so I don't think the network is at fault here.

cc @brson this is probably causing the invalidation script to get fired before we actually upload artifacts
cc @edunham, @larsbergstrom -- infra issue, y'all seen this over at servo?

Nightly Linux 64bit failing

curl-sys isn't compiling because it can't find the OpenSSL libraries:

configure: error: OpenSSL libs and/or directories were not found where specified!
thread '<main>' panicked at 'assertion failed: t!(cmd . status (  )).success()', /home/rustbuild/src/rust-buildbot/slave/cargo-linux-64/.cargo/registry/src/github.com-1ecc6299db9ec823/curl-sys-0.1.21/build.rs:128

Full output: http://buildbot.rust-lang.org/builders/nightly-dist-cargo-linux-64/builds/135/steps/compile/logs/stdio

It's been failing since May 5th. I apologize if this isn't the right place to report this issue.

/cc @brson?

Add i686-linux-android builds

As Firefox looks to adding Rust support on all of its supported platforms, we'd like i686-linux-android (tier 3) to be given the same status as arm-linux-androideabi (tier 2). Part of that is having buildbot understand how to build binaries.

Add an x86_64-unknown-linux-musl Cargo

Would be good to at least have as an option. Unfortunately other cross builds of Cargo happen in the linux-cross image and this'll need to happen in the linux image. We may as well run the full test suite of Cargo though as that'll help prevent even more regressions.

Find command errors in `SetPropertyFromCommand` for property "freshconfig" on builder `auto-win-msvc-64-opt-rustbuild`

On an unrelated build: https://buildbot.rust-lang.org/builders/auto-win-msvc-64-opt-rustbuild/builds/3217
The """freshconfig""" key is set to the value """0 /usr/bin/find: paths must precede expression: ^ Usage: /usr/bin/find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]"""

Relevant source: https://github.com/rust-lang/rust-buildbot/blob/master/master/master.cfg#LC976

The find command is valid on my macOS machine here.

It caused the should_wipe function to return the wrong value, making the WORK_DIR directory to not be removed before git clean -d -f -f in the next step. No clue if it contributed to the build failure.

Add (temporary) MIR builders.

Until MIR is turned on by default for everyone, we want to make sure we don't regress.

In rust-lang/rust#32080 I've tagged relevant functions in tests that involve features not yet in MIR (such as debuginfo or overflow checks) with #[rustc_no_mir], and we can keep adding those as long as we track them, so I believe the new MIR builders should gate all builds.

We're going to need at least one UNIX builder and one MSVC because of the unwinding complexities found in the latter (I don't even know if MSVC can bootstrap w/ MIR right now).

Blocked on the snapshots being added in rust-lang/rust#32345. cc @alexcrichton

Dist builder appears to no longer be using centos

Document why others can't easily set up their own instances

It is currently not in a condition that allows people to easily set up their own instances.

To resolve, file issues documenting all reasons it's difficult for a clean instance to be set up. These will probably be along the lines of missing documentation and missing sample configurations.

I would like instructions that would allow a random member of the public to set up an instance, because I would like to know exactly how it works, because it will soon be my problem when it breaks.

use android-9 for the android platform base rather than android-18

Firefox compiles its Android port with version 9 of the Android platform (not sure if I have the terminology right here). The buildbot configs use version 18, but at least on x86 Android, compiling with version 9 works just fine, so I assume that's the case for the ARM Android port as well. If ARM Android works with version 9, I'd like to request that the automated builds use version 9 to make life more consistent for Firefox's sake.

PPC64 toolchain broken

I believe this is blocking rust-lang/rustup#797.

This is tested with alexcrichton/rust-slave-linux-cross:2016-11-11 on a local dev server:

rustbuild@13a39093d77d:/buildslave$ echo 'int main(){return 0;}' > test.c    
rustbuild@13a39093d77d:/buildslave$ powerpc-linux-gnu-gcc -m64 ./test.c  
/usr/lib/gcc-cross/powerpc-linux-gnu/5/../../../../powerpc-linux-gnu/bin/ld: skipping incompatible /usr/lib/gcc-cross/powerpc-linux-gnu/5/libgcc.a when searching for -lgcc
/usr/lib/gcc-cross/powerpc-linux-gnu/5/../../../../powerpc-linux-gnu/bin/ld: cannot find -lgcc
/usr/lib/gcc-cross/powerpc-linux-gnu/5/../../../../powerpc-linux-gnu/bin/ld: skipping incompatible /usr/lib/gcc-cross/powerpc-linux-gnu/5/libgcc_s.so.1 when searching for libgcc_s.so.1
/usr/lib/gcc-cross/powerpc-linux-gnu/5/../../../../powerpc-linux-gnu/bin/ld: skipping incompatible /usr/lib/gcc-cross/powerpc-linux-gnu/5/../../../../powerpc-linux-gnu/lib/libgcc_s.so.1 when searching for libgcc_s.so.1
/usr/lib/gcc-cross/powerpc-linux-gnu/5/../../../../powerpc-linux-gnu/bin/ld: skipping incompatible //usr/powerpc-linux-gnu/lib/libgcc_s.so.1 when searching for libgcc_s.so.1
/usr/lib/gcc-cross/powerpc-linux-gnu/5/../../../../powerpc-linux-gnu/bin/ld: cannot find libgcc_s.so.1
/usr/lib/gcc-cross/powerpc-linux-gnu/5/../../../../powerpc-linux-gnu/bin/ld: skipping incompatible /usr/lib/gcc-cross/powerpc-linux-gnu/5/libgcc.a when searching for -lgcc
/usr/lib/gcc-cross/powerpc-linux-gnu/5/../../../../powerpc-linux-gnu/bin/ld: cannot find -lgcc
collect2: error: ld returned 1 exit status
rustbuild@13a39093d77d:/buildslave$ powerpc64-linux-gnu-gcc-5 -m64 ./test.c
rustbuild@13a39093d77d:/buildslave$ file ./a.out 
./a.out: ELF 64-bit MSB executable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.1, for GNU/Linux 3.2.0, BuildID[sha1]=aad3d80e94dfdbbb80763dbabeb351287ec3a02e, not stripped

Does this repo need a LICENSE file?

We're publishing it publicly on Github, which implies an intent to share it with the world, but we don't tell people what they're actually allowed to do with it. Since it's all configuration files, I don't know whether CC-BY or the standard Rust code license would be more appropriate.

We should either add a LICENSE/COPYING file or a note in the README discussing how people are allowed to use the contents of this repo.

no-rustbuild bot

Just like we had no-mir bot, shouldn't we have no-rustbuild bot?

new binary releases for mips and arm

Just a reminder of the extra binaries that can be build in the linux-cross image after its next rebuild.

  • libstd for mips(el)-unknown-linux-musl (2 targets)
    • Image: linux-cross
    • Uses: the old build system
    • Probably just tack thxs on top of the 'nightly-dist-rustc-cross-linux' builder. Add both targets
      to the --target argument of the configure script.
  • rustc for arm(v7)-unknown-linux-gnueabi(hf) (3 hosts)
    • Image: linux-cross
    • Uses: rustbuild
    • Blocked on: rust-lang/rust#32237
    • This wants a new builder.
    • Since this job will also produce libstd tarballs, perhaps we can remove these 3 targets from the 'nightly-dist-rustc-cross-linux' builder and have this builder upload 3 rustc tarballs and 3 libstd tarballs.
  • libstd for i686-unknown-linux-musl
    • Image: linux
    • Uses: the old build system
    • Blocked on #79
    • This should go in its own builder because AFAICT one can't build libstd for two static musl targets. And we can't do that because we would need to pass one --musl-root to configure for each target but that flag only accepts one argument.

cc @alexcrichton

rust packages get desynched

Although the rustc packages appear to keep their revisions in sync now, the combined rust packages do not. Probably I picked the wrong unique id to synchronize on that wasn't actually unique.

Update MIPS cross-compiler for linux-cross autobuild

After this dance with the old GCC 4.4.5 MIPS cross-compiler used in the linux-cross buildbot, I've been trying to update it.

Prebuilt MIPS cross compilers are unfortunately rather rare.

  1. Ubuntu does not contain cross-compilers for MIPS in its repositories, even though Debian has them.
  2. Inserting Debian's repositories into any version of Ubuntu results in spectacular dependency failures.
  3. Debian Jessie (the current stable) does not have cross-compilers in its repositories yet.
  4. Debian Stretch has MIPS cross-compilers. However ... they are built with soft-float disabled. Rust's C flags for MIPS specify soft-float, so we cannot use them.

There are a few options.

  1. Modify the Ubuntu packages to build soft-float MIPS compilers, and continue using Ubuntu.

  2. Modify the Debian packages to build soft-float MIPS compilers, and use Debian.

    These two solutions likely mean that someone has to recompile the entire GCC suite and glibc due to the way the Debian/Ubuntu package is set up. Ubuntu Launchpad lets us use build farms to build any source packages, so this can work. I'm particularly averse of dealing with Debian(/Ubuntu) packages though, because their packaging system is arcane and a mess.

  3. Just build the compilers separately, don't care about packaging them.

    It may be difficult to update the compiler again in future.

  4. Use a different distribution (with a saner packaging system).

    Not sure about the costs of doing so. I'm thinking of Arch as well, which is a rolling-release distribution, which cause Docker's Arch images to be difficult to update sometimes.

  5. Just leave it. We only use GCC to build jemalloc, compiler-rt, etc., after all.

    It's an easy solution, but.. it'll probably mean we run into issues next time something is updated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.