Skip to content

Commit c91a6d1

Browse files
author
Jorge Aparicio
authored
Merge pull request #57 from japaric/ci
travis: simplify ci scripts
2 parents 948ada4 + bc8f572 commit c91a6d1

File tree

4 files changed

+56
-72
lines changed

4 files changed

+56
-72
lines changed

.travis.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,6 @@ matrix:
4242
- env: TARGET=x86_64-unknown-linux-gnu
4343
os: linux
4444

45-
before_install:
46-
- export PATH="$PATH:$HOME/.cargo/bin"
47-
4845
install:
4946
- bash ci/install.sh
5047

ci/env.sh

Lines changed: 42 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,49 @@
11
case $TRAVIS_OS_NAME in
22
linux)
3-
export HOST=x86_64-unknown-linux-gnu
4-
export NM=nm
5-
export OBJDUMP=objdump
3+
HOST=x86_64-unknown-linux-gnu
4+
NM=nm
5+
OBJDUMP=objdump
6+
LINUX=y
67
;;
78
osx)
8-
export HOST=x86_64-apple-darwin
9-
export NM=gnm
10-
export OBJDUMP=gobjdump
9+
HOST=x86_64-apple-darwin
10+
NM=gnm
11+
OBJDUMP=gobjdump
12+
OSX=y
1113
;;
1214
esac
1315

14-
case $TARGET in
15-
aarch64-unknown-linux-gnu)
16-
export PREFIX=aarch64-linux-gnu-
17-
export QEMU_LD_PREFIX=/usr/aarch64-linux-gnu
18-
;;
19-
arm*-unknown-linux-gnueabi)
20-
export PREFIX=arm-linux-gnueabi-
21-
export QEMU_LD_PREFIX=/usr/arm-linux-gnueabi
22-
;;
23-
arm-unknown-linux-gnueabihf)
24-
export PREFIX=arm-linux-gnueabihf-
25-
export QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf
26-
;;
27-
armv7-unknown-linux-gnueabihf)
28-
export PREFIX=arm-linux-gnueabihf-
29-
export QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf
30-
;;
31-
mips-unknown-linux-gnu)
32-
export PREFIX=mips-linux-gnu-
33-
export QEMU_LD_PREFIX=/usr/mips-linux-gnu
34-
;;
35-
mipsel-unknown-linux-gnu)
36-
export PREFIX=mipsel-linux-gnu-
37-
export QEMU_LD_PREFIX=/usr/mipsel-linux-gnu
38-
;;
39-
powerpc-unknown-linux-gnu)
40-
export PREFIX=powerpc-linux-gnu-
41-
export QEMU_LD_PREFIX=/usr/powerpc-linux-gnu
42-
;;
43-
powerpc64-unknown-linux-gnu)
44-
export PREFIX=powerpc64-linux-gnu-
45-
export QEMU_LD_PREFIX=/usr/powerpc64-linux-gnu
46-
;;
47-
powerpc64le-unknown-linux-gnu)
48-
export PREFIX=powerpc64le-linux-gnu-
49-
export QEMU_LD_PREFIX=/usr/powerpc64le-linux-gnu
50-
# QEMU crashes, even running the simplest cross compiled C program:
51-
# `int main() { return 0; }`
52-
export RUN_TESTS=n
53-
;;
54-
thumbv*-none-eabi)
55-
export CARGO=xargo
56-
export PREFIX=arm-none-eabi-
57-
# Bare metal targets. No `std` or `test` crates for these targets.
58-
export RUN_TESTS=n
59-
;;
60-
esac
16+
# NOTE For rustup
17+
export PATH="$HOME/.cargo/bin:$PATH"
18+
19+
CARGO=cargo
20+
RUN_TESTS=y
21+
22+
# NOTE For the host and its 32-bit variants we don't need prefixed tools or QEMU
23+
if [[ $TARGET != $HOST && ! $TARGET =~ ^i.86- ]]; then
24+
GCC_TRIPLE=${TARGET//unknown-/}
25+
26+
case $TARGET in
27+
armv7-unknown-linux-gnueabihf)
28+
GCC_TRIPLE=arm-linux-gnueabihf
29+
;;
30+
powerpc64le-unknown-linux-gnu)
31+
# QEMU crashes even when executing the simplest cross compiled C program:
32+
# `int main() { return 0; }`
33+
RUN_TESTS=n
34+
;;
35+
thumbv*-none-eabi)
36+
CARGO=xargo
37+
GCC_TRIPLE=arm-none-eabi
38+
# Bare metal targets. No `std` or `test` crates for these targets.
39+
RUN_TESTS=n
40+
;;
41+
esac
42+
43+
if [[ $RUN_TESTS == y ]]; then
44+
# NOTE(export) so this can reach the processes that `cargo test` spawns
45+
export QEMU_LD_PREFIX=/usr/$GCC_TRIPLE
46+
fi
47+
48+
PREFIX=$GCC_TRIPLE-
49+
fi

ci/install.sh

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,25 @@ set -ex
33
. $(dirname $0)/env.sh
44

55
install_qemu() {
6-
if [[ $TRAVIS_OS_NAME = "linux" ]]; then
6+
if [[ $QEMU_LD_PREFIX ]]; then
77
apt-get update
88
apt-get install -y --no-install-recommends \
99
binfmt-support qemu-user-static
1010
fi
1111
}
1212

1313
install_gist() {
14-
gem install gist
14+
gem install gist -v 4.5.0
1515
}
1616

1717
install_binutils() {
18-
if [[ $TRAVIS_OS_NAME == "osx" ]]; then
18+
if [[ $OSX ]]; then
1919
brew install binutils
2020
fi
2121
}
2222

2323
install_rust() {
24-
if [[ $TRAVIS_OS_NAME == "osx" ]]; then
24+
if [[ $OSX ]]; then
2525
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain=nightly
2626
else
2727
rustup default nightly
@@ -33,20 +33,20 @@ install_rust() {
3333
}
3434

3535
add_rustup_target() {
36-
if [[ $TARGET != $HOST && ${CARGO:-cargo} == "cargo" ]]; then
36+
if [[ $TARGET != $HOST && $CARGO == cargo ]]; then
3737
rustup target add $TARGET
3838
fi
3939
}
4040

4141
install_xargo() {
42-
if [[ $CARGO == "xargo" ]]; then
42+
if [[ $CARGO == xargo ]]; then
4343
curl -sf "https://raw.githubusercontent.com/japaric/rust-everywhere/master/install.sh" | \
44-
bash -s -- --from japaric/xargo --at /root/.cargo/bin
44+
bash -s -- --from japaric/xargo --at /root/.cargo/bin --vers 0.1.5
4545
fi
4646
}
4747

4848
main() {
49-
if [[ $TRAVIS_OS_NAME == "osx" || ${IN_DOCKER_CONTAINER:-n} == "y" ]]; then
49+
if [[ $OSX || ${IN_DOCKER_CONTAINER:-n} == y ]]; then
5050
install_qemu
5151
install_gist
5252
install_binutils

ci/script.sh

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ gist_it() {
88
}
99

1010
build() {
11-
${CARGO:-cargo} build --target $TARGET
12-
${CARGO:-cargo} build --target $TARGET --release
11+
$CARGO build --target $TARGET
12+
$CARGO build --target $TARGET --release
1313
}
1414

1515
inspect() {
@@ -20,7 +20,7 @@ inspect() {
2020
set -e
2121

2222
# Check presence of weak symbols
23-
if [[ $TRAVIS_OS_NAME = "linux" ]]; then
23+
if [[ $LINUX ]]; then
2424
local symbols=( memcmp memcpy memmove memset )
2525
for symbol in "${symbols[@]}"; do
2626
$PREFIX$NM target/**/debug/deps/librlibc*.rlib | grep -q "W $symbol"
@@ -34,14 +34,14 @@ run_tests() {
3434
export RUST_TEST_THREADS=1
3535
fi
3636

37-
if [[ ${RUN_TESTS:-y} == "y" ]]; then
37+
if [[ $RUN_TESTS == y ]]; then
3838
cargo test --target $TARGET
3939
cargo test --target $TARGET --release
4040
fi
4141
}
4242

4343
main() {
44-
if [[ $TRAVIS_OS_NAME == "linux" && ${IN_DOCKER_CONTAINER:-n} == "n" ]]; then
44+
if [[ $LINUX && ${IN_DOCKER_CONTAINER:-n} == n ]]; then
4545
local tag=2016-08-24
4646

4747
docker run \
@@ -53,9 +53,7 @@ main() {
5353
-e TRAVIS_OS_NAME=$TRAVIS_OS_NAME \
5454
-v $(pwd):/mnt \
5555
japaric/rustc-builtins:$tag \
56-
sh -c 'set -ex;
57-
cd /mnt;
58-
export PATH="$PATH:/root/.cargo/bin";
56+
sh -c 'cd /mnt;
5957
bash ci/install.sh;
6058
bash ci/script.sh'
6159
else

0 commit comments

Comments
 (0)