Skip to content

Commit

Permalink
chore(build): correct and refactor release script
Browse files Browse the repository at this point in the history
  • Loading branch information
tbosch committed Dec 14, 2013
1 parent 11fff8f commit 9a4c9e6
Show file tree
Hide file tree
Showing 7 changed files with 125 additions and 53 deletions.
5 changes: 4 additions & 1 deletion jenkins_build.sh
Original file line number Diff line number Diff line change
@@ -1,9 1,12 @@
#!/bin/bash

echo "#################################"
echo "#### Jenkins Build ############"
echo "#################################"

# Enable tracing and exit on first failure
set -xe


# Define reasonable set of browsers in case we are running manually from commandline
if [[ -z "$BROWSERS" ]]
then
Expand Down
25 changes: 16 additions & 9 deletions scripts/bower/publish.sh
Original file line number Diff line number Diff line change
@@ -1,19 1,21 @@
#!/bin/bash

#
# update all the things
#

set -e # fail if any command fails
echo "#################################"
echo "#### Update bower ###############"
echo "#################################"

# Enable tracing and exit on first failure
set -xe
# Normalize working dir to script dir
cd `dirname $0`

SCRIPT_DIR=`pwd`

# export so that node.js can read those env settings
export TMP_DIR=../../tmp

export BUILD_DIR=../../build

NEW_VERSION=$(node -e "console.log(require(process.env.BUILD_DIR '/version.json').full)" | sed -e 's/\r//g')
NEW_VERSION=`cat $BUILD_DIR/version.txt`

REPOS=(
angular \
Expand All @@ -34,6 36,7 @@ REPOS=(
#
for repo in "${REPOS[@]}"
do
echo "-- Cloning bower-$repo"
git clone [email protected]:angular/bower-$repo.git $TMP_DIR/bower-$repo
done

Expand All @@ -46,6 49,7 @@ for repo in "${REPOS[@]}"
do
if [ -f $BUILD_DIR/$repo.js ] # ignore i18l
then
echo "-- Updating files in bower-$repo"
cd $TMP_DIR/bower-$repo
git reset --hard HEAD
git checkout master
Expand Down Expand Up @@ -78,12 82,15 @@ echo $NEW_VERSION

for repo in "${REPOS[@]}"
do
echo "-- Updating version in bower-$repo from $OLD_VERSION to $NEW_VERSION"
cd $TMP_DIR/bower-$repo
sed -i '' -e "s/$OLD_VERSION/$NEW_VERSION/g" bower.json
git add -A

echo "-- Committing, tagging and pushing bower-$repo"
git commit -m "v$NEW_VERSION"
git tag v$NEW_VERSION
# TODO git push origin master
# TODO git push origin v$NEW_VERSION
git push origin master
git push origin v$NEW_VERSION
cd $SCRIPT_DIR
done
40 changes: 24 additions & 16 deletions scripts/code.angularjs.org/publish.sh
Original file line number Diff line number Diff line change
@@ -1,43 1,46 @@
#!/bin/bash

#
# update all the things
#

set -e # fail if any command fails
echo "#################################"
echo "## Update code.angular.js.org ###"
echo "#################################"

# Enable tracing and exit on first failure
set -xe
# Normalize working dir to script dir
cd `dirname $0`
SCRIPT_DIR=`pwd`


# export so that node.js can read those env settings
export TMP_DIR=../../tmp
export REPO_DIR=$TMP_DIR/code.angularjs.org

export BUILD_DIR=../../build

NEW_VERSION=$(node -e "console.log(require(process.env.BUILD_DIR '/version.json').full)" | sed -e 's/\r//g')
SCRIPT_DIR=`pwd`
NEW_VERSION=`cat $BUILD_DIR/version.txt`

#
# Don't publish snapshot builds!
# Snapshot builds are kept in a temp directory in code.angularjs.org
# that is filled by calling a php script there.
#
if [[ "$NEW_VERSION" =~ sha ]] ;then
echo "publish to code.angularjs.org is not allowed for snapshot builds"
exit 1;
echo "-- updating snapshot version"
curl -G --data-urlencode "ver=$NEW_VERSION" http://code.angularjs.org/fetchLatestSnapshot.php
exit 0;
fi

exit 2

#
# clone
#

echo "-- Cloning code.angularjs.org"
git clone [email protected]:angular/code.angularjs.org.git $REPO_DIR

#
# copy the files from the build
#

echo "-- Updating code.angularjs.org"
mkdir $REPO_DIR/$NEW_VERSION

cd $REPO_DIR
git reset --hard HEAD
git checkout master
Expand All @@ -49,9 52,14 @@ cp -r $BUILD_DIR/* $REPO_DIR/$NEW_VERSION/
#
# commit and push
#

echo "-- Committing and pushing code.angularjs.org"
cd $REPO_DIR
git add -A
git commit -m "v$NEW_VERSION"
# TODO git push origin master
git push origin master
cd $SCRIPT_DIR

#
# refresh code.angularjs.org from github
#
curl http://code.angularjs.org/gitFetchSite.php
25 changes: 25 additions & 0 deletions scripts/jenkins/bump-increment.sh
Original file line number Diff line number Diff line change
@@ -0,0 1,25 @@
#!/bin/bash

echo "############################################"
echo "## Increment version and add "-snapshot" ##"
echo "############################################"

if [ "$1" != "patch" -a "$1" != "minor" -a "$1" != "major" ]; then
echo "Please specify the next version type: patch|minor|major"
exit 1
fi
BUMP_TYPE=$1

# Enable tracing and exit on first failure
set -xe
# Normalize working dir to script dir
cd `dirname $0`/../..

echo "-- increment version "
grunt bump:$BUMP_TYPE
NEXT_VERSION=$(node -e "console.log(require('./package.json').version)" | sed -e 's/\r//g')
sed -i .tmp -e 's/"version": "\(.*\)"/"version": "\1-snapshot"/' package.json
echo "-- new version: `grep '"version"' package.json`"
echo "-- commit"
git add package.json
git commit -m "chore(release): start v$NEXT_VERSION"
20 changes: 20 additions & 0 deletions scripts/jenkins/bump-remove-snapshot.sh
Original file line number Diff line number Diff line change
@@ -0,0 1,20 @@
#!/bin/bash

echo "############################################"
echo "## Remove "-snapshot" from version ########"
echo "############################################"

# Enable tracing and exit on first failure
set -xe
# Normalize working dir to script dir
cd `dirname $0`/../..

echo "-- old version: `grep '"version"' package.json`"
sed -i .tmp -e 's/"version": "\(.*\)-snapshot"/"version": "\1"/' package.json
VERSION=$(node -e "console.log(require('./package.json').version)" | sed -e 's/\r//g')
echo "-- local version: $VERSION"

echo "-- commit and tag with v$VERSION"
git add package.json
git commit -m "chore(release): v$VERSION"
git tag -m "v$VERSION" v$VERSION
23 changes: 17 additions & 6 deletions scripts/jenkins/master.sh
Original file line number Diff line number Diff line change
@@ -1,14 1,25 @@
#!/bin/bash

set -e # fail if any command fails
echo "#################################"
echo "#### Update master ##############"
echo "#################################"

# Enable tracing and exit on first failure
set -xe

cd `dirname $0`/../..

# Build
echo "#################################"
echo "#### Jenkins Build ############"
echo "#################################"
./jenkins_build.sh

# Update code.angularjs.org
VERSION=`cat build/version.txt`
curl -G --data-urlencode 'ver=$VERSION' http://code.angularjs.org/fetchLatestSnapshot.php
echo "#################################"
echo "## Update code.angular.js.org ###"
echo "#################################"
./scripts/code.angularjs.org/publish.sh

# Push to bower
echo "#################################"
echo "#### Update bower ###############"
echo "#################################"
./scripts/bower/publish.sh
40 changes: 19 additions & 21 deletions scripts/jenkins/release.sh
Original file line number Diff line number Diff line change
@@ -1,40 1,38 @@
#!/bin/bash

if [ -z "$1" ]; then
echo "Please specify the version bump type: patch|minor|major"
exit 1
echo "#################################"
echo "#### Cut release ################"
echo "#################################"

if [ "$1" != "patch" -a "$1" != "minor" -a "$1" != "major" ]; then
echo "Please specify the next version type: patch|minor|major"
exit 1
fi
BUMP_TYPE=$1

set -e # fail if any command fails
# Enable tracing and exit on first failure
set -xe
# Normalize working dir to script dir
cd `dirname $0`/../..
BUMP_TYPE=$1

# bump versions: remove "-snapshot" suffix
sed -i .tmp -e 's/"version": "\(.*\)-snapshot"/"version": "\1"/' package.json

# Bump versions: remove "-snapshot" suffix
./scripts/jenkins/bump-remove-snapshot.sh

# Build
./jenkins_build.sh
VERSION=`cat build/version.txt`

# Commit and tag
git add package.json
git commit -m "chore(release): v$VERSION"
git tag -m "v$VERSION" v$VERSION

# bump versions: increment version number and add "-snapshot"
grunt bump:$BUMP_TYPE
NEXT_VERSION=$(node -e "console.log(require('./package.json').version)" | sed -e 's/\r//g')
sed -i .tmp -e 's/"version": "\(.*\)"/"version": "\1-snapshot"/' package.json
git add package.json
git commit -m "chore(release): start v$NEXT_VERSION"
# Bump versions: Increment version and add "-snapshot"
./scripts/jenkins/bump-increment.sh $BUMP_TYPE

echo "-- push to Github"
# push to github
# TODO git push
git push

# Update code.angularjs.org
./scripts/code.angularjs.org/publish.sh

# Push to bower
# Update bower
./scripts/bower/publish.sh


0 comments on commit 9a4c9e6

Please sign in to comment.