summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: ad97a7651967ffe64343282072e22d023e50f0c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# 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=$TRAVIS_BUILD_DIR/third_party/rust_crates/
  - RUSTUP_HOME=$HOME/.rustup/
  - RUST_BACKTRACE=1
  - CARGO_TARGET_DIR=$HOME/target
  - PATH=$TRAVIS_BUILD_DIR/third_party/llvm-build/Release+Asserts/bin:$CARGO_HOME/bin:$PATH
  - RUSTC_WRAPPER=sccache
  - SCCACHE_BUCKET=deno-sccache
  - AWS_ACCESS_KEY_ID=AKIAIVRN52PLDBP55LBQ
  # AWS_SECRET_ACCESS_KEY=...
  - secure: "ugSLNiUOQs53Oyy78EQyr2bu+//uoskbuoucenUUHM5I11M15yq1XuBJ26fIK1Jatza9pOGJNI8+4dSMWZW1GMFqgOZTKXv4kZFqU915/L1gsfS2bljB8pD1Qoq68ieGCQ49vBSFOWP24gtWBfKVJqU3HGHJgA5Ia/ujW3e37jr20xGqaBEcTjgin2fjm7VTao+hOOAMf47YkZNTEuLEHVPbDZM2tCCSlUdLpdyPB6mzX7XVmRxO26mtaHEeecivtaS6xXJXmns7OkntOzwgJi46B5uMgZz42UZ9qy1fCq8yCOyADb/Hu2WaJm7MIehHVhdC/siRzUUSOJ4N9gOPaFFAy5D28sDEa/IvlVriOwXirmDdPSlkTpwZ1NiisZXdZMaK6CWroaCHv9hYrJ7wKcntLQjLnnnskcyqxIVC7uEdlKHyLTNziyxol6oU/2Ym1NDoYWPDzcIeCkCr+xBapLXTVcg60YvcL/h+6wy5rp1v2h9R5B8HCCvmyc2X/FyaAmi8P7DYYHQL8+g+B0nGmzrrSGJzsEL7vChyiKfeNG7nnJKrU1+V8/+bPGsuPOK1XDTx80Uq56EzjHUPXy59zqtYL7ZZAIL0BQPxgm43yUCJfYSIKiwB9Odu+vb2DLDk5CLi45OHh2K7yi9m/lxlXla945az5OYO2l7a5m7rWF8="
cache:
  directories:
  - "$RUSTUP_HOME"
  - $CARGO_HOME/registry/index/
  - $CARGO_HOME/registry/cache/
  - prebuilt/
  - 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
- |-
  # Install Rust.
  # TODO(ry) Include rustc in third_party.
  # https://github.com/denoland/deno/issues/386
  if [ ! $(rustc --version | grep 1.30.0) ]; then
    curl -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.30.0
    rustup default 1.30.0
  fi
  rustc --version
  cargo --version
- |-
  if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
    export PATH="`pwd`/prebuilt/mac:$PATH"
  else
    export PATH="`pwd`/prebuilt/linux64:$PATH"
  fi
- |-
  # Remove unnnecessary cargo and rustup directories.
  # This keeps the Travis CI cache small and fast.
  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
# Start sccache, then throw away the S3 access key.
- |-
  sccache --start-server
  unset AWS_SECRET_ACCESS_KEY
script:
- |-
  # Check lint and format.
  set -e # Fail immediately if any of the following fail.
  ./tools/lint.py
  ./tools/test_format.py

- |-
  # LSAN build. We are in the process of getting a completely clean LSAN build,
  # but it will take some work. So for now we just run a subset of the tests.
  echo is_asan=true >> target/debug/args.gn
  echo is_lsan=true >> target/debug/args.gn
  # We want to detect leaks during the build process as well as when executing
  # the tests. So set the ASAN_OPTIONS env var before build.py is run.
  export ASAN_OPTIONS=detect_leaks=1
  ./tools/build.py -C target/debug -j2 test_cc
  ./target/debug/test_cc

- |-
  # Build deno.exe with Cargo first. Both builds write their output to the same
  # directory. We want the final one (which gets tested and released) to be
  # built by Ninja.
  cargo build --release -vv -j2

- |-
  # Release build and test
  ./tools/build.py -C target/release -j2
  DENO_BUILD_MODE=release ./tools/test.py

- sccache --stop-server
after_success:
- |
  # Run benchmarks and publish the result to github pages.
  if [ $BENCHMARK ]; then
    ./tools/benchmark.py target/release &&
    cp -r website/* gh-pages/
  fi
before_deploy:
- gzip -c target/release/deno > target/release/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: "target/release/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