diff options
| author | Tobias Bosch | 2014-01-06 12:19:51 -0800 | 
|---|---|---|
| committer | Tobias Bosch | 2014-01-06 12:27:54 -0800 | 
| commit | 5dc27959d5c0e45cc0cc6133a9ef676cc15d44bd (patch) | |
| tree | ecc31ec61ff67169774d529d487f819616638a01 /scripts/code.angularjs.org | |
| parent | 4c21355940a98c7236a33d1b5e86d6cd3cf562cb (diff) | |
| download | angular.js-5dc27959d5c0e45cc0cc6133a9ef676cc15d44bd.tar.bz2 | |
chore(build): refactor build scripts in prepare/publish phase
Refactored all scripts so that they are divided into a `prepare`
and a `publish` phase. By this we can build, test, tag, commit
everything first. Only if all of this is ok we start pushing
to Github. By this we keep Github consistent even in error cases.
Extracted include script `/scripts/utils.inc`:
- parse and validate named arguments in the style
  `--name=value`
- proxy git command and deactivate `git push` based on
  command option `--git_push_dry_run=true`
  (will be inherited to child scripts)
- enable/disable bash debug mode by command option
  `--verbose=true`
- dispatch to functions based on command option
  `--action=...`
- helper functions for dealing with json files
Diffstat (limited to 'scripts/code.angularjs.org')
| -rw-r--r-- | scripts/code.angularjs.org/README.md | 18 | ||||
| -rwxr-xr-x | scripts/code.angularjs.org/publish.sh | 123 | 
2 files changed, 67 insertions, 74 deletions
| diff --git a/scripts/code.angularjs.org/README.md b/scripts/code.angularjs.org/README.md deleted file mode 100644 index e3887004..00000000 --- a/scripts/code.angularjs.org/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# code.angular.js.org Script - -Script for updating code.angularjs.org repo from current local build. - -Note: For a snapshot build, this will fetch the data from the ci server -and NOT take the local build! - -## Instructions - -`grunt package`: Build angular locally - -```shell -./publish.sh -``` - -## License -MIT - diff --git a/scripts/code.angularjs.org/publish.sh b/scripts/code.angularjs.org/publish.sh index 352ac10b..4845ad2a 100755 --- a/scripts/code.angularjs.org/publish.sh +++ b/scripts/code.angularjs.org/publish.sh @@ -1,62 +1,73 @@  #!/bin/bash +# Script for updating code.angularjs.org repo from current local build. +  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` - -TMP_DIR=../../tmp -REPO_DIR=$TMP_DIR/code.angularjs.org -BUILD_DIR=../../build -SCRIPT_DIR=`pwd` -NEW_VERSION=`cat $BUILD_DIR/version.txt` - -# -# 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 "-- updating snapshot version" -  curl -G --data-urlencode "ver=$NEW_VERSION" http://code.angularjs.org/fetchLatestSnapshot.php -  exit 0; -fi - -# -# clone -# - -echo "-- Cloning code.angularjs.org" -git clone git@github.com: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 -git fetch --all -git reset --hard origin/master -cd $SCRIPT_DIR -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" -git push origin master -cd $SCRIPT_DIR - -# -# refresh code.angularjs.org from github -# -curl http://code.angularjs.org/gitFetchSite.php
\ No newline at end of file +ARG_DEFS=( +  "--action=(prepare|publish)" +) + +function init { +  TMP_DIR=$(resolveDir ../../tmp) +  BUILD_DIR=$(resolveDir ../../build) +  REPO_DIR=$TMP_DIR/code.angularjs.org +  NEW_VERSION=$(cat $BUILD_DIR/version.txt) +  if [[ "$NEW_VERSION" =~ sha ]]; then +    IS_SNAPSHOT_BUILD=true +  else +    IS_SNAPSHOT_BUILD= +  fi +} + +function prepare { +  if [[  $IS_SNAPSHOT_BUILD ]]; then +    # nothing to prepare for snapshot builds as +    # code.angularjs.org will fetch the current snapshot from +    # the build server during publish +    exit 0 +  fi + +  echo "-- Cloning code.angularjs.org" +  git clone git@github.com: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 +  git fetch --all +  git reset --hard origin/master +  cd $SCRIPT_DIR +  cp -r $BUILD_DIR/* $REPO_DIR/$NEW_VERSION/ + +  # +  # commit +  # +  echo "-- Committing code.angularjs.org" +  cd $REPO_DIR +  git add -A +  git commit -m "v$NEW_VERSION" +} + +function publish { +  if [[  $IS_SNAPSHOT_BUILD ]]; then +    echo "-- Updating snapshot version" +    curl -G --data-urlencode "ver=$NEW_VERSION" http://code.angularjs.org/fetchLatestSnapshot.php +    exit 0; +  fi + +  cd $REPO_DIR +  echo "-- Pushing code.angularjs.org" +  git push origin master + +  echo "-- Refreshing code.angularjs.org" +  curl http://code.angularjs.org/gitFetchSite.php +} + +source $(dirname $0)/../utils.inc | 
