Update travis CI (#516)
* Use japaric/trust for travis configuration * Moved the github pages logic (not running the script breaks the build) * Removed the x86 linux musl build
This commit is contained in:
parent
bd134fbaa4
commit
c721ba82b2
91
.travis.yml
91
.travis.yml
|
@ -1,42 +1,87 @@
|
||||||
|
# Based on the "trust" template v0.1.1
|
||||||
|
# https://github.com/japaric/trust/tree/v0.1.1
|
||||||
|
|
||||||
|
dist: trusty
|
||||||
language: rust
|
language: rust
|
||||||
sudo: false
|
services: docker
|
||||||
|
sudo: required
|
||||||
|
|
||||||
cache: cargo
|
cache: cargo
|
||||||
|
before_cache:
|
||||||
|
- chmod -R a+r $HOME/.cargo
|
||||||
|
|
||||||
rust:
|
env:
|
||||||
- stable
|
global:
|
||||||
- nightly
|
- CRATE_NAME=mdbook
|
||||||
|
- secure: DPzSRXyfRIVTibv1wOKFeGekXlL8sumGEZxpeq911MpLlrndOKmOo5Ibi3JD8fbUOsE9A/5spj4B2KQNjhbplH+Cp26oEikjuNAA6cA/b2+/TMoC3i0klAYpVopBBV3FFna0gLP+q6t6fzG2v9TJrvmmVav6KVX6ylPNvD/LoReCjrkpgLIQuAQ6dSQNor9uV+EVt4plKhhkiS28DlYdgmTvNb5g4dzOhs8hoWty72J765VYWEDDC8qXn6N9GyrhsC3dhjASGn+1QDSCADYdbG9nrRlb4CZhrfcgOnHhAFva363kshg9HtCphigMgQy2oZXk4nLWK90/HuaPPkVj+N/lpIYjtiHOunToZJfIb0MWzyVI+7+I7WR6n6XbhLCPMe/sPXHHQ3HhQhZZ9xv7CDx9IkYJQBcF3LC+9kzJRi4QT0UTqrxcO3ncgXwvholP8Vg2KKPqFcbuyLPzbvr/o8zIilvLUFAEoDPfTEwSAC4BCzaGkFQVWzhWkgw8Pe1ckOEYFkZ0VLBuCpEiz+x45sbBL1SnnO5xhpjmdc572ZyW7ZmAABw1VfiWhhBWg4WGSf8lLnDHhNA36Qon34pnME/xpJQtWoo7ZZkkzvzYP/oW88/0UIMWDSOYKz7MijXlbNUggwAwUhrLzXDuB71HUKfPreFubfUxbOpu+OtTcOQ=
|
||||||
|
|
||||||
os:
|
matrix:
|
||||||
- linux
|
include:
|
||||||
- osx
|
# Android
|
||||||
|
- env: TARGET=arm-linux-androideabi DISABLE_TESTS=1
|
||||||
|
|
||||||
|
# Linux
|
||||||
|
- env: TARGET=aarch64-unknown-linux-gnu
|
||||||
|
- env: TARGET=arm-unknown-linux-gnueabi
|
||||||
|
- env: TARGET=i686-unknown-linux-gnu
|
||||||
|
- env: TARGET=x86_64-unknown-linux-gnu
|
||||||
|
- env: TARGET=x86_64-unknown-linux-musl
|
||||||
|
|
||||||
|
# Mac
|
||||||
|
- env: TARGET=i686-apple-darwin
|
||||||
|
os: osx
|
||||||
|
- env: TARGET=x86_64-apple-darwin
|
||||||
|
os: osx
|
||||||
|
|
||||||
|
# BSD
|
||||||
|
- env: TARGET=i686-unknown-freebsd DISABLE_TESTS=1
|
||||||
|
- env: TARGET=x86_64-unknown-freebsd DISABLE_TESTS=1
|
||||||
|
- env: TARGET=x86_64-unknown-netbsd DISABLE_TESTS=1
|
||||||
|
|
||||||
|
# Other channels
|
||||||
|
- env: TARGET=x86_64-unknown-linux-gnu
|
||||||
|
rust: beta
|
||||||
|
- env: TARGET=x86_64-apple-darwin
|
||||||
|
os: osx
|
||||||
|
rust: beta
|
||||||
|
- env: TARGET=x86_64-unknown-linux-gnu
|
||||||
|
rust: nightly
|
||||||
|
- env: TARGET=x86_64-apple-darwin
|
||||||
|
os: osx
|
||||||
|
rust: nightly
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- set -e
|
||||||
|
- rustup self update
|
||||||
|
|
||||||
|
install:
|
||||||
|
- sh ci/install.sh
|
||||||
|
- source ~/.cargo/env || true
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- cargo build --verbose
|
- bash ci/script.sh
|
||||||
- cargo test --verbose
|
|
||||||
|
|
||||||
after_success:
|
after_success:
|
||||||
# Deploy the docs if the commit is on master
|
- bash ci/github_pages.sh
|
||||||
- test "$TRAVIS_PULL_REQUEST" == "false" &&
|
|
||||||
test "$TRAVIS_BRANCH" == "master" &&
|
|
||||||
test "$TRAVIS_RUST_VERSION" == "stable" &&
|
|
||||||
npm install stylus nib &&
|
|
||||||
bash ci/deploy.sh
|
|
||||||
|
|
||||||
before_deploy:
|
before_deploy:
|
||||||
# Script to create packages from the build artefacts to upload to GitHub
|
- sh ci/before_deploy.sh
|
||||||
- bash ci/before_deploy.sh
|
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
provider: releases
|
|
||||||
api_key:
|
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=
|
- secure: cURRWBr034iqBz/ifD7uOunBfNR30YxIXfgLX0osWz+iafkVbhDGYYz9sBmRraqO2P7L2koEXMADVb/md1kI2+ykiq/ml+l9zuEAZPVmvSGUN7ZD+7s+lu3l5OBPG5z175T+b2q2q2m8XVR7TW20ra4QbE0bq06KAoOyjSgQVBTSCYsL9uTsGwiVRMEqqJT/BmKhKJNkpGsTKyBSKkOXvfeAAbE260vXUDEN9TYdJ3fvteRrpwLX56ee64gIZUq0RjDc4SKIEqilM6iUtNMvurqaewYNGkiXKRruV6BPCHxEHo6NNT46kOJLBJTf7gZw//dWhSoWpg9P0gdAnPWm407kSa3F7aJ1eRShAFQ4BLyfz9efTqm+jP3fOp7Mm7igSh9w6caSRuOnSsUf5+raRQ8E5Y9HsWGzzpZQk24Fx9EGZ04EeDSdpZAFz+jcbMpHf8t2p4CEx0CCNwYvKx6EydMKbMF5QteQ8SQkXNLhv7Rz2OgtXWYZPRVCMfQfOplsi2InsLCrQxTgwh+6u654SqVSgaHG+IncEAxBrdWy4rHcg7qereUcKfcY3k96vaDxdn/T2c00Ig0aNFR91YnixGMd6J6tQgDcRK9jh6fUm1CCBE9hT+pNUmtgYKuWBoLZexUZFFnfuBed0WciBot1bGDDamndqKq0jJiAzg+GMHk=
|
||||||
file: ${PROJECT_NAME}-${TRAVIS_TAG}-${TRAVIS_OS_NAME}.tar.gz
|
file_glob: true
|
||||||
# don't delete the artifacts from previous phases
|
file: "$CRATE_NAME-$TRAVIS_TAG-$TARGET.*"
|
||||||
skip_cleanup: true
|
|
||||||
on:
|
on:
|
||||||
condition: $TRAVIS_RUST_VERSION = stable
|
condition: "$TRAVIS_RUST_VERSION = stable"
|
||||||
tags: true
|
tags: true
|
||||||
|
provider: releases
|
||||||
|
skip_cleanup: true
|
||||||
|
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- "/^v\\d+\\.\\d+\\.\\d+.*$/"
|
||||||
|
- master
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
email:
|
email:
|
||||||
|
|
|
@ -1,32 +1,31 @@
|
||||||
# `before_deploy` phase: here we package the build artifacts
|
# This script takes care of building your crate and packaging it for release
|
||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
mktempd() {
|
|
||||||
echo $(mktemp -d 2>/dev/null || mktemp -d -t tmp)
|
|
||||||
}
|
|
||||||
|
|
||||||
mk_artifacts() {
|
|
||||||
cargo build --target $TARGET --release
|
|
||||||
}
|
|
||||||
|
|
||||||
mk_tarball() {
|
|
||||||
local td=$(mktempd)
|
|
||||||
local out_dir=$(pwd)
|
|
||||||
|
|
||||||
cp target/$TARGET/release/mdbook $td
|
|
||||||
|
|
||||||
pushd $td
|
|
||||||
|
|
||||||
tar czf $out_dir/${PROJECT_NAME}-${TRAVIS_TAG}-${TRAVIS_OS_NAME}.tar.gz *
|
|
||||||
|
|
||||||
popd $td
|
|
||||||
rm -r $td
|
|
||||||
}
|
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
mk_artifacts
|
local src=$(pwd) \
|
||||||
mk_tarball
|
stage=
|
||||||
|
|
||||||
|
case $TRAVIS_OS_NAME in
|
||||||
|
linux)
|
||||||
|
stage=$(mktemp -d)
|
||||||
|
;;
|
||||||
|
osx)
|
||||||
|
stage=$(mktemp -d -t tmp)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
test -f Cargo.lock || cargo generate-lockfile
|
||||||
|
|
||||||
|
cross rustc --bin mdbook --target $TARGET --release -- -C lto
|
||||||
|
|
||||||
|
cp target/$TARGET/release/mdbook $stage/
|
||||||
|
|
||||||
|
cd $stage
|
||||||
|
tar czf $src/$CRATE_NAME-$TRAVIS_TAG-$TARGET.tar.gz *
|
||||||
|
cd $src
|
||||||
|
|
||||||
|
rm -rf $stage
|
||||||
}
|
}
|
||||||
|
|
||||||
main
|
main
|
|
@ -1,7 +1,17 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# Deploys the `book-example` to GitHub Pages
|
||||||
|
|
||||||
# Exit on error or variable unset
|
set -ex
|
||||||
set -o errexit -o nounset
|
|
||||||
|
# Only run this on the master branch for stable
|
||||||
|
if [ "$TRAVIS_PULL_REQUEST" != "false" ] ||
|
||||||
|
[ "$TRAVIS_BRANCH" != "master" ] ||
|
||||||
|
[ "$TRAVIS_RUST_VERSION" != "stable" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure we have the css dependencies
|
||||||
|
npm install stylus nib
|
||||||
|
|
||||||
NC='\033[39m'
|
NC='\033[39m'
|
||||||
CYAN='\033[36m'
|
CYAN='\033[36m'
|
||||||
|
@ -10,23 +20,20 @@ GREEN='\033[32m'
|
||||||
rev=$(git rev-parse --short HEAD)
|
rev=$(git rev-parse --short HEAD)
|
||||||
|
|
||||||
echo -e "${CYAN}Running cargo doc${NC}"
|
echo -e "${CYAN}Running cargo doc${NC}"
|
||||||
# Run cargo doc
|
cargo doc --features regenerate-css
|
||||||
cargo doc
|
|
||||||
|
|
||||||
echo -e "${CYAN}Running mdbook build${NC}"
|
echo -e "${CYAN}Running mdbook build${NC}"
|
||||||
# Run mdbook to generate the book
|
|
||||||
target/"$TARGET"/debug/mdbook build book-example/
|
target/"$TARGET"/debug/mdbook build book-example/
|
||||||
|
|
||||||
echo -e "${CYAN}Copying book to target/doc${NC}"
|
echo -e "${CYAN}Copying book to target/doc${NC}"
|
||||||
# Copy files from rendered book to doc root
|
|
||||||
cp -R book-example/book/* target/doc/
|
cp -R book-example/book/* target/doc/
|
||||||
|
|
||||||
cd target/doc
|
cd target/doc
|
||||||
|
|
||||||
echo -e "${CYAN}Initializing Git${NC}"
|
echo -e "${CYAN}Initializing Git${NC}"
|
||||||
git init
|
git init
|
||||||
git config user.name "Mathieu David"
|
git config user.name "Michael Bryan"
|
||||||
git config user.email "mathieudavid@mathieudavid.org"
|
git config user.email "michaelfbryan@gmail.com"
|
||||||
|
|
||||||
git remote add upstream "https://$GH_TOKEN@github.com/rust-lang-nursery/mdBook.git"
|
git remote add upstream "https://$GH_TOKEN@github.com/rust-lang-nursery/mdBook.git"
|
||||||
git fetch upstream
|
git fetch upstream
|
||||||
|
@ -39,4 +46,4 @@ git add -A .
|
||||||
git commit -m "rebuild pages at ${rev}"
|
git commit -m "rebuild pages at ${rev}"
|
||||||
git push -q upstream HEAD:gh-pages
|
git push -q upstream HEAD:gh-pages
|
||||||
|
|
||||||
echo -e "${GREEN}Deployement done${NC}"
|
echo -e "${GREEN}Deployed docs to GitHub Pages${NC}"
|
|
@ -0,0 +1,47 @@
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
main() {
|
||||||
|
local target=
|
||||||
|
if [ $TRAVIS_OS_NAME = linux ]; then
|
||||||
|
target=x86_64-unknown-linux-musl
|
||||||
|
sort=sort
|
||||||
|
else
|
||||||
|
target=x86_64-apple-darwin
|
||||||
|
sort=gsort # for `sort --sort-version`, from brew's coreutils.
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Builds for iOS are done on OSX, but require the specific target to be
|
||||||
|
# installed.
|
||||||
|
case $TARGET in
|
||||||
|
aarch64-apple-ios)
|
||||||
|
rustup target install aarch64-apple-ios
|
||||||
|
;;
|
||||||
|
armv7-apple-ios)
|
||||||
|
rustup target install armv7-apple-ios
|
||||||
|
;;
|
||||||
|
armv7s-apple-ios)
|
||||||
|
rustup target install armv7s-apple-ios
|
||||||
|
;;
|
||||||
|
i386-apple-ios)
|
||||||
|
rustup target install i386-apple-ios
|
||||||
|
;;
|
||||||
|
x86_64-apple-ios)
|
||||||
|
rustup target install x86_64-apple-ios
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# This fetches latest stable release
|
||||||
|
local tag=$(git ls-remote --tags --refs --exit-code https://github.com/japaric/cross \
|
||||||
|
| cut -d/ -f3 \
|
||||||
|
| grep -E '^v[0.1.0-9.]+$' \
|
||||||
|
| $sort --version-sort \
|
||||||
|
| tail -n1)
|
||||||
|
curl -LSfs https://japaric.github.io/trust/install.sh | \
|
||||||
|
sh -s -- \
|
||||||
|
--force \
|
||||||
|
--git japaric/cross \
|
||||||
|
--tag $tag \
|
||||||
|
--target $target
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
|
@ -0,0 +1,21 @@
|
||||||
|
# This script takes care of testing your crate
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# TODO This is the "test phase", tweak it as you see fit
|
||||||
|
main() {
|
||||||
|
cross build --target $TARGET
|
||||||
|
cross build --target $TARGET --release
|
||||||
|
|
||||||
|
if [ ! -z $DISABLE_TESTS ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
cross test --target $TARGET
|
||||||
|
cross test --target $TARGET --release
|
||||||
|
}
|
||||||
|
|
||||||
|
# we don't run the "test phase" when doing deploys
|
||||||
|
if [ -z $TRAVIS_TAG ]; then
|
||||||
|
main
|
||||||
|
fi
|
Loading…
Reference in New Issue