Skip to content

Commit eaff2fc

Browse files
committed
Rework CI and add macOS builds
1 parent 4e4bf45 commit eaff2fc

File tree

2 files changed

+61
-35
lines changed

2 files changed

+61
-35
lines changed

.travis.yml

Lines changed: 22 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,39 @@
11
language: rust
2+
23
addons:
3-
apt:
4-
sources:
5-
- llvm-toolchain-precise-3.8
6-
- ubuntu-toolchain-r-test
7-
packages:
8-
- libclang-3.8-dev
9-
- llvm-3.8-dev
10-
env:
11-
- LLVM_VERSION=3.8
4+
apt:
5+
sources:
6+
- ubuntu-toolchain-r-test
7+
packages:
8+
- gcc-5
9+
10+
os:
11+
- linux
12+
- osx
13+
1214
rust:
1315
- stable
1416
- nightly
17+
18+
env:
19+
- LLVM_VERSION=3.8 BINDGEN_FEATURES=llvm_stable
20+
- LLVM_VERSION=3.9 BINDGEN_FEATURES=
21+
1522
cache:
1623
directories:
1724
- $HOME/.cargo
1825

19-
before_install:
20-
-
21-
if [ "${TRAVIS_OS_NAME}" = "osx" ]; then
22-
if [ "${LLVM_VERSION}" != "devtools" ]; then
23-
brew update >/dev/null;
24-
brew install llvm3${LLVM_VERSION#3.};
25-
fi
26-
fi
27-
28-
before_script:
29-
-
30-
if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
31-
export LIBCLANG_PATH=/usr/lib/llvm-${LLVM_VERSION}/lib;
32-
elif [ "${TRAVIS_OS_NAME}" = "osx" ]; then
33-
if [ "${LLVM_VERSION}" = "devtools" ]; then
34-
export LIBCLANG_PATH=/Library/Developer/CommandLineTools/usr/lib;
35-
else
36-
export LIBCLANG_PATH=`brew --prefix llvm3${LLVM_VERSION#3.}`/lib/llvm-${LLVM_VERSION}/lib;
37-
fi
38-
fi
39-
- echo $LIBCLANG_PATH
26+
before_install: . ./ci/before_install.sh
4027

4128
script:
42-
- cargo build --verbose --features llvm_stable
43-
- cargo test --features llvm_stable
44-
- cargo build --release --verbose --features llvm_stable
45-
- cargo test --release --features llvm_stable
29+
- cargo build --verbose --features "$BINDGEN_FEATURES"
30+
- cargo test --features "$BINDGEN_FEATURES"
31+
- cargo build --release --verbose --features "$BINDGEN_FEATURES"
32+
- cargo test --release --features "$BINDGEN_FEATURES"
4633
- git add -A
4734
- git diff @
4835
- git diff-index --quiet HEAD
49-
- cargo build --features "llvm_stable _docs"
36+
- cargo build --features "$BINDGEN_FEATURES _docs"
5037

5138
notifications:
5239
webhooks: http://build.servo.org:54856/travis

ci/before_install.sh

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
set -e
2+
pushd ~
3+
4+
# Workaround for Travis CI macOS bug (https://github.com/travis-ci/travis-ci/issues/6307)
5+
if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
6+
rvm get head || true
7+
fi
8+
9+
function llvm_version_triple() {
10+
if [ "$1" == "3.8" ]; then
11+
echo "3.8.0"
12+
elif [ "$1" == "3.9" ]; then
13+
echo "3.9.0"
14+
fi
15+
}
16+
17+
function llvm_download() {
18+
export LLVM_VERSION_TRIPLE=`llvm_version_triple ${LLVM_VERSION}`
19+
export LLVM=clang+llvm-${LLVM_VERSION_TRIPLE}-x86_64-$1
20+
21+
wget http://llvm.org/releases/${LLVM_VERSION_TRIPLE}/${LLVM}.tar.xz
22+
mkdir llvm
23+
tar -xf ${LLVM}.tar.xz -C llvm --strip-components=1
24+
25+
export LLVM_CONFIG_PATH=`pwd`/llvm/bin/llvm-config
26+
if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
27+
cp llvm/lib/libclang.dylib /usr/local/lib/libclang.dylib
28+
fi
29+
}
30+
31+
32+
if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
33+
llvm_download linux-gnu-ubuntu-14.04
34+
else
35+
llvm_download apple-darwin
36+
fi
37+
38+
popd
39+
set +e

0 commit comments

Comments
 (0)