deno/.travis.yml

96 lines
3.1 KiB
YAML

language: c++
matrix:
include:
- os: linux
env: BENCHMARK=1
sudo: required
- os: osx
env:
global:
- CARGO_PATH=$HOME/.cargo/
- RUSTUP_PATH=$HOME/.rustup/
- HOMEBREW_PATH=$HOME/homebrew/
- DENO_BUILD_ARGS="use_custom_libcxx=false use_sysroot=false"
- DENO_BUILD_PATH=$HOME/out/Default
- DENO_BUILD_MODE=release
- PATH=$TRAVIS_BUILD_DIR/third_party/llvm-build/Release+Asserts/bin:$CARGO_PATH/bin:$PATH
- CCACHE_CPP2=yes
- CCACHE_SLOPPINESS=time_macros
cache:
ccache: true
directories:
- "$CARGO_PATH"
- "$RUSTUP_PATH"
- "$HOMEBREW_PATH"
- third_party/v8/build/linux/debian_sid_amd64-sysroot/
- third_party/v8/third_party/llvm-build/
install:
- |-
# OS X: install a private copy of homebrew.
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
export BREW="${HOMEBREW_PATH}bin/brew"
export PATH="${HOMEBREW_PATH}bin:$PATH"
if [[ ! -x "$BREW" ]]; then
git clone git://github.com/homebrew/brew "$HOMEBREW_PATH"
fi
"$BREW" --version
fi
- |-
# Install ccache (if necessary) and set it up.
if [[ "$TRAVIS_OS_NAME" == "osx" && ! $(which ccache) ]]; then
"$BREW" install ccache
fi
ccache --version | head -n 1
ccache --max-size=1G --show-stats
- |-
# Install Rust.
# TODO(ry) Include rustc in third_party.
# https://github.com/denoland/deno/issues/386
if [ ! $(which rustc) ]; then
curl -sSf https://sh.rustup.rs | sh -s -- -y
fi
rustc --version
cargo --version
- |-
# Install Hyperfine (if benchmarking is enabled for this build).
if [ $BENCHMARK ]; then
if [ ! $(which hyperfine) ]; then
cargo install hyperfine
fi
hyperfine --version
fi
before_script:
- ./tools/setup.py
script:
- ./tools/lint.py
- bash -c "sleep 2100; pkill ninja" &
- ./tools/build.py -j2
- ./tools/test.py $DENO_BUILD_PATH
after_success:
- |
# Run benchmarks and publish the result to github pages.
if [ $BENCHMARK ]; then
./tools/benchmark.py $DENO_BUILD_PATH &&
cp -r website/* gh-pages/
fi
before_deploy:
- gzip -c $DENO_BUILD_PATH/deno > $DENO_BUILD_PATH/deno_${TRAVIS_OS_NAME}_x64.gz
deploy:
- provider: releases
api_key: &github-token
secure: RIwv515oDcPAlEvt7uG8FeSFi6Tz6ODJUOXcFj6FYUPszxJ7Cg1kBLKln+fNW5OeOc52VsaZb/vPZ85skyEM6zk2ijL9FcSnnfNEm548w77iH6G0sk09NgBTy6KRXES6NZHD9jN1YTWYkT2G1NQi7mLqxR8a8pnWTbeK5HhtSWGsZPtXqf5iQbvnWsmKA0/w+FIgKupU0xe/qsYjh0eMLYpZDUWoKO0VxBKJ/ix5Uz91aJTjMIcHHij+ALg4pk+FkDotdyx39XB9b25KDxGuaI7NxWjSPzDxs/ZBHP6QYDLO0ti93ftvLAxRoBKPFoZrXqAu3KG9anr9WvxE40DO9OdV0VX2ZUatMUQm3DpSheN8ml2sErFqjIInqlpkdOVDYORz7FikPxkb9DKt+iuyFfxPRa4YWJv2tg8+Hy/nRCQw69OoKqrSNJ8KJDB3OjYbRBtdHz79RLJhTsGZla6RiyXfM7crR7CbFjbwdbW3Pt60t24fhvXQ0SwR0QTgzS/ieYEQHq/9GtSQA/Tn4kdIkyN6BdOMrQd/aUtgKmNdqbSlfmWGNyNZIxHdB+3RrTNT1tagkRI4UHEUfEujpIdYKwLjv0Xmi/VtTM+zOSkzHsIWGPfHBmIGnXfAItUHqivQYJ15E+dzg3T1CEbBxkDQtvwien9Fa8/pBsMkyovl8ps=
file: "$DENO_BUILD_PATH/deno_${TRAVIS_OS_NAME}_x64.gz"
on:
tags: true
repo: denoland/deno
skip-cleanup: true
- provider: pages
github-token: *github-token
keep-history: true
local-dir: gh-pages
on:
branch: master
condition: $BENCHMARK == 1
repo: denoland/deno
skip-cleanup: true