-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #118 from japaric/travis
Travis CI: expand to test and deploy for Linux and Mac
- Loading branch information
Showing
5 changed files
with
175 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,107 @@ | ||
sudo: false | ||
|
||
language: rust | ||
rust: | ||
- stable | ||
- beta | ||
- nightly | ||
matrix: | ||
allow_failure: | ||
- rust: nightly | ||
|
||
env: | ||
global: | ||
secure: l3/qEC4krRerllLQzni8j5AjngFi6pluWvBWj//1mJLoIEYwxlQ9mYxEdd9BqccWWFn3K0bVYCVC/64+tP6sRfLkZCe2gPUtwe7ITwCDbapUxmkiRObVJCs5yMQZt6idyhHUDKAXKgNCrusfI2BM3tKGBfRK7Cnn/R/7p/U9+q7D1sgJtUKp6ypVzK6A3jLNp3dFLFI19a5KmbZMVsaa7tOhtdDJjjr7ebsc9z7HMW5/OItiWU3FSauVQQlUMaCiEgFuIG7H7OnBAYWB/gNEtLuwfLqU9UjtWk/njNNRnmJ7m3y5HbQhv5H5F5mJUOq9XFlPLwPwyTeVztSGdQm6k8Pp2pgKBUjY27afBl9BWU+msmN6k0oXfhvIebiBPe/x2udiKeFik1xqOOEU1q9dF0sZiuPxCSM1n7tgWklJ8epgaRQaMPPQw9pO/2H5/ynHCJqBlw6WcdiqWtwAyyr/GEx62u/cg5IVkqb7KLmYsWzjS8wYG4CYs1eIxCw2xPZxP0FGuUXvxTBUPipFze6Z7FqxVauXtVe2D7c1P4738HZP660rmR0GYtHtKLny1QxCCK9sxd9JmcezFCSz4YeQ1od9xc0OzGJ2ullKNGizmGfYmgL6X8faNylLIEdaiHAcY16xV3L0g3fXL1Qg360UHQyj7GIv+0nqQnf+H9xRTTU= | ||
addons: | ||
apt: | ||
packages: | ||
- nodejs | ||
- npm | ||
- PROJECT_NAME=mdBook | ||
|
||
matrix: | ||
include: | ||
# Stable channel | ||
# TODO re-enable the i686-apple-darwin target when passcod/rsnotify#53 is fixed | ||
#- os: osx | ||
#env: TARGET=i686-apple-darwin | ||
#rust: stable | ||
- os: linux | ||
env: TARGET=i686-unknown-linux-gnu | ||
rust: stable | ||
addons: | ||
apt: | ||
packages: &i686_unknown_linux_gnu | ||
- gcc-multilib | ||
- os: osx | ||
env: TARGET=x86_64-apple-darwin | ||
rust: stable | ||
- os: linux | ||
env: TARGET=x86_64-unknown-linux-gnu | ||
rust: stable | ||
addons: | ||
apt: | ||
packages: | ||
- nodejs | ||
- npm | ||
- os: linux | ||
env: TARGET=x86_64-unknown-linux-musl | ||
rust: stable | ||
# Beta channel | ||
#- os: osx | ||
#env: TARGET=i686-apple-darwin | ||
#rust: beta | ||
- os: linux | ||
env: TARGET=i686-unknown-linux-gnu | ||
rust: beta | ||
addons: | ||
apt: | ||
packages: *i686_unknown_linux_gnu | ||
- os: osx | ||
env: TARGET=x86_64-apple-darwin | ||
rust: beta | ||
- os: linux | ||
env: TARGET=x86_64-unknown-linux-gnu | ||
rust: beta | ||
- os: linux | ||
env: TARGET=x86_64-unknown-linux-musl | ||
rust: beta | ||
# Nightly channel | ||
#- os: osx | ||
#env: TARGET=i686-apple-darwin | ||
#rust: nightly | ||
- os: linux | ||
env: TARGET=i686-unknown-linux-gnu | ||
rust: nightly | ||
addons: | ||
apt: | ||
packages: *i686_unknown_linux_gnu | ||
- os: osx | ||
env: TARGET=x86_64-apple-darwin | ||
rust: nightly | ||
- os: linux | ||
env: TARGET=x86_64-unknown-linux-gnu | ||
rust: nightly | ||
- os: linux | ||
env: TARGET=x86_64-unknown-linux-musl | ||
rust: nightly | ||
|
||
install: | ||
- npm install stylus nib | ||
- sh ci/install.sh | ||
|
||
script: | ||
- sh ci/script.sh | ||
|
||
after_success: | ||
- test $TRAVIS_PULL_REQUEST == "false" && test $TRAVIS_BRANCH == "master" && bash deploy.sh | ||
- test $TRAVIS_PULL_REQUEST == "false" && | ||
test $TRAVIS_BRANCH == "master" && | ||
test $TARGET == "x86_64-unknown-linux-gnu" && | ||
test $TRAVIS_RUST_VERSION = "stable" && | ||
npm install stylus nib && | ||
bash deploy.sh | ||
|
||
before_deploy: | ||
- sh ci/before_deploy.sh | ||
|
||
deploy: | ||
provider: releases | ||
api_key: | ||
secure: Z1k7WqX7z+tT4+SzTh4tBBzf11VaADB4AWuEczHtylaEb/0hRs8gaiHCNSVHm/QTp0QPWQR2Vw7uKMhVuxG7I8X7h31j3A7ulYBh/iVk0DVIrtrn2Q4WOED9CpoXLuLtk2nxo9MBViFW7mw4nJe9H2Tn9o/9oEYBuwzekvW5mh4muqUuCVTr8eQVYbs3jbC9pQy5oYjOLeUnlL9Cey5VN/nAhzAtyFP+6lIMri0PKit4JtkFou/O1MEpFYlP3VGC2lFiWuByocPKBT/L45FecS9qoHq+i6+ZCPDH2eu46nuYsDbLKAkPdGvf1MdPBPwoj0vSnZbgaTisQ4hIoBngQQQPZlPaGtcdd6g6asxSfnbA9cQhClI5oZJmg+ksxQE+peE8pnbmZ10Ix0PpIkkfWdQeMdUUCQarOTkTK54Munw+X+kp1lH19j6+krQPLBYr95fPRd4b5tWsJD2+pb/UOYFEEJxMNoUHyLCrtdCO7imOwrSUcv51+Z8UudqfPpKQeszrJcntL4owip35r3sF5TsE9YfW5qssLC164IylvP32y1AcfL1jqg8b+zrqLZKanjvDOJ1dtHHuwKqxcwf7PhAf0YjAtVSH9OIYcDzmDa0EMLrq7EK0fs6NAeb5qt6CML7pZrRS3fmOxN53Fbmj81qm6TmjQjDe4dmZlELgNow= | ||
file: ${PROJECT_NAME}-${TRAVIS_TAG}-${TARGET}.tar.gz | ||
# don't delete the artifacts from previous phases | ||
skip_cleanup: true | ||
# deploy when a new tag is pushed | ||
on: | ||
condition: $TRAVIS_RUST_VERSION = stable | ||
tags: true | ||
|
||
notifications: | ||
email: | ||
on_success: never |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# `before_deploy` phase: here we package the build artifacts | ||
|
||
set -ex | ||
|
||
cargo build --target $TARGET --release | ||
|
||
mkdir staging | ||
|
||
cp target/$TARGET/release/mdbook staging | ||
|
||
cd staging | ||
|
||
tar czf ../${PROJECT_NAME}-${TRAVIS_TAG}-${TARGET}.tar.gz * |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# `install` phase: install stuff needed for the `script` phase | ||
|
||
set -ex | ||
|
||
case $TARGET in | ||
# Install standard libraries needed for cross compilation | ||
i686-apple-darwin | \ | ||
i686-unknown-linux-gnu | \ | ||
x86_64-unknown-linux-musl) | ||
case $TRAVIS_RUST_VERSION in | ||
stable) | ||
# e.g. 1.6.0 | ||
version=$(rustc -V | cut -d' ' -f2) | ||
;; | ||
*) | ||
version=$TRAVIS_RUST_VERSION | ||
;; | ||
esac | ||
tarball=rust-std-${version}-${TARGET} | ||
|
||
curl -Os http://static.rust-lang.org/dist/${tarball}.tar.gz | ||
|
||
tar xzf ${tarball}.tar.gz | ||
|
||
${tarball}/install.sh --prefix=$(rustc --print sysroot) | ||
|
||
rm -r ${tarball} | ||
rm ${tarball}.tar.gz | ||
;; | ||
# Nothing to do for native builds | ||
*) | ||
;; | ||
esac |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# `script` phase: you usually build, test and generate docs in this phase | ||
|
||
set -ex | ||
|
||
case "$TRAVIS_OS_NAME" in | ||
linux) | ||
host=x86_64-unknown-linux-gnu | ||
;; | ||
osx) | ||
host=x86_64-apple-darwin | ||
;; | ||
esac | ||
|
||
# NOTE Workaround for rust-lang/rust#31907 - disable doc tests when crossing | ||
if [ "$host" != "$TARGET" ]; then | ||
if [ "$TRAVIS_OS_NAME" = "osx" ]; then | ||
brew install gnu-sed --default-names | ||
fi | ||
|
||
find src -name '*.rs' -type f | xargs sed -i -e 's:\(//.\s*```\):\1 ignore,:g' | ||
fi | ||
|
||
cargo build --target $TARGET --verbose | ||
cargo test --target $TARGET --verbose |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters