about summary refs log tree commit diff
path: root/src/ci/docker/arm-android
AgeCommit message (Collapse)AuthorLines
2020-07-03ci: move all x86_64 runners to the host-x86_64 directoryPietro Albini-46/+0
We need to add runners designed for an aarch64 host system, and it'd be nice to return an error message if someone tries to run an image designed for an host architecture in another one. To start the work on this, this commit moves all the existing builders in the host-x86_64 directory, and changes the run.sh script to look up the image in the correct directory based on the host architecture.
2020-04-10Enforce Python 3 as much as possibleGuillaume Gomez-1/+1
2019-04-12ci: use a custom android sdk manager with pinning and mirroringPietro Albini-9/+13
2019-04-07ci: pin android emulator to 28.0.23Pietro Albini-1/+1
2018-03-02Remove --host and --target arguments to configureMark Simulacrum-3/+1
These arguments are passed to the relevant x.py invocation in all cases anyway. As such, there is no need to separately configure them. x.py will ignore the configuration when they are passed on the command line anyway.
2017-10-29ci: Upgrade Android SDK/NDK and refactor to use sdkmanager/avdmanager.kennytm-4/+10
* SDK tools is upgraded to 27.0.0. - Refactored to use `sdkmanager`/`avdmanager` instead of the deprecated `android` tool. * The Java version used by Android SDK is downgraded to OpenJDK-8, in order to download the SDK through HTTPS. * NDK is upgrade to r15c. - Dropped support for android-9 (2.3 / Gingerbread), the minimal supported version is now android-14 (4.0 / Ice Cream Sandwich). - Changed the default Android compiler from GCC to clang. - For details of change introduced by NDK r15, see https://github.com/android-ndk/ndk/wiki/Changelog-r15.
2017-08-26ci: Remove the need for `dumb-init`Alex Crichton-4/+1
Newer versions of Docker have a `--init` argument which spawns an init process in the container, which we should be able to use everywhere now.
2017-07-12Updated docker images to factor out common scriptsTy Coghlan-22/+3
2017-05-18ci: move shared scripts to src/ci/docker/scripts/Marco A L Barbosa-5/+5
2017-05-17ci: allows shared scriptsMarco A L Barbosa-146/+33
2017-05-12Update sccache binaries to mozilla/sccache@d3627d766Alex Crichton-1/+1
This commit updates the sccache binaries to fix a cache load failure seen on #41926, fixed by mozilla/sccache#119
2017-05-09ci: Update android ndk and sdkMarco A L Barbosa-70/+98
2017-03-31Use 64 bits emulator to run android testsMarco A L Barbosa-4/+6
Also install headless jre instead of the full jre.
2017-02-27travis: Split Android into dist/test imagesAlex Crichton-0/+143
PRs can't land againt beta right now because the android bot is filling up on disk space. I don't really know what's going on but the android bot is the longest one to run anyway so it'll benefit from being split up regardless.
2017-01-16travis: Expand the `cross` linux imageAlex Crichton-169/+0
This expands the `cross` travis matrix entry with a few more targets that our nightlies are building: * x86_64-rumprun-netbsd * arm-unknown-linux-musleabi * arm-unknown-linux-musleabihf * armv7-unknown-linux-musleabihf * mips-unknown-linux-musl * mipsel-unknown-linux-musl This commit doesn't compile custom toolchains like our current cross-image does, but instead compiles musl manually and then compiles libunwind manually (like x86_64) for use for the ARM targets and just uses openwrt toolchains for the mips targets.
2017-01-15travis: Expand dist builder coverageAlex Crichton-1/+5
This commit adds six new travis matrix entires for doing cross-compiled distribution builds of the compiler. The support added in #38731 allows us to quickly compile a complete suite of distribution artifacts for cross-compiled platforms, and currently each matrix entry (when fully cached) clocks in around an hour to finish. Note that a full test run typically takes about two hours right now. With further optimizations coming down the pike in #39026 this commit also starts doubling up cross-compiled distribution builders on each matrix entry. We initially planned to do one build per entry, but it's looking like we may be able to get by with more than one in each entry. Depending on how long these builds take we may even be able to up it to three, but we'll start with two first. This commit then completes the suite of cross-compiled compilers that we're going to compile, adding it for a whole litany of platforms detailed in the changes to the docker files here. The existing `cross` image is also trimmed down quite a bit to avoid duplicate work, and we'll eventually provision it for far more cross compilation as well. Note that the gcc toolchains installed to compile most of these compilers are inappropriate for actualy distribution. The glibc they pull in is much newer than we'd like, so before we turn nightlies off we'll need to tweak these docker files to custom build toolchains like the current `linux-cross` docker image does.
2017-01-12travis: Start uploading artifacts on commitsAlex Crichton-2/+6
This commit starts adding the infrastructure for uploading release artifacts from AppVeyor/Travis on each commit. The idea is that eventually we'll upload a full release to AppVeyor/Travis in accordance with plans [outlined earlier]. Right now this configures Travis/Appveyor to upload all tarballs in the `dist` directory, and various images are updated to actually produce tarballs in these directories. These are nowhere near ready to be actual release artifacts, but this should allow us to play around with it and test it out. Once this commit lands we should start seeing artifacts uploaded on each commit. [outlined earlier]: https://internals.rust-lang.org/t/rust-ci-release-infrastructure-changes/4489
2016-12-29Rollup merge of #38632 - alexcrichton:trim-travis, r=japaricAlex Crichton-3/+0
Trim down Travis docker images slightly Two things we no longer need: * ccache, we now use sccache * A `/tmp/obj` dir no longer used
2016-12-26travis: Remove extraneous /tmp/obj dirsAlex Crichton-2/+0
These are no longer used when running containers and tests.
2016-12-26travis: Don't install ccache in containersAlex Crichton-1/+0
We no longer use it, we use sccache
2016-12-26travis: Attempt to fix Android flakinessAlex Crichton-1/+3
There's been some flaky runs on Travis where the Android emulator is having problems staying alive... presumably? For example: * https://travis-ci.org/rust-lang/rust/jobs/186736745 This commit spawns the emulator in the same way as buildbot with `nohup` to hope that it goes into the background successfully, followed by a `wait-for-device` command. I'm not actually sure if this'll fix the problems we're seeing, but I figure it can't hurt to test out.
2016-12-14rustbuild: Add sccache supportAlex Crichton-1/+6
This commit adds support for sccache, a ccache-like compiler which works on MSVC and stores results into an S3 bucket. This also switches over all Travis and AppVeyor automation to using sccache to ensure a shared and unified cache over time which can be shared across builders. The support for sccache manifests as a new `--enable-sccache` option which instructs us to configure LLVM differently to use a 'sccache' binary instead of a 'ccache' binary. All docker images for Travis builds are updated to download Mozilla's tooltool builds of sccache onto various containers and systems. Additionally a new `rust-lang-ci-sccache` bucket is configured to hold all of our ccache goodies.
2016-12-13Fix travis buildsAlex Crichton-1/+6
After reading some articles [1] [2] yesterday about Docker and the "init" process I got to thinking about the problems that we've been seeing on Travis. The basic problem is that a Linux system may need an "init" process to work properly when processes become zombies. Docker by default doesn't handle this and the root process typically isn't an init process, so this can occasionally cause quite a few problems. We've been seeing spurious errors on Travis inside containers which look like OOM and such, but my guess is that zombie processes were being reparented to the top-level shell. The shell didn't expect the zombies and then behaved very strangely. This commit fixes these problems by using Yelp's "dumb-init" program [2] as the init process in all of our containers. This ensures that there's a valid init ready to reap children when they're reparented, which our test suite apparently generates a bunch of throughout the tests and such. [1]: https://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem/ [2]: https://engineeringblog.yelp.com/2016/01/dumb-init-an-init-for-docker.html
2016-12-07mk: Switch rustbuild to the default build systemAlex Crichton-4/+2
This commit switches the default build system for Rust from the makefiles to rustbuild. The rustbuild build system has been in development for almost a year now and has become quite mature over time. This commit is an implementation of the proposal on [internals] which slates deletion of the makefiles on 2016-01-02. [internals]: https://internals.rust-lang.org/t/proposal-for-promoting-rustbuild-to-official-status/4368 This commit also updates various documentation in `README.md`, `CONTRIBUTING.md`, `src/bootstrap/README.md`, and throughout the source code of rustbuild itself. Closes #37858
2016-11-11Move all Linux/OSX CI infastructure to TravisAlex Crichton-0/+154
This commit configures our `.travis.yml` to test the full suite of tests we have on Buildbot right now. A whole mess of docker images are added to the `src/ci` directory which represent all the build environments for each configuration. Each of these environments is then configured in `.travis.yml` to run on the auto branch. Note that the full matrix of tests aren't intended to be run on all PRs. Instead, we continue to run only one entry in the matrix, forcing all others to finish quickly. Only the `auto` branch should run the full matrix of builds. Also note that the infrastructure hasn't quite been allocated yet to the rust-lang/rust repository, so everything is disabled for now except for the one build that happens on PRs. Once that infrastructure is allocated though we can enable this and let it fly! Notable modifications from the current test suite today: * Android tests are run in rustbuild instead of the makefiles, for whatever reason I couldn't get the makefiles to work on Travis. * A debuginfo test was updated to work with the current version of the Android NDK. * Some dependencies in `mk/tests.mk` were fixed to allow running tests in parallel.