mirror of
https://github.com/denoland/deno.git
synced 2024-12-22 07:14:47 -05:00
198e396ead
- Based on code from @qti3e and @piscisaureus in #724 and #1125 respectively. - TODO The DENO_BUILD_PATH env var must be supplied and must be an absolute path, this restriction should be removed in future work.
125 lines
3.9 KiB
YAML
125 lines
3.9 KiB
YAML
# Copyright 2018 the Deno authors. All rights reserved. MIT license.
|
|
language: c++
|
|
matrix:
|
|
include:
|
|
- os: linux
|
|
env: BENCHMARK=1
|
|
sudo: required
|
|
- os: osx
|
|
env:
|
|
global:
|
|
- CARGO_HOME=$HOME/.cargo/
|
|
- RUSTUP_HOME=$HOME/.rustup/
|
|
- RUST_BACKTRACE=1
|
|
- HOMEBREW_PATH=$HOME/homebrew/
|
|
- DENO_BUILD_ARGS="use_custom_libcxx=false use_sysroot=false"
|
|
- DENO_BUILD_PATH=$HOME/out/Default
|
|
- CARGO_TARGET_DIR=$DENO_BUILD_PATH
|
|
- DENO_BUILD_MODE=release
|
|
- PATH=$TRAVIS_BUILD_DIR/third_party/llvm-build/Release+Asserts/bin:$CARGO_HOME/bin:$PATH
|
|
- CCACHE_CPP2=yes
|
|
- CCACHE_SLOPPINESS=time_macros
|
|
- SCCACHE_DIR=$HOME/.sccache/
|
|
- SCCACHE_CACHE_SIZE=1G
|
|
- SCCACHE_IDLE_TIMEOUT=0
|
|
cache:
|
|
ccache: true
|
|
directories:
|
|
- "$CARGO_HOME"
|
|
- "$RUSTUP_HOME"
|
|
- "$HOMEBREW_PATH"
|
|
- "$SCCACHE_DIR"
|
|
- third_party/v8/build/linux/debian_sid_amd64-sysroot/
|
|
- third_party/v8/third_party/llvm-build/
|
|
install:
|
|
- nvm install v8
|
|
- nvm use --delete-prefix v8
|
|
- node -v
|
|
- |-
|
|
# 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
|
|
- |-
|
|
# 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 --default-toolchain 1.30.0
|
|
fi
|
|
rustc --version
|
|
cargo --version
|
|
- |-
|
|
# Install and start sccache.
|
|
if [ ! $(which sccache) ]; then
|
|
cargo install sccache
|
|
fi
|
|
sccache --version
|
|
sccache --start-server
|
|
- |-
|
|
# Install hyperfine (if benchmarking is enabled for this build).
|
|
if [ $BENCHMARK ]; then
|
|
if [ ! $(which hyperfine) ]; then
|
|
cargo install hyperfine
|
|
fi
|
|
hyperfine --version
|
|
fi
|
|
- |-
|
|
# Remove unnnecessary cargo and rustup directories.
|
|
# This keeps the Travis CI cache small and fast.
|
|
rm -rf "$CARGO_HOME"registry
|
|
rm -rf "$RUSTUP_HOME"downloads
|
|
rm -rf "$RUSTUP_HOME"tmp
|
|
rm -rf "$RUSTUP_HOME"toolchains/*/etc
|
|
rm -rf "$RUSTUP_HOME"toolchains/*/share
|
|
before_script:
|
|
- ./tools/setup.py
|
|
script:
|
|
- ./tools/lint.py
|
|
- ./tools/test_format.py
|
|
- bash -c "sleep 2100; pkill ninja; pkill cargo" &
|
|
- ./tools/build.py -j2
|
|
- RUSTC_WRAPPER=sccache cargo check -j2 --release
|
|
- ./tools/test.py $DENO_BUILD_PATH
|
|
after_script:
|
|
- ccache --show-stats
|
|
- sccache --stop-server
|
|
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
|