| Alex Crichton | d9962f4 | 2015-09-17 17:45:10 -0700 | [diff] [blame] | 1 | The goal of the libc crate is to have CI running everywhere to have the |
| 2 | strongest guarantees about the definitions that this library contains, and as a |
| 3 | result the CI is pretty complicated and also pretty large! Hopefully this can |
| 4 | serve as a guide through the sea of scripts in this directory and elsewhere in |
| 5 | this project. |
| 6 | |
| Alex Crichton | 145ac09 | 2015-09-17 17:52:13 -0700 | [diff] [blame] | 7 | # Files |
| 8 | |
| Alex Crichton | d9962f4 | 2015-09-17 17:45:10 -0700 | [diff] [blame] | 9 | First up, let's talk about the files in this directory: |
| 10 | |
| Alex Crichton | d9962f4 | 2015-09-17 17:45:10 -0700 | [diff] [blame] | 11 | * `msys2.ps1` - a PowerShell script which is used to install MSYS2 on the |
| 12 | AppVeyor bots. As of this writing MSYS2 isn't installed by default, and this |
| 13 | script will install the right version/arch of msys2 in preparation of using |
| 14 | the contained C compiler to compile C shims. |
| 15 | |
| 16 | * `run-travis.sh` - a shell script run by all Travis builders, this is |
| 17 | responsible for setting up the rest of the environment such as installing new |
| 18 | packages, downloading Rust target libraries, etc. |
| 19 | |
| 20 | * `run.sh` - the actual script which runs tests for a particular architecture. |
| 21 | Called from the `run-travis.sh` script this will run all tests for the target |
| 22 | specified. |
| 23 | |
| 24 | * `cargo-config` - Cargo configuration of linkers to use copied into place by |
| 25 | the `run-travis.sh` script before builds are run. |
| 26 | |
| 27 | * `dox.sh` - script called from `run-travis.sh` on only the linux 64-bit nightly |
| 28 | Travis bots to build documentation for this crate. |
| 29 | |
| 30 | * `landing-page-*.html` - used by `dox.sh` to generate a landing page for all |
| 31 | architectures' documentation. |
| 32 | |
| Alex Crichton | 145ac09 | 2015-09-17 17:52:13 -0700 | [diff] [blame] | 33 | # CI Systems |
| 34 | |
| 35 | Currently this repository leverages a combination of Travis CI and AppVeyor for |
| 36 | running tests. The triples tested are: |
| 37 | |
| 38 | * AppVeyor |
| 39 | * `{i686,x86_64}-pc-windows-{msvc,gnu}` |
| 40 | * Travis |
| 41 | * `{i686,x86_64,mips,aarch64}-unknown-linux-gnu` |
| 42 | * `x86_64-unknown-linux-musl` |
| 43 | * `arm-unknown-linux-gnueabihf` |
| 44 | * `arm-linux-androideabi` |
| Alex Crichton | baef611 | 2015-09-19 23:20:53 -0700 | [diff] [blame] | 45 | * `{i686,x86_64}-apple-{darwin,ios}` |
| Alex Crichton | 145ac09 | 2015-09-17 17:52:13 -0700 | [diff] [blame] | 46 | |
| 47 | The Windows triples are all pretty standard, they just set up their environment |
| 48 | then run tests, no need for downloading any extra target libs (we just download |
| 49 | the right installer). The Intel Linux/OSX builds are similar in that we just |
| 50 | download the right target libs and run tests. Note that the Intel Linux/OSX |
| 51 | builds are run on stable/beta/nightly, but are the only ones that do so. |
| 52 | |
| 53 | The remaining architectures look like: |
| 54 | |
| Alex Crichton | 2995f55 | 2015-10-29 16:34:55 -0700 | [diff] [blame^] | 55 | * Android runs in a [docker image][android-docker] with an emulator, the NDK, |
| 56 | and the SDK already set up. The entire build happens within the docker image. |
| Alex Crichton | 145ac09 | 2015-09-17 17:52:13 -0700 | [diff] [blame] | 57 | * The MIPS, ARM, and AArch64 builds all use QEMU to run the generated binary to |
| 58 | actually verify the tests pass. |
| 59 | * The MUSL build just has to download a MUSL compiler and target libraries and |
| 60 | then otherwise runs tests normally. |
| Alex Crichton | baef611 | 2015-09-19 23:20:53 -0700 | [diff] [blame] | 61 | * iOS builds need an extra linker flag currently, but beyond that they're built |
| 62 | as standard as everything else. |
| Alex Crichton | 145ac09 | 2015-09-17 17:52:13 -0700 | [diff] [blame] | 63 | |
| Alex Crichton | 2995f55 | 2015-10-29 16:34:55 -0700 | [diff] [blame^] | 64 | [android-docker]: https://github.com/rust-lang/rust-buildbot/blob/master/slaves/android/Dockerfile |
| 65 | |
| Alex Crichton | 145ac09 | 2015-09-17 17:52:13 -0700 | [diff] [blame] | 66 | Hopefully that's at least somewhat of an introduction to everything going on |
| 67 | here, and feel free to ping @alexcrichton with questions! |
| 68 | |