dart-sdk/.travis.yml
Bob Nystrom 0b2c9b048d Dynamically load packages for dartdevc tests in test.dart.
This involves a few pieces:

- Add support to DDC for specifying the module name associated with a
  given summary. This lets test.dart invoke DDC using summaries in the
  build directory outside of the directory containing the test itself.

- Add support to the build scripts for building the packages. This adds
  a new GN target that builds everything needed to run test.dart with
  dartdevc. In particular, it invokes build_pkgs.dart to compile the
  relevant packages to JS+summary so that the tests can use them.

  This requires some changes to build_pkgs.dart so it can output to a
  given directory.

- In test.dart, when tests are compiled with dartdevc, pass in the
  summaries for the packages so they don't get compiled in. Then, when
  the test is run, configure require.js with the right paths to their
  JS files so they can be loaded.

  I also removed a bunch of unneeded buildDir parameters being passed
  around the various CompilerConfiguration class methods now that they
  have direct access to the configuration.

Fix #29923.

R=vsm@google.com, whesse@google.com, zra@google.com

Review-Url: https://codereview.chromium.org/2955513002 .
2017-06-29 13:45:57 -07:00

95 lines
3.3 KiB
YAML

language: dart
sudo: required
dist: trusty
dart:
- dev
cache:
directories:
- $HOME/.npm
- $HOME/.nvm
- $HOME/.pub-cache/hosted
- pkg/dev_compiler/node_modules
addons:
firefox: latest
before_install:
# g++4.8.1 setup
- if [ "$CXX" == "g++" ]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi
# clang 3.4 setup
- if [ "$CXX" == "clang++" ]; then sudo add-apt-repository -y ppa:h-rayflood/llvm; fi
- sudo apt-get update -qq
# g++4.8.1 install
- if [ "$CXX" = "g++" ]; then sudo apt-get install -qq g++-4.8; fi
- if [ "$CXX" = "g++" ]; then export CXX="g++-4.8"; fi
# clang 3.4 install
- if [ "$CXX" == "clang++" ]; then sudo apt-get install --allow-unauthenticated -qq clang-3.4; fi
- if [ "$CXX" == "clang++" ]; then export CXX="clang++-3.4"; fi
- if [ "$CXX" ]; then $CXX --version ; fi
# Chrome install
- wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
- wget https://dl.google.com/linux/direct/google-chrome-unstable_current_amd64.deb
- sudo dpkg -i google-chrome*.deb
- /usr/bin/google-chrome --version
- export CHROME_BIN=/usr/bin/google-chrome
- /usr/bin/google-chrome-unstable --version
- export CHROME_CANARY_BIN=/usr/bin/google-chrome-unstable
# Install Depot Tools
- git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
- export PATH=`pwd`/depot_tools:"$PATH"
# Checkout everything to pull in sdk and third_party dart packages
- cd ..
- 'gclient config --spec=''solutions = [ { "name": "sdk", "url": "git@github.com:dart-lang/sdk.git", "deps_file": "DEPS", "managed": False } ]'''
- gclient sync -n
- download_from_google_storage --no_auth --no_resume --bucket dart-dependencies --extract -s sdk/third_party/pkg/unittest.tar.gz.sha1
- cd sdk
# If a C++ compiler is set, run hooks and build the SDK - else use the preinstalled SDK instead.
- export DART_USE_GYP=1
- if [ "$CXX" ]; then gclient runhooks ; fi
- if [ "$CXX" ]; then ./tools/build.py -m release create_sdk ; fi
- if [ "$CXX" ]; then export PATH=`pwd`/out/ReleaseX64/dart-sdk/bin:"$PATH" ; fi
- dart --version
# DDC setup
- cd pkg/dev_compiler
- pub global activate dart_coveralls
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
install:
# Empty to suppress default pub get behavior
before_script:
# Node modules used by DDC
- nvm install 6.9.1
- npm install
script:
# Run DDC tests
- if [[ -z "$TEST" ]]; then ./tool/presubmit.sh ; fi
- if [[ "$TEST" == coverage ]]; then ./tool/build_sdk.sh && ./tool/coverage.sh ; fi
- if [[ "$TEST" == node ]]; then ./tool/node_test.sh ; fi
- if [[ "$TEST" == package ]]; then ./tool/build_sdk.sh && ./tool/build_pkgs.dart gen/codegen_output/pkg travis; fi
env:
- ANALYZER=master
- ANALYZER=master DDC_BROWSERS=Firefox
- ANALYZER=master DDC_BROWSERS=ChromeCanaryTravis
# TODO(vsm): We don't get much value from this for DDC & it eats up travis
# cycles. Consider adding back at some point to test the built dartdevc
# snapshot.
# - ANALYZER=master CXX=clang++
- TEST=coverage
- TEST=package
matrix:
allow_failures:
- env: ANALYZER=master CXX=clang++
- env: ANALYZER=master DDC_BROWSERS=ChromeCanaryTravis
notifications:
email:
recipients:
- dev-compiler+buildbot@dartlang.org
on_failure: change