mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
chore(build): reorganization for local testing & demos
This commit is contained in:
16
scripts/travis/build.sh
Executable file
16
scripts/travis/build.sh
Executable 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"
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user