8f1acf4643
This commit adds a `ci/build.sh` script that checks that libc builds correctly for some common configurations (`--no-default-features`, `default`, `extra_traits`) on most targets supported by Rust since Rust 1.13.0 (the oldest Rust version that libc supports). The build matrix is refactored into two stages. The first stage is called `tools-and-build-and-tier1` and it aims to discover issues quickly by running the documentation and linter builds, as well as checking that the library builds correctly on all targets in all supported channels and "problematic" Rust versions; Rust versions adding major new features like `repr(align)`, `union`, etc. This first stage also runs libc-test for the tier-1 targets on linux and osx. These builds finish quickly because no emulation is necessary. The second stage is called `tier2` and it runs libc-test for all other targets for which we are currently able to do so. Closes #1229 .
193 lines
5.4 KiB
YAML
193 lines
5.4 KiB
YAML
language: rust
|
|
rust: nightly
|
|
sudo: required
|
|
dist: xenial
|
|
services: docker
|
|
|
|
stages:
|
|
- tools-and-build-and-tier1
|
|
- tier2
|
|
|
|
matrix:
|
|
include:
|
|
# TOOLS
|
|
- name: "Documentation"
|
|
env: TARGET=x86_64-unknown-linux-gnu
|
|
script: sh ci/dox.sh
|
|
install: true
|
|
stage: tools-and-build-and-tier1
|
|
- name: "Shellcheck"
|
|
install: true
|
|
script:
|
|
- shellcheck --version
|
|
- shellcheck ci/*.sh
|
|
stage: tools-and-build-and-tier1
|
|
- name: "Style"
|
|
install: rustup component add rustfmt-preview
|
|
script:
|
|
- rustc ci/style.rs && ./style src
|
|
- cargo fmt --all -- --check
|
|
stage: tools-and-build-and-tier1
|
|
|
|
# BUILD stable, beta, nightly
|
|
- name: "Build Stable Rust"
|
|
script: sh ci/build.sh
|
|
stage: tools-and-build-and-tier1
|
|
rust: stable
|
|
- name: "Build Beta Rust"
|
|
script: sh ci/build.sh
|
|
stage: tools-and-build-and-tier1
|
|
rust: beta
|
|
- name: "Build Nightly Rust"
|
|
script: sh ci/build.sh
|
|
stage: tools-and-build-and-tier1
|
|
rust: nightly
|
|
- name: "Build Stable Rust"
|
|
script: sh ci/build.sh
|
|
stage: tools-and-build-and-tier1
|
|
rust: stable
|
|
os: osx
|
|
osx_image: xcode10
|
|
- name: "Build Beta Rust"
|
|
script: sh ci/build.sh
|
|
stage: tools-and-build-and-tier1
|
|
rust: beta
|
|
os: osx
|
|
osx_image: xcode10
|
|
- name: "Build Nightly Rust"
|
|
script: sh ci/build.sh
|
|
stage: tools-and-build-and-tier1
|
|
rust: nightly
|
|
os: osx
|
|
osx_image: xcode10
|
|
- name: "Build Stable Rust 1.13.0"
|
|
script: sh ci/build.sh
|
|
stage: tools-and-build-and-tier1
|
|
rust: 1.13.0
|
|
- name: "Build Stable Rust 1.19.0"
|
|
script: sh ci/build.sh
|
|
stage: tools-and-build-and-tier1
|
|
rust: 1.19.0
|
|
- name: "Build Stable Rust 1.24.0"
|
|
script: sh ci/build.sh
|
|
stage: tools-and-build-and-tier1
|
|
rust: 1.24.0
|
|
- name: "Build Stable Rust 1.25.0"
|
|
script: sh ci/build.sh
|
|
stage: tools-and-build-and-tier1
|
|
rust: 1.25.0
|
|
- name: "Build Stable Rust 1.30.0"
|
|
script: sh ci/build.sh
|
|
stage: tools-and-build-and-tier1
|
|
rust: 1.30.0
|
|
- name: "Build Stable Rust 1.13.0"
|
|
script: sh ci/build.sh
|
|
stage: tools-and-build-and-tier1
|
|
rust: 1.13.0
|
|
os: osx
|
|
osx_image: xcode10
|
|
- name: "Build Stable Rust 1.19.0"
|
|
script: sh ci/build.sh
|
|
stage: tools-and-build-and-tier1
|
|
rust: 1.19.0
|
|
os: osx
|
|
osx_image: xcode10
|
|
- name: "Build Stable Rust 1.24.0"
|
|
script: sh ci/build.sh
|
|
stage: tools-and-build-and-tier1
|
|
rust: 1.24.0
|
|
os: osx
|
|
osx_image: xcode10
|
|
- name: "Build Stable Rust 1.25.0"
|
|
script: sh ci/build.sh
|
|
stage: tools-and-build-and-tier1
|
|
rust: 1.25.0
|
|
os: osx
|
|
osx_image: xcode10
|
|
- name: "Build Stable Rust 1.30.0"
|
|
script: sh ci/build.sh
|
|
stage: tools-and-build-and-tier1
|
|
rust: 1.30.0
|
|
os: osx
|
|
osx_image: xcode10
|
|
- env: TARGET=i686-apple-darwin
|
|
os: osx
|
|
osx_image: xcode10
|
|
stage: tools-and-build-and-tier1
|
|
- env: TARGET=i686-unknown-linux-gnu
|
|
stage: tools-and-build-and-tier1
|
|
- env: TARGET=x86_64-apple-darwin
|
|
os: osx
|
|
osx_image: xcode10
|
|
stage: tools-and-build-and-tier1
|
|
- env: TARGET=x86_64-unknown-linux-gnu
|
|
stage: tools-and-build-and-tier1
|
|
|
|
# Tier 2 targets
|
|
- env: TARGET=aarch64-linux-android
|
|
stage: tier2
|
|
- env: TARGET=aarch64-unknown-linux-gnu
|
|
stage: tier2
|
|
- env: TARGET=aarch64-unknown-linux-musl
|
|
stage: tier2
|
|
- env: TARGET=arm-linux-androideabi
|
|
stage: tier2
|
|
- env: TARGET=arm-unknown-linux-gnueabihf
|
|
stage: tier2
|
|
- env: TARGET=arm-unknown-linux-musleabihf
|
|
stage: tier2
|
|
- env: TARGET=asmjs-unknown-emscripten
|
|
stage: tier2
|
|
- env: TARGET=i686-unknown-linux-musl
|
|
stage: tier2
|
|
- env: TARGET=mips-unknown-linux-gnu
|
|
stage: tier2
|
|
- env: TARGET=mips-unknown-linux-musl
|
|
stage: tier2
|
|
- env: TARGET=mips64-unknown-linux-gnuabi64
|
|
stage: tier2
|
|
- env: TARGET=mips64el-unknown-linux-gnuabi64
|
|
stage: tier2
|
|
- env: TARGET=mipsel-unknown-linux-musl
|
|
stage: tier2
|
|
- env: TARGET=powerpc-unknown-linux-gnu
|
|
stage: tier2
|
|
- env: TARGET=powerpc64-unknown-linux-gnu
|
|
stage: tier2
|
|
- env: TARGET=powerpc64le-unknown-linux-gnu
|
|
stage: tier2
|
|
- env: TARGET=s390x-unknown-linux-gnu
|
|
stage: tier2
|
|
- env: TARGET=sparc64-unknown-linux-gnu
|
|
stage: tier2
|
|
- env: TARGET=wasm32-unknown-emscripten
|
|
stage: tier2
|
|
- env: TARGET=x86_64-linux-android
|
|
stage: tier2
|
|
- env: TARGET=x86_64-unknown-linux-gnux32 OPT="--release"
|
|
stage: tier2
|
|
- env: TARGET=x86_64-unknown-linux-musl
|
|
stage: tier2
|
|
|
|
allow_failures:
|
|
# FIXME: https://github.com/rust-lang/libc/issues/1226
|
|
- env: TARGET=asmjs-unknown-emscripten
|
|
- env: TARGET=wasm32-unknown-emscripten
|
|
|
|
install: rustup target add $TARGET || true
|
|
|
|
script:
|
|
- cargo generate-lockfile --manifest-path libc-test/Cargo.toml
|
|
- if [[ $TRAVIS_OS_NAME = "linux" ]] && [[ $BUILD_ONLY != "1" ]]; then
|
|
sh ci/run-docker.sh $TARGET;
|
|
else
|
|
sh ci/run.sh $TARGET;
|
|
fi
|
|
env:
|
|
global:
|
|
secure: "e2/3QjgRN9atOuSHp22TrYG7QVKcYUWY48Hi9b60w+r1+BhPkTseIJLte7WefRhdXtqpjjUJTooKDhnurFOeHaCT+nmBgiv+FPU893sBl4bhesY4m0vgUJVbNZcs6lTImYekWVb+aqjGdgV/XAgCw7c3kPmrZV0MzGDWL64Xaps="
|
|
|
|
notifications:
|
|
email:
|
|
on_success: never
|