2015-06-03 20:22:30 -04:00
|
|
|
#!/bin/bash
|
2015-11-05 11:20:13 -05:00
|
|
|
set -ex
|
2015-06-03 20:22:30 -04:00
|
|
|
|
|
|
|
echo =============================================================================
|
|
|
|
echo EXPERIMENTAL DART BUILD
|
|
|
|
echo =============================================================================
|
|
|
|
|
|
|
|
# go to project dir
|
|
|
|
SCRIPT_DIR=$(dirname $0)
|
|
|
|
source $SCRIPT_DIR/env_dart.sh
|
|
|
|
cd $SCRIPT_DIR/../..
|
|
|
|
|
2016-01-12 12:25:01 -05:00
|
|
|
# Variables
|
2016-01-21 21:21:48 -05:00
|
|
|
DDC_WARNING_CAP="180"
|
2016-01-12 12:25:01 -05:00
|
|
|
DDC_DIR=`pwd`/tmp/dev_compiler
|
|
|
|
DDC_VERSION="0.1.14"
|
|
|
|
|
|
|
|
# Get DDC
|
|
|
|
mkdir -p tmp
|
|
|
|
rm -rf tmp/dev_compiler
|
|
|
|
git clone https://github.com/dart-lang/dev_compiler.git tmp/dev_compiler
|
|
|
|
(cd $DDC_DIR && \
|
|
|
|
git checkout tags/$DDC_VERSION && \
|
|
|
|
$PUB get)
|
|
|
|
|
|
|
|
# Convert TypeScript to Dart
|
2015-06-03 20:22:30 -04:00
|
|
|
./node_modules/.bin/gulp build/packages.dart
|
|
|
|
./node_modules/.bin/gulp build/pubspec.dart
|
2016-01-12 12:25:01 -05:00
|
|
|
node ./scripts/ci/dart_experimental/pubspec_for_ddc.js \
|
|
|
|
--pubspec-file=dist/dart/playground/pubspec.yaml
|
|
|
|
|
|
|
|
# Compile playground
|
|
|
|
cd dist/dart/playground
|
|
|
|
$PUB build --mode=debug
|
|
|
|
cd build/web
|
|
|
|
LOG_FILE="analyzer.log"
|
|
|
|
set +e
|
|
|
|
$DART_SDK/bin/dart $DDC_DIR/bin/dartdevc.dart \
|
|
|
|
--dart-sdk=$DART_SDK_LIB_SEARCH_PATH -o out src/hello_world/index.dart \
|
|
|
|
>$LOG_FILE
|
|
|
|
EXIT_CODE=`echo $?`
|
|
|
|
set -e
|
|
|
|
|
|
|
|
# Analyzer exits with 1 when there are warnings and something crazy
|
|
|
|
# like 255 when it crashes. We don't want to fail the build if its
|
|
|
|
# only warnings (until our code is warning-free).
|
|
|
|
if [[ "$EXIT_CODE" -ne "0" && "$EXIT_CODE" -ne "1" ]]
|
|
|
|
then
|
|
|
|
echo "DDC compiler crashed with exit code $EXIT_CODE"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
cat $LOG_FILE
|
|
|
|
WARNING_COUNT=`cat $LOG_FILE | wc -l | sed -e 's/^[[:space:]]*//'`
|
|
|
|
|
|
|
|
if [[ "$WARNING_COUNT" -gt "$DDC_WARNING_CAP" ]]
|
|
|
|
then
|
|
|
|
echo "Too many warnings: $WARNING_COUNT"
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
echo "Warning count ok"
|
|
|
|
fi
|
2016-01-21 21:13:58 -05:00
|
|
|
|
|
|
|
function countWarnings {
|
|
|
|
local GREP_PATTERN=$1
|
|
|
|
local COUNT=`cat $LOG_FILE | grep -E '$GREP_PATTERN' | wc -l | sed -e 's/^[[:space:]]*//'`
|
|
|
|
echo $COUNT
|
|
|
|
}
|
|
|
|
|
|
|
|
SEVERE_ANGULAR_COUNT=$(countWarnings '^severe.*package:angular2')
|
|
|
|
if [[ "$SEVERE_ANGULAR_COUNT" -gt "0" ]]
|
|
|
|
then
|
|
|
|
echo "Found severe errors in angular2 package"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo 'Dart DDC build finished'
|