diff --git a/.gitignore b/.gitignore index 14eede2a8..397fe04df 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,8 @@ gen tmp npm-debug.log .DS_Store +dart-sdk +dartium **/*.dart.js **/*.dart.js.deps **/*.dart.js.map diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..1475751e3 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,27 @@ +language: node_js +node_js: + - 0.10 + +env: + matrix: + - JOB=unit-stable + # - JOB=unit-dev + global: + - CHROME_BIN=/usr/bin/google-chrome + +before_install: + - "export DISPLAY=:99.0" + - "sh -e /etc/init.d/xvfb start" + - "sudo apt-get update -qq" + - "sudo apt-get install -qq unzip chromium-browser" + - "sudo apt-get install libxss1" + - "wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" + - "sudo dpkg -i google-chrome*.deb" + - "sudo chmod u+s /opt" + + +before_script: + - ./scripts/travis/setup.sh + +script: + - ./scripts/travis/build.sh diff --git a/analyze.sh b/analyze.sh index 46bbe351f..e9960eb06 100755 --- a/analyze.sh +++ b/analyze.sh @@ -1,28 +1,3 @@ #!/bin/sh - -DART_ANALYSER_BIN=`which dartanalyzer` - -# OS-specific Dartium path defaults -if [ -z $DART_ANALYSER_BIN ]; then - case $( uname -s ) in - Darwin) - DART_ANALYSER_BIN=/Applications/dart/dart-sdk/bin/dartanalyzer - ;; - Linux) - DART_ANALYSER_BIN=/opt/dart-sdk/bin/dartanalyzer - esac -fi - -OUT=tmp/all.dart -mkdir -p tmp - -$DART_ANALYSER_BIN --version - -echo // generated file > $OUT - -for FILE in $(ls lib/angular.dart perf/*_perf.dart test/*_spec.dart test/*/*_spec.dart) -do - echo export \'../$FILE\' hide main, NestedRouteInitializer\; >> $OUT -done - -./generate.sh && $DART_ANALYSER_BIN $OUT +echo DPRICATED: use ./scripts/analyze.sh +$(dirname $0)/scripts/analyze.sh diff --git a/dartium.sh b/dartium.sh deleted file mode 100755 index 7c2d32016..000000000 --- a/dartium.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -DART_FLAGS='--enable-type-checks --enable-asserts' \ - open -a Dartium $@ diff --git a/genDocs.sh b/genDocs.sh index 0eeea7dda..eaa4ce9a8 100755 --- a/genDocs.sh +++ b/genDocs.sh @@ -1,8 +1,3 @@ #!/bin/bash - -dartdoc \ - --package-root=packages/ \ - --out doc \ - --mode=static \ - --exclude-lib=js,metadata,meta,mirrors,intl,number_symbols,number_symbol_data,intl_helpers,date_format_internal,date_symbols,angular.util \ - packages/angular/angular.dart lib/mock/module.dart \ +echo DEPRICATED: use ./scripts/generate-documentation.sh +$(dirname $0)/scripts/generate-documentation.sh diff --git a/generate.sh b/generate.sh index 3762219bd..95649b4eb 100755 --- a/generate.sh +++ b/generate.sh @@ -1,9 +1,3 @@ #!/bin/sh - -mkdir -p gen - -cat test/core/parser/generated_functions.dart | sed -e 's/_template;/_generated;/' | grep -v REMOVE > gen/generated_functions.dart -dart bin/parser_generator_for_spec.dart >> gen/generated_functions.dart - -cat test/core/parser/generated_getter_setter.dart | sed -e 's/_template;/_generated;/' | grep -v REMOVE > gen/generated_getter_setter.dart -dart bin/parser_generator_for_spec.dart getter_setter >> gen/generated_getter_setter.dart +echo DEPRICATED: use ./scripts/generate-expressions.sh +$(dirname $0)/scripts/generate-expressions.sh diff --git a/karma.conf.js b/karma.conf.js index 7c9931d45..72bf0bcb5 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -30,11 +30,17 @@ module.exports = function(config) { 'karma-dart', 'karma-chrome-launcher', 'karma-script-launcher', + 'karma-phantomjs-launcher', 'karma-junit-reporter', '../../../karma-parser-generator', '../../../karma-parser-getter-setter' ], + customLaunchers: { + Dartium: { base: 'ChromeCanary', flags: ['--no-sandbox'] }, + ChromeNoSandbox: { base: 'Chrome', flags: ['--no-sandbox'] } + }, + preprocessors: { 'test/core/parser/generated_functions.dart': ['parser-generator'], 'test/core/parser/generated_getter_setter.dart': ['parser-getter-setter'] diff --git a/package.json b/package.json index 117e85e96..81544e9a2 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,12 @@ "dependencies" : { "karma" : "0.10.2", "karma-dart" : "0.2.6", + "karma-script-launcher": "*", "karma-chrome-launcher": "*", + "karma-phantomjs-launcher": "*", "karma-firefox-launcher": "*", - "karma-junit-reporter": "0.1.0" + "karma-junit-reporter": "0.1.0", + "jasmine-node": "*" } } + diff --git a/scripts/analyze.sh b/scripts/analyze.sh new file mode 100755 index 000000000..02c24298f --- /dev/null +++ b/scripts/analyze.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +set -e + +. $(dirname $0)/env.sh + +OUT=tmp/all.dart +mkdir -p tmp + +$DARTANALYZER --version + +echo // generated file > $OUT + +for FILE in $(ls lib/angular.dart perf/*_perf.dart test/*_spec.dart test/*/*_spec.dart) +do + echo export \'../$FILE\' hide main, NestedRouteInitializer\; >> $OUT +done + +$(dirname $0)/generate-expressions.sh + +$DARTANALYZER $OUT diff --git a/scripts/env.sh b/scripts/env.sh new file mode 100755 index 000000000..4497c17fe --- /dev/null +++ b/scripts/env.sh @@ -0,0 +1,28 @@ +#!/bin/sh +set -e +DART=`which dart|cat` # pipe to cat to ignore the exit code +export DARTSDK=`which dart | sed -e 's/\/dart\-sdk\/.*$/\/dart-sdk/'` +if [ "$DARTSDK" = "/Applications/dart/dart-sdk" ]; then + # Assume we are a mac machine with standard dart setup + export DARTIUM="/Applications/dart/chromium/Chromium.app/Contents/MacOS/Chromium" +else + export DARTSDK="`pwd`/dart-sdk" + case $( uname -s ) in + Darwin) + export DARTIUM=${DARTIUM:-./dartium/Chromium.app/Contents/MacOS/Chromium} + ;; + Linux) + export DARTIUM=${DARTIUM:-./dartium/chrome} + ;; + esac +fi +export DART=${DART:-"$DARTSDK/bin/dart"} +export PUB=${PUB:-"$DARTSDK/bin/pub"} +export DARTANALYZER=${DARTANALYZER:-"$DARTSDK/bin/dartanalyzer"} +export DARTDOC=${DARTDOC:-"$DARTSDK/bin/dartdoc"} + + +export CHROME_CANARY_BIN=${CHROME_CANARY_BIN:-"$DARTIUM"} +export CHROME_BIN=${CHROME_BIN:-"google-chrome"} +export DART_FLAGS='--enable_type_checks --enable_asserts' +export PATH=$PATH:$DARTSDK/bin diff --git a/scripts/generate-documentation.sh b/scripts/generate-documentation.sh new file mode 100755 index 000000000..fbfb3153c --- /dev/null +++ b/scripts/generate-documentation.sh @@ -0,0 +1,8 @@ +#!/bin/bash +. $(dirname $0)/env.sh +$DARTDOC \ + --package-root=packages/ \ + --out doc \ + --mode=static \ + --exclude-lib=js,metadata,meta,mirrors,intl,number_symbols,number_symbol_data,intl_helpers,date_format_internal,date_symbols,angular.util \ + packages/angular/angular.dart lib/mock/module.dart \ diff --git a/scripts/generate-expressions.sh b/scripts/generate-expressions.sh new file mode 100755 index 000000000..6719f84d0 --- /dev/null +++ b/scripts/generate-expressions.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +. $(dirname $0)/env.sh + +mkdir -p gen + +cat test/core/parser/generated_functions.dart | sed -e 's/_template;/_generated;/' | grep -v REMOVE > gen/generated_functions.dart +$DART bin/parser_generator_for_spec.dart >> gen/generated_functions.dart + +cat test/core/parser/generated_getter_setter.dart | sed -e 's/_template;/_generated;/' | grep -v REMOVE > gen/generated_getter_setter.dart +$DART bin/parser_generator_for_spec.dart getter_setter >> gen/generated_getter_setter.dart diff --git a/karma-snapshot.sh b/scripts/karma/snapshot.sh similarity index 100% rename from karma-snapshot.sh rename to scripts/karma/snapshot.sh diff --git a/scripts/travis/build.sh b/scripts/travis/build.sh new file mode 100755 index 000000000..fa9e77353 --- /dev/null +++ b/scripts/travis/build.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e +. ./scripts/env.sh + +./scripts/generate-expressions.sh +./scripts/analyze.sh + +./node_modules/jasmine-node/bin/jasmine-node playback_middleware/spec/ && + node "node_modules/karma/bin/karma" start karma.conf \ + --reporters=junit,dots --port=8765 --runner-port=8766 \ + --browsers=Dartium,ChromeNoSandbox --single-run --no-colors --no-color + +./scripts/generate-documentation.sh + diff --git a/scripts/travis/chrome-no-sandbox.sh b/scripts/travis/chrome-no-sandbox.sh new file mode 100755 index 000000000..95da9f97f --- /dev/null +++ b/scripts/travis/chrome-no-sandbox.sh @@ -0,0 +1,7 @@ +#!/bin/bash +# see +# - https://code.google.com/p/chromium/issues/detail?id=138505 +# - https://code.google.com/p/chromium/wiki/LinuxSUIDSandbox + + +/usr/bin/google-chrome --no-sandbox $@ diff --git a/scripts/travis/setup.sh b/scripts/travis/setup.sh new file mode 100755 index 000000000..d9f1c30e3 --- /dev/null +++ b/scripts/travis/setup.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +set -e + +case $( uname -s ) in + Linux) + DART_SDK_ZIP=dartsdk-linux-x64-release.zip + DARTIUM_ZIP=dartium-linux-x64-release.zip + ;; + Darwin) + DART_SDK_ZIP=dartsdk-macos-x64-release.zip + DARTIUM_ZIP=dartium-macos-ia32-release.zip + ;; +esac + +CHANNEL=`echo $JOB | cut -f 2 -d -` +echo Fetch Dart channel: $CHANNEL + +curl http://storage.googleapis.com/dart-archive/channels/$CHANNEL/release/latest/sdk/$DART_SDK_ZIP > $DART_SDK_ZIP +echo Fetched new dart version $(unzip -p $DART_SDK_ZIP dart-sdk/version) +rm -rf dart-sdk +unzip $DART_SDK_ZIP > /dev/null +rm $DART_SDK_ZIP + +curl http://storage.googleapis.com/dart-archive/channels/$CHANNEL/release/latest/dartium/$DARTIUM_ZIP > $DARTIUM_ZIP +unzip $DARTIUM_ZIP > /dev/null +rm -rf dartium +rm $DARTIUM_ZIP +mv dartium-* dartium + +echo ============================================================================= +. ./scripts/env.sh +$DART --version +$PUB install