From 9ddef840b665bd94a49102a4e3dbc433f7b29b9a Mon Sep 17 00:00:00 2001 From: Tobias Bosch Date: Thu, 9 Jan 2014 14:39:48 -0800 Subject: chore(build): add relase-after-cdn script --- scripts/angular.js/publish-cdn-version.sh | 30 ++++++++++++++++++++ scripts/angularjs.org/publish.sh | 47 +++++++++++++++++++++++++++++++ scripts/jenkins/release-after-cdn.sh | 39 +++++++++++++++++++++++++ scripts/jenkins/release.sh | 3 ++ scripts/utils.inc | 7 ++++- 5 files changed, 125 insertions(+), 1 deletion(-) create mode 100755 scripts/angular.js/publish-cdn-version.sh create mode 100755 scripts/angularjs.org/publish.sh create mode 100755 scripts/jenkins/release-after-cdn.sh diff --git a/scripts/angular.js/publish-cdn-version.sh b/scripts/angular.js/publish-cdn-version.sh new file mode 100755 index 00000000..ed5ce43e --- /dev/null +++ b/scripts/angular.js/publish-cdn-version.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +# Script for updating cdnVersion of angular.js + +echo "###################################" +echo "## Update angular.js cdnVersion ###" +echo "###################################" + +ARG_DEFS=( + "--cdn-version=(.*)" + "--action=(prepare|publish)" +) + +function init { + cd ../.. +} + +function prepare { + replaceJsonProp "package.json" "cdnVersion" "(.*)" "$CDN_VERSION" + git add package.json + git commit -m "chore(release): update cdn version" +} + +function publish { + BRANCH=$(git rev-parse --abbrev-ref HEAD) + # push the commits to github + git push origin $BRANCH +} + +source $(dirname $0)/../utils.inc diff --git a/scripts/angularjs.org/publish.sh b/scripts/angularjs.org/publish.sh new file mode 100755 index 00000000..1efb621b --- /dev/null +++ b/scripts/angularjs.org/publish.sh @@ -0,0 +1,47 @@ +#!/bin/sh +# Script for updating angularjs.org repo + +echo "#################################" +echo "##### Update angularjs.org ######" +echo "#################################" + +ARG_DEFS=( + "--action=(prepare|publish)" + "--cdn-version=(.*)" +) + +function init { + TMP_DIR=$(resolveDir ../../tmp) + REPO_DIR=$TMP_DIR/angularjs.org +} + +function prepare { + echo "-- Cloning angularjs.org" + git clone git@github.com:angular/angularjs.org.git $REPO_DIR + + # + # update files + # + echo "-- Updating angularjs.org" + cd $REPO_DIR + VERSION_REGEX="[a-z0-9\-\.\+]+" + + replaceInFile "index.html" "(ajax\/libs\/angularjs\/)$VERSION_REGEX" "\1$CDN_VERSION" + replaceInFile "index.html" "([^<]*)$VERSION_REGEX" "\1$CDN_VERSION" + replaceInFile "index.html" "(code.angularjs.org\/)$VERSION_REGEX" "\1$CDN_VERSION" + + replaceInFile "js/homepage.js" "($scope.CURRENT_STABLE_VERSION[ ]*=[ ]*')$VERSION_REGEX" "\1$CDN_VERSION" + replaceInFile "js/homepage.js" "($scope.CURRENT_UNSTABLE_VERSION[ ]*=[ ]*')$VERSION_REGEX" "\1$CDN_VERSION" + + git add index.html + git add js/homepage.js + git commit -m "update(version): update angular version to $CDN_VERSION" +} + +function publish { + cd $REPO_DIR + echo "-- Pushing angularjs.org" + git push origin master +} + +source $(dirname $0)/../utils.inc diff --git a/scripts/jenkins/release-after-cdn.sh b/scripts/jenkins/release-after-cdn.sh new file mode 100755 index 00000000..7623e177 --- /dev/null +++ b/scripts/jenkins/release-after-cdn.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +ARG_DEFS=( + # require the git dryrun flag so the script can't be run without + # thinking about this! + "--git-push-dryrun=(true|false)" +) + +function findLatestRelease { + # returns e.g. v1.2.7 + LATEST_TAG=$(git describe --abbrev=0 --tags) + # returns e.g. 1.2.7 + echo ${LATEST_TAG:1} +} + +function init { + NG_ARGS=("$@") + if [[ ! $VERBOSE ]]; then + VERBOSE=false + fi + VERBOSE_ARG="--verbose=$VERBOSE" +} + +function phase { + ACTION_ARG="--action=$1" + CDN_VERSION_ARG="--cdn-version=$LATEST_VERSION" + ./scripts/angular.js/publish-cdn-version.sh $ACTION_ARG $CDN_VERSION_ARG $VERBOSE_ARG + ./scripts/angularjs.org/publish.sh $ACTION_ARG $CDN_VERSION_ARG $VERBOSE_ARG +} + +function run { + cd ../.. + LATEST_VERSION=$(findLatestRelease) + + phase prepare + phase publish +} + +source $(dirname $0)/../utils.inc \ No newline at end of file diff --git a/scripts/jenkins/release.sh b/scripts/jenkins/release.sh index 1b1bd26e..744a1a28 100755 --- a/scripts/jenkins/release.sh +++ b/scripts/jenkins/release.sh @@ -7,6 +7,9 @@ echo "#################################" ARG_DEFS=( "--next-version-type=(patch|minor|major)" "--next-version-name=(.+)" + # require the git dryrun flag so the script can't be run without + # thinking about this! + "--git-push-dryrun=(true|false)" "[--no-test=(true|false)]" ) diff --git a/scripts/utils.inc b/scripts/utils.inc index 3b0039ed..00213628 100644 --- a/scripts/utils.inc +++ b/scripts/utils.inc @@ -202,7 +202,12 @@ function readJsonProp { # - note: propertyRegex will be automatically placed into a # capturing group! -> all other groups start at index 2! function replaceJsonProp { - sed -i .tmp -E 's/"('$2')"[ ]*:[ ]*"'$3'"/"\1": "'$4'"/' $1 + replaceInFile $1 '"('$2')"[ ]*:[ ]*"'$3'"' '"\1": "'$4'"' +} + +# replaceInFile(file, findPattern, replacePattern) +function replaceInFile { + sed -i .tmp -E "s/$2/$3/" $1 rm $1.tmp } -- cgit v1.2.3