chore(build): reorganization for local testing & demos

This commit is contained in:
Andrew Joslin
2014-05-22 16:45:57 -06:00
parent 9f334ffea1
commit ceb26da2dd
60 changed files with 242 additions and 482 deletions

View File

@@ -8,39 +8,34 @@ ARG_DEFS=(
)
function init {
PROJECT_DIR=$SCRIPT_DIR/../..
TMP_DIR=$PROJECT_DIR/temp
BUILD_DIR=$PROJECT_DIR/dist
APPBASE_DIR=$IONIC_DIST_DIR/app-base
APPBASE_LIB_DIR=$APPBASE_DIR/www/lib/ionic
echo "-- Cloning ionic-app-base..."
APPBASE_DIR=$TMP_DIR/app-base
rm -rf $APPBASE_DIR
mkdir -p $APPBASE_DIR
git clone \
https://driftyco:$GH_TOKEN@github.com/driftyco/ionic-app-base.git \
$APPBASE_DIR \
--depth=1
}
function run {
cd ../..
rm -rf $APPBASE_DIR
mkdir -p $APPBASE_DIR
echo "-- Cloning ionic-app-base..."
git clone \
https://$GH_ORG:$GH_TOKEN@github.com/$GH_ORG/ionic-app-base.git \
$APPBASE_DIR \
--depth=10
cd $APPBASE_DIR
echo "-- Updating files..."
rm -rf $APPBASE_DIR/www/lib/ionic
mkdir -p $APPBASE_DIR/www/lib/ionic
replaceJsonProp "$APPBASE_DIR/bower.json" "ionic" "driftyco/ionic-bower#$VERSION"
rm -rf $APPBASE_LIB_DIR
mkdir -p $APPBASE_LIB_DIR
cp -Rf $BUILD_DIR/* $APPBASE_DIR/www/lib/ionic
cp -Rf $IONIC_BUILD_DIR/* $APPBASE_LIB_DIR
cp -Rf $IONIC_SCSS_DIR $APPBASE_LIB_DIR
mkdir -p $APPBASE_DIR/www/lib/ionic/scss
cp -Rf $PROJECT_DIR/scss/* $APPBASE_DIR/www/lib/ionic/scss
replaceJsonProp "$APPBASE_DIR/bower.json" "ionic" "driftyco\/ionic-bower#$VERSION"
git add -A
git commit -am "release: update ionic to v$VERSION"

View File

@@ -12,37 +12,31 @@ ARG_DEFS=(
)
function init {
TMP_DIR=$SCRIPT_DIR/../../temp
BUILD_DIR=$SCRIPT_DIR/../../dist
PROJECT_DIR=$SCRIPT_DIR/../..
BOWER_DIR=$IONIC_DIST_DIR/ionic-bower
BOWER_DIR=$TMP_DIR/ionic-bower
}
function run {
echo "-- Cloning ionic-bower..."
rm -rf $BOWER_DIR
mkdir -p $BOWER_DIR
echo "-- Cloning ionic-bower..."
git clone https://$GH_ORG:$GH_TOKEN@github.com/$GH_ORG/ionic-bower.git \
git clone https://driftyco:$GH_TOKEN@github.com/driftyco/ionic-bower.git \
$BOWER_DIR \
--depth=10
--depth=1
}
function run {
# move the files from the build
echo "-- Putting build files in ionic-bower..."
cd $BOWER_DIR
cp -Rf $BUILD_DIR/* $BOWER_DIR
cp -Rf $PROJECT_DIR/scss $BOWER_DIR
cp -Rf $IONIC_BUILD_DIR/* $BOWER_DIR
cp -Rf $IONIC_SCSS_DIR $BOWER_DIR
# Angular dependencies are managed by bower, don't include them
rm -rf $BOWER_DIR/js/angular*
rm -rf $BOWER_DIR/CHANGELOG*
rm -rf $BOWER_DIR/version.json # unneeded
rm -rf $BOWER_DIR/{js/angular*,CHANGELOG*,version.json}
echo "-- Copying bower.json from project_dir and renaming main files"
node -p "var b = require('$PROJECT_DIR/bower.json'); \
node -p "var b = require('$IONIC_DIR/bower.json'); \
delete b.ignore; \
b.main = b.main.map(function(s) { return s.replace(/^release\//,''); }); \
JSON.stringify(b,null,2);" \

View File

@@ -10,34 +10,33 @@ ARG_DEFS=(
)
function init {
PROJECT_DIR=$SCRIPT_DIR/../..
BUILD_DIR=$SCRIPT_DIR/../../dist
CDN_DIR=$IONIC_DIST_DIR/ionic-code
IONIC_CODE_DIR=$SCRIPT_DIR/../../temp/ionic-code
rm -rf $IONIC_CODE_DIR
mkdir -p $IONIC_CODE_DIR
echo "-- Cloning ionic-code..."
rm -rf $CDN_DIR
mkdir -p $CDN_DIR
git clone https://driftyco:$GH_TOKEN@github.com/driftyco/ionic-code.git \
$CDN_DIR \
--branch gh-pages \
--depth=1
}
function run {
echo "-- Cloning ionic-code..."
git clone https://$GH_ORG:$GH_TOKEN@github.com/$GH_ORG/ionic-code.git \
$IONIC_CODE_DIR \
--depth=10 \
--branch gh-pages
VERSION_DIR=$CDN_DIR/$VERSION_NAME
VERSION_DIR=$IONIC_CODE_DIR/$VERSION_NAME
rm -rf $VERSION_DIR
mkdir -p $VERSION_DIR
cd $VERSION_DIR
cp -Rf $BUILD_DIR/* $VERSION_DIR
cp -Rf $IONIC_BUILD_DIR/* $VERSION_DIR
echo "-- Generating versions.json..."
cd $IONIC_CODE_DIR/builder
cd $CDN_DIR/builder
python ./generate.py
cd $IONIC_CODE_DIR
cd $CDN_DIR
git add -A
git commit -am "release: $VERSION ($VERSION_NAME)"

View File

@@ -1,43 +0,0 @@
echo "#####################################"
echo "# Update ionic-angular-cordova-seed #"
echo "#####################################"
ARG_DEFS=(
"--version=(.*)"
)
function init {
TMP_DIR=$SCRIPT_DIR/../../temp
BUILD_DIR=$SCRIPT_DIR/../../dist
SEED_DIR=$TMP_DIR/seed
rm -rf $SEED_DIR
mkdir -p $SEED_DIR
}
function run {
cd ../..
rm -rf $SEED_DIR
mkdir -p $SEED_DIR
echo "-- Cloning ionic-angular-cordova-seed..."
git clone \
https://$GH_ORG:$GH_TOKEN@github.com/$GH_ORG/ionic-angular-cordova-seed.git \
$SEED_DIR \
--depth=10
cd $SEED_DIR
echo "-- Updating files..."
cp -Rf $BUILD_DIR/* $SEED_DIR/www/lib/
git add -A
git commit -am "release: update ionic to v$VERSION"
git push -q origin master
echo "-- ionic-angular-cordova-seed files update to v$VERSION successfully!"
}
source $(dirname $0)/../utils.inc

View File

@@ -1,40 +1,32 @@
ARG_DEFS=(
"[--version-name=(.*)]"
"--action=(clone|updateConfig|docs|demos)"
"--action=(updateConfig|docs)"
)
function init {
PROJECT_DIR=$SCRIPT_DIR/../..
BUILD_DIR=$SCRIPT_DIR/../../dist
SITE_DIR=$IONIC_DIST_DIR/ionic-site
IONIC_SITE_DIR=$SCRIPT_DIR/../../temp/ionic-site
}
function clone {
echo "#################################"
echo "## Cloning ionic-site repo.... ##"
echo "#################################"
rm -rf $IONIC_SITE_DIR
mkdir -p $IONIC_SITE_DIR
git clone https://$GH_ORG:$GH_TOKEN@github.com/$GH_ORG/ionic-site.git \
$IONIC_SITE_DIR \
--depth=10 \
--branch=gh-pages
echo "-- Cloning ionic-site..."
# rm -rf $SITE_DIR
# mkdir -p $SITE_DIR
# git clone https://driftyco:$GH_TOKEN@github.com/driftyco/ionic-site.git \
# $SITE_DIR \
# --depth=1 \
# --branch=gh-pages
}
function updateConfig {
echo "#####################################"
echo "## Cloning ionic-site config.yml... #"
echo "## Updating ionic-site config.yml.. #"
echo "#####################################"
VERSION=$(readJsonProp "$BUILD_DIR/version.json" "version")
CODENAME=$(readJsonProp "$BUILD_DIR/version.json" "codename")
DATE=$(readJsonProp "$BUILD_DIR/version.json" "date")
VERSION=$(readJsonProp "$IONIC_BUILD_DIR/version.json" "version")
CODENAME=$(readJsonProp "$IONIC_BUILD_DIR/version.json" "codename")
DATE=$(readJsonProp "$IONIC_BUILD_DIR/version.json" "date")
cd $IONIC_SITE_DIR
cd $SITE_DIR
$(replaceInFile "_config.yml" "latest_download:.*$" "latest_download: http:\/\/code.ionicframework.com\/$VERSION\/ionic-v$VERSION.zip")
$(replaceInFile "_config.yml" "latest_version:.*$" "latest_version: $VERSION \"$CODENAME\"")
@@ -50,17 +42,18 @@ function updateConfig {
# Example: ./scripts/site/publish.sh --action=docs --version-name=nightly
function docs {
echo "#####################################"
echo "## Updating docs for $VERSION_NAME ##"
echo "#####################################"
cd $PROJECT_DIR
cd $IONIC_DIR
gulp docs --doc-version="$VERSION_NAME"
gulp docs-index
VERSION=$(readJsonProp "package.json" "version")
cd $IONIC_SITE_DIR
cd $SITE_DIR
CHANGES=$(git status --porcelain)
@@ -76,29 +69,4 @@ function docs {
fi
}
function demos {
echo "######################################"
echo "## Updating demos for $VERSION_NAME ##"
echo "######################################"
cd $IONIC_SITE_DIR
mkdir -p demos
cp -Rf $PROJECT_DIR/demos/* demos
CHANGES=$(git status --porcelain)
VERSION=$(readJsonProp "$PROJECT_DIR/package.json" "version")
# if no changes, don't commit
if [[ "$CHANGES" == "" ]]; then
echo "-- No changes detected in demos for $VERSION; demos not updated."
else
git add -A
git commit -am "demos: update for $VERSION"
git push -q origin gh-pages
echo "-- Updated deoms for $VERSION successfully!"
fi
}
source $(dirname $0)/../utils.inc

16
scripts/travis/build.sh Executable file
View File

@@ -0,0 +1,16 @@
# run this from project root
# source ./scripts/travis/build.sh
export IONIC_DIR=$PWD
export IONIC_SCSS_DIR=$IONIC_DIR/scss
export IONIC_DIST_DIR=$IONIC_DIR/dist
export IONIC_BUILD_DIR=$IONIC_DIR/dist/build
echo IONIC_DIR=$IONIC_DIR
echo IONIC_SCSS_DIR=IONIC_SCSS_DIR=$IONIC_SCSS_DIR
echo IONIC_DIST_DIR=$IONIC_DIST_DIR
echo IONIC_BUILD_DIR=$IONIC_BUILD_DIR
mkdir -p $IONIC_DIST_DIR $IONIC_BUILD_DIR
gulp build --release --dist="$IONIC_BUILD_DIR"

View File

@@ -1,22 +0,0 @@
echo "###########################################"
echo "# Writing nightly version in package.json #"
echo "###########################################"
ARG_DEFS=(
)
function run {
cd ../..
VERSION=$(readJsonProp "package.json" "version")
NEW_VERSION="$VERSION-nightly-$TRAVIS_BUILD_NUMBER"
replaceJsonProp "package.json" "version" "$NEW_VERSION"
echo "-- Build version is $NEW_VERSION."
}
source $(dirname $0)/../utils.inc

View File

@@ -10,29 +10,27 @@ function init {
if [[ "$TRAVIS" == "true" ]]; then
git config --global user.name 'Ionitron'
git config --global user.email hi@ionicframework.com
export GH_ORG=driftyco
export RELEASE_REMOTE=origin
export GIT_PUSH_DRYRUN="false"
else
# For testing if we aren't on travis
export TRAVIS_BUILD_NUMBER=$RANDOM
export TRAVIS_PULL_REQUEST=false
export TRAVIS_COMMIT=$(git rev-parse HEAD)
export TRAVIS_BRANCH=master
# use your github username as GH_ORG to push to, and it will push to ORG/ionic-code, etc
export GH_ORG=ajoslin
export RELEASE_REMOTE=ajoslin
export GIT_PUSH_DRYRUN="true"
fi
}
function run {
cd ../..
echo "GH_ORG=$GH_ORG"
echo "GH_ORG=driftyco"
echo "RELEASE_REMOTE=$RELEASE_REMOTE"
echo "TRAVIS_BRANCH=$TRAVIS_BRANCH"
echo "TRAVIS_BUILD_NUMBER=$TRAVIS_BUILD_NUMBER"
echo "TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST"
echo "TRAVIS_COMMIT=$TRAVIS_COMMIT"
echo "GIT_PUSH_DRYRUN=$GIT_PUSH_DRYRUN"
# check for stupid mistakes
gulp jshint
@@ -47,9 +45,9 @@ function run {
exit 0
fi
mkdir -p temp
git show $TRAVIS_COMMIT~1:package.json > temp/package.old.json
OLD_VERSION=$(readJsonProp "temp/package.old.json" "version")
git show $TRAVIS_COMMIT~1:package.json > package-old.json.tmp
OLD_VERSION=$(readJsonProp "package-old.json.tmp" "version")
VERSION=$(readJsonProp "package.json" "version")
CODENAME=$(readJsonProp "package.json" "codename")
@@ -77,13 +75,26 @@ function run {
echo "# Pushing out a new nightly release #"
echo "#####################################"
./scripts/travis/bump-nightly-version.sh
VERSION=$(readJsonProp "package.json" "version")
CODENAME=$(readJsonProp "package.json" "codename")
CURRENT_VERSION=$VERSION
VERSION="$CURRENT_VERSION-nightly-$TRAVIS_BUILD_NUMBER"
replaceJsonProp "package.json" "version" "$VERSION"
echo "-- Build version is $NEW_VERSION."
fi
# Build files after we are sure our version is correct
gulp build --release
export IONIC_DIR=$PWD
export IONIC_SCSS_DIR=$IONIC_DIR/scss
export IONIC_DIST_DIR=$IONIC_DIR/dist
export IONIC_BUILD_DIR=$IONIC_DIR/dist/build
mkdir -p $IONIC_DIST_DIR $IONIC_BUILD_DIR
gulp build --release --dist="$IONIC_BUILD_DIR"
echo "IONIC_DIR=$IONIC_DIR"
echo "IONIC_SCSS_DIR=IONIC_SCSS_DIR=$IONIC_SCSS_DIR"
echo "IONIC_DIST_DIR=$IONIC_DIST_DIR"
echo "IONIC_BUILD_DIR=$IONIC_BUILD_DIR"
if [[ $IS_RELEASE == "true" ]]; then
@@ -94,16 +105,13 @@ function run {
# Version name used on the CDN/docs: nightly or the version
VERSION_NAME=$VERSION
./scripts/site/publish.sh --action="clone"
./scripts/site/publish.sh --action="updateConfig"
./scripts/seed/publish.sh --version="$VERSION"
./scripts/app-base/publish.sh --version="$VERSION"
./scripts/travis/release-new-version.sh \
--action="tweetAndIrc" \
--version=$VERSION
gulp release-tweet
gulp release-irc
else
./scripts/site/publish.sh --action="clone"
VERSION_NAME="nightly"
@@ -118,10 +126,6 @@ function run {
--action="docs" \
--version-name="$VERSION_NAME"
./scripts/site/publish.sh \
--action="demos" \
--version-name="$VERSION_NAME"
./scripts/cdn/publish.sh \
--version=$VERSION \
--version-name="$VERSION_NAME"
@@ -150,4 +154,3 @@ function run {
}
source $(dirname $0)/../utils.inc

View File

@@ -3,139 +3,49 @@
ARG_DEFS=(
"--version=(.*)"
"[--old-version=(.*)]"
"--action=(.*)"
)
function init {
TMP_DIR=$SCRIPT_DIR/../../temp
BUILD_DIR=$SCRIPT_DIR/../../dist
PROJECT_DIR=$SCRIPT_DIR/../..
PUSH_DIR=$IONIC_DIST_DIR/ionic
IONIC_DIR=$TMP_DIR/ionic
echo "-- Cloning ionic master ..."
rm -rf $PUSH_DIR
mkdir -p $PUSH_DIR
git clone https://driftyco:$GH_TOKEN@github.com/driftyco/ionic.git \
$PUSH_DIR \
--depth=1
}
function push {
function run {
echo "##############################"
echo "# Pushing release $VERSION #"
echo "##############################"
cd ../..
rm -rf $IONIC_DIR
mkdir -p $IONIC_DIR
echo "-- Cloning ionic master ..."
git clone https://$GH_ORG:$GH_TOKEN@github.com/$GH_ORG/ionic.git \
$IONIC_DIR \
--depth=10
cd $IONIC_DIR
cd $PUSH_DIR
# Get first codename in list
CODENAME=$(readJsonProp "$PROJECT_DIR/package.json" "codename")
CODENAME=$(readJsonProp "$IONIC_DIR/package.json" "codename")
replaceJsonProp "package.json" "version" "$VERSION"
replaceJsonProp "bower.json" "version" "$VERSION"
replaceJsonProp "component.json" "version" "$VERSION"
echo "-- Putting built files into release folder"
rm -rf release
mkdir -p release
cp -Rf $PROJECT_DIR/dist/* release
cp -Rf $IONIC_BUILD_DIR/* release
git add -A
git commit -m "finalize-release: v$VERSION \"$CODENAME\""
git tag -f -m "v$VERSION" v$VERSION
git push -q $RELEASE_REMOTE master
git push -q $RELEASE_REMOTE v$VERSION
echo "-- v$VERSION \"$CODENAME\" pushed to $RELEASE_REMOTE/master successfully!"
}
# Unused. TODO remove and rewrite as node.js script
function github {
echo "-- Pushing out github release..."
# Get only newest things in changelog - sed until previous version is hit
sed -e '/'"$OLD_VERSION"'/,$d' $PROJECT_DIR/CHANGELOG.md | tail -n +3 \
> $TMP_DIR/CHANGELOG_NEW.md
CODENAME=$(readJsonProp "$IONIC_DIR/package.json" "codename")
# we have to get all releases, then find the one corresponding to this new tag
curl https://api.github.com/repos/$GH_ORG/ionic/releases > $TMP_DIR/releases.json
node -e "var releases = require('$TMP_DIR/releases.json'); \
var id; \
releases.forEach(function(r) { \
if (r.tag_name == 'v$VERSION') { \
id = r.id; \
} \
}); \
require('fs').writeFileSync('$TMP_DIR/RELEASE_ID', id || '');"
node -e "var fs = require('fs'); \
fs.writeFileSync('$TMP_DIR/github.json', JSON.stringify({ \
name: \"v$VERSION '$CODENAME'\", \
tag_name: \"v$VERSION\", \
body: fs.readFileSync('$TMP_DIR/CHANGELOG_NEW.md').toString() \
}));"
RELEASE_ID=$(cat $TMP_DIR/RELEASE_ID)
if [[ "$RELEASE_ID" == "" ]]; then
curl -X POST https://api.github.com/repos/$GH_ORG/ionic/releases \
-H "Authorization: token $GH_TOKEN" \
--data-binary @$TMP_DIR/github.json
else
curl -X PATCH https://api.github.com/repos/$GH_ORG/ionic/releases/$RELEASE_ID \
-H "Authorization: token $GH_TOKEN" \
--data-binary @$TMP_DIR/github.json
fi
echo "-- Github release pushed out successfully!"
}
# Unused. TODO remove and rewrite as node.js script
function discourse {
CODENAME=$(readJsonProp "$IONIC_DIR/package.json" "codename")
# Get only newest things in changelog - sed until previous version is hit
sed -e '/'"$OLD_VERSION"'/,$d' $PROJECT_DIR/CHANGELOG.md | tail -n +3 \
> $TMP_DIR/NEW_CHANGELOG.md
node -e "var fs=require('fs'); \
fs.writeFileSync('$TMP_DIR/discourse.json', \
\"api_key=$DISCOURSE_TOKEN\" + \
\"&api_username=Ionitron\" + \
\"&title=\" + encodeURIComponent(\"v$VERSION '$CODENAME' Released!\") + \
\"&raw=\" + encodeURIComponent(\"Download Instructions: https://github.com/driftyco/ionic#quick-start\n\n\" + fs.readFileSync('$TMP_DIR/CHANGELOG_NEW.md').toString()) \
)";
curl -X POST http://forum.ionicframework.com/posts \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-binary @$TMP_DIR/discourse.json \
> $TMP_DIR/discourse-response.json
touch $IONIC_DIR/config/RELEASE_POST_URL
OLD_POST_URL=$(cat $IONIC_DIR/config/RELEASE_POST_URL)
if [[ "$OLD_POST_URL" != "" ]]; then
curl -X PUT "$OLD_POST_URL/status" --data "api_key=$DISCOURSE_TOKEN&api_username=Ionitron&status=pinned&enabled=false"
fi
POST_URL=`node -e "var res = require('$TMP_DIR/discourse-response.json'); \
console.log(\"http://forum.ionicframework.com/t/\" + res.topic_slug + \"/\" + res.topic_id);"`
echo $POST_URL > $IONIC_DIR/config/RELEASE_POST_URL
curl -X PUT "$POST_URL/status" \
--data "api_key=$DISCOURSE_TOKEN&api_username=Ionitron&status=pinned&enabled=true"
# curl -X PUT "$POST_URL/status" \
# --data "api_key=$DISCOURSE_TOKEN&api_username=Ionitron&status=closed&enabled=true"
cd $IONIC_DIR
git add config
git commit config -m 'chore(release): update discourse post url'
git push -q origin master
git push -q origin v$VERSION
echo "-- v$VERSION \"$CODENAME\" pushed to origin/master successfully!"
}
function tweetAndIrc {