aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/angular.js/finalize-version.sh20
-rwxr-xr-xscripts/angular.js/initialize-new-version.sh24
-rwxr-xr-xscripts/angular.js/publish.sh42
-rwxr-xr-xscripts/angular.js/tag-release.sh42
-rwxr-xr-xscripts/jenkins/release.sh51
5 files changed, 80 insertions, 99 deletions
diff --git a/scripts/angular.js/finalize-version.sh b/scripts/angular.js/finalize-version.sh
deleted file mode 100755
index e885fd14..00000000
--- a/scripts/angular.js/finalize-version.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-
-echo "############################################"
-echo "## Remove "-snapshot" from version ########"
-echo "############################################"
-
-ARG_DEFS=()
-
-function run {
- cd ../..
-
- replaceJsonProp "package.json" "version" "(.*)-snapshot" "\2"
- VERSION=$(readJsonProp "package.json" "version")
-
- git add package.json
- git commit -m "chore(release): cut v$VERSION release"
- git tag -m "v$VERSION" v$VERSION
-}
-
-source $(dirname $0)/../utils.inc
diff --git a/scripts/angular.js/initialize-new-version.sh b/scripts/angular.js/initialize-new-version.sh
deleted file mode 100755
index 9d060555..00000000
--- a/scripts/angular.js/initialize-new-version.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-echo "############################################"
-echo "## Increment version, add "-snapshot" and set version name ##"
-echo "############################################"
-
-ARG_DEFS=(
- "--next-version-type=(patch|minor|major)"
- "--next-version-name=(.+)"
-)
-
-function run {
- cd ../..
-
- grunt bump:$NEXT_VERSION_TYPE
- NEXT_VERSION=$(readJsonProp "package.json" "version")
- replaceJsonProp "package.json" "version" "(.*)" "\2-snapshot"
- replaceJsonProp "package.json" "codename" ".*" "$NEXT_VERSION_NAME"
-
- git add package.json
- git commit -m "chore(release): start v$NEXT_VERSION ($NEXT_VERSION)"
-}
-
-source $(dirname $0)/../utils.inc
diff --git a/scripts/angular.js/publish.sh b/scripts/angular.js/publish.sh
deleted file mode 100755
index 8de5b11b..00000000
--- a/scripts/angular.js/publish.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash
-
-# Script for updating angular.js repo from current local build.
-
-echo "#################################"
-echo "## Update angular.js ###"
-echo "#################################"
-
-ARG_DEFS=(
- "--action=(prepare|publish)"
- "--next-version-type=(patch|minor|major)"
- "--next-version-name=(.+)"
- "[--no-test=(true|false)]"
-)
-
-function init {
- cd ../..
-}
-
-function prepare() {
- ./scripts/angular.js/finalize-version.sh
-
- # Build
- if [[ $NO_TEST == "true" ]]; then
- npm install --color false
- grunt ci-checks package --no-color
- else
- ./jenkins_build.sh
- fi
-
- ./scripts/angular.js/initialize-new-version.sh --next-version-type=$NEXT_VERSION_TYPE --next-version-name=$NEXT_VERSION_NAME
-}
-
-function publish() {
- BRANCH=$(git rev-parse --abbrev-ref HEAD)
- # push the commits to github
- git push origin $BRANCH
- # push the release tag
- git push origin v`cat build/version.txt`
-}
-
-source $(dirname $0)/../utils.inc
diff --git a/scripts/angular.js/tag-release.sh b/scripts/angular.js/tag-release.sh
new file mode 100755
index 00000000..fbb6e2de
--- /dev/null
+++ b/scripts/angular.js/tag-release.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+# Tags a release
+# so that travis can do the actual release.
+
+echo "#################################"
+echo "## Tag angular.js for a release #"
+echo "#################################"
+
+ARG_DEFS=(
+ "--action=(prepare|publish)"
+ "--commit-sha=(.*)"
+ # the version number of the release.
+ # e.g. 1.2.12 or 1.2.12-rc.1
+ "--version-number=([0-9]+\.[0-9]+\.[0-9]+(-[a-z]+\.[0-9]+)?)"
+ "--version-name=(.+)"
+)
+
+function checkVersionNumber() {
+ BRANCH_PATTERN=$(readJsonProp "package.json" "branchVersion")
+ if [[ $VERSION_NUMBER != $BRANCH_PATTERN ]]; then
+ echo "version-number needs to match $BRANCH_PATTERN on this branch"
+ usage
+ fi
+}
+
+function init {
+ cd ../..
+ checkVersionNumber
+ TAG_NAME="v$VERSION_NUMBER"
+}
+
+function prepare() {
+ git tag "$TAG_NAME" -m "chore(release): $TAG_NAME codename($VERSION_NAME)" "$COMMIT_SHA"
+}
+
+function publish() {
+ # push the tag to github
+ git push origin $TAG_NAME
+}
+
+source $(dirname $0)/../utils.inc
diff --git a/scripts/jenkins/release.sh b/scripts/jenkins/release.sh
index 744a1a28..8c1e46bc 100755
--- a/scripts/jenkins/release.sh
+++ b/scripts/jenkins/release.sh
@@ -1,38 +1,63 @@
#!/bin/bash
+# tags the current commit as a release and publishes all artifacts to
+# the different repositories.
+# Note: This will also works if the commit is in the past!
+
echo "#################################"
-echo "#### Cut release ################"
+echo "#### cut release ############"
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)]"
+ # The sha to release. Needs to be the same as HEAD.
+ # given as parameter to double check.
+ "--commit-sha=(.*)"
+ # the version number of the release.
+ # e.g. 1.2.12 or 1.2.12-rc.1
+ "--version-number=([0-9]+\.[0-9]+\.[0-9]+(-[a-z]+\.[0-9]+)?)"
+ # the codename of the release
+ "--version-name=(.+)"
)
function init {
- NG_ARGS=("$@")
+ if [[ $(git rev-parse --short HEAD) != $COMMIT_SHA ]]; then
+ echo "HEAD is not at $COMMIT_SHA"
+ usage
+ fi
+
if [[ ! $VERBOSE ]]; then
VERBOSE=false
fi
- if [[ ! $NO_TEST ]]; then
- NO_TEST=false
- fi
VERBOSE_ARG="--verbose=$VERBOSE"
- NO_TEST_ARG="--no_test=$NO_TEST"
+}
+
+function build {
+ cd ../..
+
+ npm install --color false
+ grunt ci-checks package --no-color
+
+ cd $SCRIPT_DIR
}
function phase {
ACTION_ARG="--action=$1"
- ../angular.js/publish.sh $ACTION_ARG $VERBOSE_ARG $NO_TEST_ARG \
- --next-version-type=$NEXT_VERSION_TYPE --next-version-name=$NEXT_VERSION_NAME
+ ../angular.js/tag-release.sh $ACTION_ARG $VERBOSE_ARG\
+ --version-number=$VERSION_NUMBER --version-name=$VERSION_NAME\
+ --commit-sha=$COMMIT_SHA
+
+ if [[ $1 == "prepare" ]]; then
+ # The build requires the tag to be set already!
+ build
+ fi
+
../code.angularjs.org/publish.sh $ACTION_ARG $VERBOSE_ARG
../bower/publish.sh $ACTION_ARG $VERBOSE_ARG
- ../angular-seed/publish.sh $ACTION_ARG $VERBOSE_ARG $NO_TEST_ARG
- ../angular-phonecat/publish.sh $ACTION_ARG $VERBOSE_ARG $NO_TEST_ARG
+ ../angular-seed/publish.sh $ACTION_ARG $VERBOSE_ARG --no-test=true
+ ../angular-phonecat/publish.sh $ACTION_ARG $VERBOSE_ARG --no-test=true
}
function run {