diff options
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/angular.js/finalize-version.sh | 20 | ||||
| -rwxr-xr-x | scripts/angular.js/initialize-new-version.sh | 24 | ||||
| -rwxr-xr-x | scripts/angular.js/publish.sh | 42 | ||||
| -rwxr-xr-x | scripts/angular.js/tag-release.sh | 42 | ||||
| -rwxr-xr-x | scripts/jenkins/release.sh | 51 |
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 { |
