diff --git a/.gitignore b/.gitignore index f636502c0f..9516761f30 100644 --- a/.gitignore +++ b/.gitignore @@ -16,5 +16,4 @@ dist /packages/babel-runtime/regenerator/*.js /packages/*/lib _babel.github.io -scripts /tests/.browser-build.js diff --git a/packages/babel-cli/scripts/bootstrap.sh b/packages/babel-cli/scripts/bootstrap.sh new file mode 100755 index 0000000000..391f973087 --- /dev/null +++ b/packages/babel-cli/scripts/bootstrap.sh @@ -0,0 +1,3 @@ +#!/bin/sh +set -e +npm link babel-core diff --git a/packages/babel/scripts/build-tests.js b/packages/babel/scripts/build-tests.js new file mode 100644 index 0000000000..ad5be52ad2 --- /dev/null +++ b/packages/babel/scripts/build-tests.js @@ -0,0 +1,5 @@ +#!/usr/bin/env node + +var fs = require("fs"); +var cache = require("../test/_helper").cache; +fs.writeFileSync(__dirname + "/../tests.json", JSON.stringify(cache)); diff --git a/packages/babel/scripts/build.sh b/packages/babel/scripts/build.sh new file mode 100755 index 0000000000..a2c7845393 --- /dev/null +++ b/packages/babel/scripts/build.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +BROWSERIFY_CMD="../../node_modules/browserify/bin/cmd.js" +UGLIFY_CMD="../../node_modules/uglify-js/bin/uglifyjs" +BROWSERIFY_IGNORE="-i esprima-fb" + +mkdir -p dist + +node scripts/cache-templates + +node $BROWSERIFY_CMD -e lib/polyfill.js >dist/polyfill.js +node $UGLIFY_CMD dist/polyfill.js >dist/polyfill.min.js + +node $BROWSERIFY_CMD lib/api/browser.js -s babel $BROWSERIFY_IGNORE >dist/browser.js +node $UGLIFY_CMD dist/browser.js >dist/browser.min.js + +node $BROWSERIFY_CMD lib/api/node.js --node $BROWSERIFY_IGNORE >dist/node.js + +node ../babel-cli/lib/babel-external-helpers >dist/external-helpers.js +node $UGLIFY_CMD dist/external-helpers.js >dist/external-helpers.min.js + +rm -rf templates.json diff --git a/packages/babel/scripts/cache-templates.js b/packages/babel/scripts/cache-templates.js new file mode 100755 index 0000000000..fa9d46449b --- /dev/null +++ b/packages/babel/scripts/cache-templates.js @@ -0,0 +1,5 @@ +#!/usr/bin/env node + +var fs = require("fs"); +var util = require("../lib/util"); +fs.writeFileSync(__dirname + "/../templates.json", JSON.stringify(util.templates)); diff --git a/packages/babel/scripts/prepublish.sh b/packages/babel/scripts/prepublish.sh new file mode 100755 index 0000000000..cd76b035e6 --- /dev/null +++ b/packages/babel/scripts/prepublish.sh @@ -0,0 +1,11 @@ +#!/bin/sh +set -e + +cp dist/browser.js browser.js +cp dist/browser.min.js browser.min.js +cp dist/polyfill.js browser-polyfill.js +cp dist/polyfill.min.js browser-polyfill.min.js +cp dist/external-helpers.js external-helpers.js +cp dist/external-helpers.min.js external-helpers.min.js +node tools/cache-templates +test -f templates.json diff --git a/packages/babylon/scripts/bootstrap.sh b/packages/babylon/scripts/bootstrap.sh new file mode 100755 index 0000000000..155282ce9b --- /dev/null +++ b/packages/babylon/scripts/bootstrap.sh @@ -0,0 +1,4 @@ +#!/bin/sh +set -e +cd ../babel +npm link babylon diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh new file mode 100755 index 0000000000..cd290ee303 --- /dev/null +++ b/scripts/bootstrap.sh @@ -0,0 +1,25 @@ +#!/bin/sh +set -e + +# install default set +npm install + +# remove global babel +npm list --global --depth 1 babel >/dev/null 2>&1 && npm uninstall -g babel || true + +for f in packages/*; do + if [ -d $f ]; then + cd $f + if [ -f "package.json" ]; then + npm install + npm link + fi + if [ -f "scripts/bootstrap.sh" ]; then + ./scripts/bootstrap.sh + fi + cd ../.. + fi +done + +git submodule update --init +make build diff --git a/scripts/build-core.sh b/scripts/build-core.sh new file mode 100755 index 0000000000..8c546756c3 --- /dev/null +++ b/scripts/build-core.sh @@ -0,0 +1,10 @@ +#!/bin/sh +set -e + +for f in packages/*; do + if [ -d "$f/src" ]; then + node node_modules/babel/bin/babel "$f/src" --out-dir "$f/lib" --copy-files $1 & + fi +done + +wait diff --git a/scripts/test-browser.sh b/scripts/test-browser.sh new file mode 100755 index 0000000000..b401618966 --- /dev/null +++ b/scripts/test-browser.sh @@ -0,0 +1,13 @@ +#!/bin/sh +set -e + +BROWSERIFY_CMD="node_modules/browserify/bin/cmd.js" + +mkdir -p dist + +node packages/babel/scripts/cache-templates +node packages/babel/scripts/build-tests +node $BROWSERIFY_CMD -e test/browser.js >dist/browser-test.js +rm -rf packages/babel/templates.json packages/babel/tests.json + +test -n "`which open`" && open test/browser.html diff --git a/scripts/test.sh b/scripts/test.sh new file mode 100755 index 0000000000..92d8d29513 --- /dev/null +++ b/scripts/test.sh @@ -0,0 +1,15 @@ +#!/bin/sh +set -e + +for f in packages/*; do + if [ -n "$TEST_ONLY" ] && [ `basename $f` != "$TEST_ONLY" ]; then + continue + fi + + if [ -d "$f/test" ]; then + echo $f + cd $f + node ../../node_modules/mocha/bin/_mocha + cd ../../ + fi +done diff --git a/scripts/travis/build-website.sh b/scripts/travis/build-website.sh new file mode 100644 index 0000000000..b6dce23e48 --- /dev/null +++ b/scripts/travis/build-website.sh @@ -0,0 +1,16 @@ +#!/bin/sh +set -e + +if [ ! -d ./_babel.github.io ]; then + git clone git@github.com:babel/babel.github.io.git _babel.github.io +fi + +cd _babel.github.io + +if [ ! -d ./_babel ]; then + ln -s .. _babel +fi + +make build +git commit -am "${TRAVIS_TAG}" +git push "https://${GH_TOKEN}@github.com/babel/babel.github.io" diff --git a/scripts/travis/comment-issues.sh b/scripts/travis/comment-issues.sh new file mode 100644 index 0000000000..2005ff9b31 --- /dev/null +++ b/scripts/travis/comment-issues.sh @@ -0,0 +1,2 @@ +#!/bin/bash +set -e diff --git a/scripts/travis/merge-development-with-master.sh b/scripts/travis/merge-development-with-master.sh new file mode 100644 index 0000000000..dafc503b66 --- /dev/null +++ b/scripts/travis/merge-development-with-master.sh @@ -0,0 +1,14 @@ +#!/bin/bash +set -e + +echo "Branch: $TRAVIS_BRANCH" +echo "Commit: $TRAVIS_COMMIT" + +if [ "$TRAVIS_BRANCH" != "development" ]; then + exit 0; +fi + +git fetch origin master:master +git checkout master +git merge "$TRAVIS_COMMIT" +git push "https://${GH_TOKEN}@github.com/babel/babel" diff --git a/scripts/travis/publish-cli.sh b/scripts/travis/publish-cli.sh new file mode 100644 index 0000000000..0598b7e1e9 --- /dev/null +++ b/scripts/travis/publish-cli.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e + +LAST_TAG=$(git describe $(git rev-list --tags --max-count=1)) +TAG_DIFF=$(git diff $LAST_TAG -- packages/babel-cli/) + +if [ -n "$TAG_DIFF" ]; then + echo "Changes detected to babel-cli since last tag, publishing new version." + + cd ../packages + node build-cli.js + + cd babel-cli + npm publish +else + echo "No changes detected to babel-cli since last tag" +fi diff --git a/scripts/travis/setup-git.sh b/scripts/travis/setup-git.sh new file mode 100644 index 0000000000..82171bdf78 --- /dev/null +++ b/scripts/travis/setup-git.sh @@ -0,0 +1,5 @@ +#!/bin/sh +set -e + +git config user.name "sebmckbot" +git config user.email "sebmckbbot@gmail.com"