Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- #
- # Build, assemble, and prepare for deployment
- #
- #
- #-----------------------------------------------------------------------------
- # setup and validation
- #-----------------------------------------------------------------------------
- dname="myapp"
- virtname="myapp"
- code_path="trunk"
- rebuild_virt=0
- target_environment="dev"
- #-----------------------------------------------------------------------------
- # Parse options and overrides
- #-----------------------------------------------------------------------------
- usage () {
- echo
- echo "$0"
- echo "Build application and prepare for deployment"
- echo
- echo "Usage:"
- echo " [-r] # rebuild virtual environment"
- echo " [-c CODEPATH] # alternate code export path"
- echo " [-e] # target environment (dev|prod)"
- echo
- echo "Examples:"
- echo "$0 # defaults: no virt rebuild. export from trunk."
- echo "$0 -r"
- echo "$0 -c 'trunk'"
- echo "$0 -c 'tags/REL-0.1'"
- echo "$0 -e 'prod'"
- echo "$0 -e 'dev'"
- echo
- }
- while getopts ":rc:e:" Option
- do
- case $Option in
- r ) rebuild_virt=1;;
- c ) code_path="$OPTARG";;
- e ) target_environment="$OPTARG";;
- * ) usage; exit 1; ;;
- esac
- done
- shift $(($OPTIND - 1))
- #------------------------------------------------------------------------------
- # Setup / Validate
- #------------------------------------------------------------------------------
- approot="/opt/company/$virtname"
- exportroot="$approot/$dname"
- repo_uri="svn+ssh://somerepo.company.com/var/svn/repos/$dname/${code_path}/"
- result=$(svn ls "$repo_uri")
- retval="$?"
- if [ $retval -ne 0 ]; then
- echo "Not a valid code branch or tag"
- exit 2
- fi
- if [[ $target_environment != "prod" && $target_environment != "dev" ]]; then
- echo "Not a valid target_environment"
- exit 3
- fi
- #-----------------------------------------------------------------------------
- # start
- #-----------------------------------------------------------------------------
- echo "::> starting build process"
- echo -n "::> "; date
- echo "::> deleting pre-existing work directories"
- rm -rf "$exportroot"
- #-----------------------------------------------------------------------------
- # virtualenv
- #-----------------------------------------------------------------------------
- if [ $rebuild_virt -eq 1 ]; then
- echo "::> re-creating new python virtual environment"
- rm -rf "$approot"
- mkdir "$approot"
- virtualenv --no-site-packages $approot
- echo "::> entering new virtual environment"
- cd $approot
- source ./bin/activate
- else
- echo "::> using existing python virtual environment"
- echo "::> entering virtual environment"
- cd $approot
- source ./bin/activate
- fi
- #-----------------------------------------------------------------------------
- # application
- #-----------------------------------------------------------------------------
- # leave note indicating automated build
- touch "$approot/BUILT-BY-$(basename $0)"
- echo "::> exporting a copy of code from svn repo"
- svn -q export $repo_uri $exportroot
- echo "::> installing/updating dependencies (using pip inside virtualenv)"
- pip install -r $exportroot/requirements.txt
- echo "::> app root: $approot"
- echo "::> app root contents:"
- cd
- ls -la $approot
- #-----------------------------------------------------------------------------
- # finish
- #-----------------------------------------------------------------------------
- echo "::> finished"
- echo -n "::> "; date
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement