mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
159 lines
4.5 KiB
Bash
Executable File
159 lines
4.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Task that runs every time CI server is pushed to
|
|
|
|
ARG_DEFS=(
|
|
)
|
|
|
|
function init {
|
|
# If we are on travis, set our git credentials to make the travis commits look better
|
|
if [[ "$TRAVIS" == "true" ]]; then
|
|
git config --global user.name 'Ionitron'
|
|
git config --global user.email hi@ionicframework.com
|
|
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
|
|
export GIT_PUSH_DRYRUN="true"
|
|
fi
|
|
}
|
|
|
|
function run {
|
|
cd ../..
|
|
|
|
echo "GH_ORG=driftyco"
|
|
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
|
|
gulp ddescribe-iit
|
|
|
|
# Run simple quick tests on Phantom to be sure any tests pass
|
|
# Tests are run on cloud browsers after build
|
|
gulp karma --browsers=PhantomJS --reporters=dots
|
|
|
|
if [[ "$TRAVIS_PULL_REQUEST" != "false" ]]; then
|
|
echo "-- This is a pull request build; will not push build out."
|
|
exit 0
|
|
fi
|
|
|
|
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")
|
|
|
|
if [[ "$OLD_VERSION" != "$VERSION" ]]; then
|
|
IS_RELEASE=true
|
|
|
|
# Get first codename in list
|
|
CODENAME=$(cat config/CODENAMES | head -n 1)
|
|
# Remove first line of codenames, it's used now
|
|
echo "`tail -n +2 config/CODENAMES`" > config/CODENAMES
|
|
|
|
replaceJsonProp "package.json" "codename" "$CODENAME"
|
|
replaceJsonProp "bower.json" "codename" "$CODENAME"
|
|
replaceJsonProp "component.json" "codename" "$CODENAME"
|
|
|
|
echo "#######################################"
|
|
echo "# Releasing v$VERSION \"$CODENAME\"! #"
|
|
echo "#######################################"
|
|
else
|
|
if [[ "$TRAVIS_BRANCH" != "master" ]]; then
|
|
echo "-- We are not on branch master, instead we are on branch $TRAVIS_BRANCH. Aborting build."
|
|
exit 0
|
|
fi
|
|
echo "#####################################"
|
|
echo "# Pushing out a new nightly release #"
|
|
echo "#####################################"
|
|
|
|
CURRENT_VERSION=$VERSION
|
|
VERSION="$CURRENT_VERSION-nightly-$TRAVIS_BUILD_NUMBER"
|
|
replaceJsonProp "package.json" "version" "$VERSION"
|
|
|
|
echo "-- Build version is $NEW_VERSION."
|
|
fi
|
|
|
|
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
|
|
|
|
./scripts/travis/release-new-version.sh \
|
|
--action="push" \
|
|
--version=$VERSION
|
|
|
|
# Version name used on the CDN/docs: nightly or the version
|
|
VERSION_NAME=$VERSION
|
|
|
|
./scripts/site/publish.sh --action="updateConfig"
|
|
./scripts/app-base/publish.sh --version="$VERSION"
|
|
|
|
gulp release-tweet
|
|
gulp release-irc
|
|
|
|
else
|
|
|
|
VERSION_NAME="nightly"
|
|
|
|
gulp changelog --standalone \
|
|
--html=true \
|
|
--subtitle="(changes since $OLD_VERSION)" \
|
|
--dest="$IONIC_BUILD_DIR/CHANGELOG.html" \
|
|
--from="$(git tag | grep $OLD_VERSION)"
|
|
fi
|
|
|
|
./scripts/site/publish.sh \
|
|
--action="docs" \
|
|
--version-name="$VERSION_NAME"
|
|
|
|
./scripts/cdn/publish.sh \
|
|
--version=$VERSION \
|
|
--version-name="$VERSION_NAME"
|
|
|
|
./scripts/bower/publish.sh \
|
|
--version="$VERSION" \
|
|
--codename="$CODENAME"
|
|
|
|
./scripts/demo/publish.sh \
|
|
--version-name="$VERSION_NAME"
|
|
|
|
|
|
if [[ "$IS_RELEASE" == "true" ]]; then
|
|
echo "################################################"
|
|
echo "# Complete! v$VERSION \"$CODENAME\" published! #"
|
|
echo "################################################"
|
|
else
|
|
echo "##########################"
|
|
echo "# Running cloud tests... #"
|
|
echo "##########################"
|
|
|
|
# Do sauce unit tests and e2e tests with all browsers (takes longer)
|
|
# gulp cloudtest
|
|
|
|
echo "##########################################"
|
|
echo "# Complete! v$VERSION nightly published! #"
|
|
echo "##########################################"
|
|
fi
|
|
}
|
|
|
|
source $(dirname $0)/../utils.inc
|