X Tutup
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,8 @@ var CONFIG = {
dev: {es6: 'dist/js/dev/es6', es5: 'dist/js/dev/es5'},
prod: {es6: 'dist/js/prod/es6', es5: 'dist/js/prod/es5'},
cjs: 'dist/js/cjs',
dart2js: 'dist/js/dart2js'
dart2js: 'dist/js/dart2js',
dart_dev_compiler: 'dist/js/ddc'
},
dart: 'dist/dart',
docs: 'dist/docs',
Expand Down Expand Up @@ -369,6 +370,10 @@ function jsServeDartJs() {
return jsserve(gulp, gulpPlugins, {path: CONFIG.dest.js.dart2js, port: 8002})();
}

function jsServeDartDevCompiler() {
return jsserve(gulp, gulpPlugins, {path: CONFIG.dest.js.dart_dev_compiler, port: 8003})();
}

function proxyServeDart() {
return jsserve(gulp, gulpPlugins, {
port: 8002,
Expand Down Expand Up @@ -409,6 +414,8 @@ gulp.task('serve.e2e.prod', ['build.js.prod', 'build.js.cjs', 'build.css.materia

gulp.task('serve.js.dart2js', jsServeDartJs);

gulp.task('serve.js.ddc', jsServeDartDevCompiler);

gulp.task('!proxyServeDart', proxyServeDart);

gulp.task('serve.dart', function(done) {
Expand Down
3 changes: 3 additions & 0 deletions protractor-ddc.conf.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
var data = module.exports = require('./protractor-shared.js');
var config = data.config;
config.baseUrl = 'http://localhost:8003/';
78 changes: 75 additions & 3 deletions scripts/ci/build_dart_ddc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ echo ===========================================================================

# go to project dir
SCRIPT_DIR=$(dirname $0)
REPO_ROOT_DIR=`cd ${SCRIPT_DIR}/../..; pwd`
source $SCRIPT_DIR/env_dart.sh
cd $SCRIPT_DIR/../..
cd $REPO_ROOT_DIR

# Variables
DDC_TOTAL_WARNING_CAP="210"
Expand All @@ -25,16 +26,29 @@ git clone https://github.com/dart-lang/dev_compiler.git tmp/dev_compiler
$PUB get)

# Convert TypeScript to Dart
./node_modules/.bin/gulp build.js.cjs
./node_modules/.bin/gulp build/packages.dart
./node_modules/.bin/gulp build.dart.material.css
./node_modules/.bin/gulp build/pubspec.dart
node ./scripts/ci/dart_ddc/pubspec_for_ddc.js \
--pubspec-file=dist/dart/playground/pubspec.yaml

# Compile playground
cd dist/dart/playground
$PUB build --mode=debug
cd build/web

# TODO: temporarily remove references to dart.js as ddc doesn't do it
# automatically yet (https://github.com/dart-lang/dev_compiler/issues/437)
echo `pwd`
for htmlFile in `find ./src -name '*.html'`; do
tmpFile=$REPO_ROOT_DIR/tmp/scriptless_html.tmp
cat $htmlFile | grep -vE '<script.*dart\.js' >$tmpFile
mv $tmpFile $htmlFile
done

##############################################################################
# Analyze code
##############################################################################

LOG_FILE="analyzer.log"
set +e
$DART_SDK/bin/dart $DDC_DIR/bin/dartdevc.dart \
Expand Down Expand Up @@ -100,5 +114,63 @@ else
echo "Warning count ok"
fi


##############################################################################
# Run e2e tests
##############################################################################

DIST_DIR="${REPO_ROOT_DIR}/dist/js/ddc"

# Build the apps (again)
# TODO: ddc does not yet support compiling multiple html files. Ideally we
# could build everything during analysis above.
# See: https://github.com/dart-lang/dev_compiler/issues/430

ln -s `pwd`/packages src/hello_world/packages

set +e
OUT_DIR="${DIST_DIR}/playground/src/hello_world"
mkdir -p $OUT_DIR
$DART_SDK/bin/dart $DDC_DIR/bin/dartdevc.dart \
--force-compile \
--dart-sdk=$DART_SDK_LIB_SEARCH_PATH -o $OUT_DIR \
src/hello_world/index.html
EXIT_CODE=`echo $?`
set -e

if [[ "$EXIT_CODE" -ne "0" && "$EXIT_CODE" -ne "1" ]]
then
echo "DDC compiler crashed with exit code $EXIT_CODE"
exit 1
fi


# Run e2e tests
cd $REPO_ROOT_DIR

./node_modules/.bin/webdriver-manager update

function killServer () {
kill $serverPid
}

./node_modules/.bin/gulp serve.js.ddc&
serverPid=$!

trap killServer EXIT

# wait for server to come up
sleep 10

function runSpec {
SPEC=$1
./node_modules/.bin/protractor protractor-ddc.conf.js \
--browsers=${E2E_BROWSERS:-ChromeDesktop} \
--spec=$SPEC
}

# TODO: add more e2e tests
runSpec hello_world/hello_world_spec.js

echo 'Dart DDC build finished'
exit $EXIT_CODE
X Tutup