angular-cn/scripts/ci/build_dart_experimental.sh
Yegor Jbanov 6b73d09ba1 chore(build): make experimental Dart build useful
Previously we grepped all hand-written Dart code and ran analyzer in strong mode against it.

Now we run it against transformed playground apps, which:

1. does not analyze unnecessary code (we primarily care about stuff that runs in the browser)
2. analyzes generated code, which does run in the browser and which we failed to analyze in the previous version of the build

Closes #6436
2016-01-13 21:09:55 +00:00

63 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
set -ex
echo =============================================================================
echo EXPERIMENTAL DART BUILD
echo =============================================================================
# go to project dir
SCRIPT_DIR=$(dirname $0)
source $SCRIPT_DIR/env_dart.sh
cd $SCRIPT_DIR/../..
# Variables
DDC_WARNING_CAP="260"
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
./node_modules/.bin/gulp build/packages.dart
./node_modules/.bin/gulp build/pubspec.dart
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