Add release scripts
This commit is contained in:
parent
2bc84f5774
commit
c39328ed18
4 changed files with 132 additions and 0 deletions
76
project/scripts/find-replace.sh
Normal file
76
project/scripts/find-replace.sh
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Find and replace across all source files.
|
||||
#
|
||||
# Example usage:
|
||||
#
|
||||
# sh project/scripts/find-replace.sh 1.1-SNAPSHOT 1.1-RC1
|
||||
#
|
||||
# This script will be called as part of the sbt release script.
|
||||
|
||||
FIND=$1
|
||||
REPLACE=$2
|
||||
|
||||
if [ -z "$FIND" ]; then
|
||||
echo "Usage: find-replace.sh FIND REPLACE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "Find and replace: $FIND --> $REPLACE"
|
||||
|
||||
|
||||
# Exclude directories from search
|
||||
|
||||
excludedirs=".git dist deploy embedded-repo lib_managed project/boot project/scripts src_managed target"
|
||||
|
||||
echo "Excluding directories: $excludedirs"
|
||||
|
||||
excludeopts="\("
|
||||
op="-path"
|
||||
for dir in $excludedirs; do
|
||||
excludeopts="${excludeopts} ${op} '*/${dir}/*'"
|
||||
op="-or -path"
|
||||
done
|
||||
excludeopts="${excludeopts} \) -prune -o"
|
||||
|
||||
|
||||
# Replace in files
|
||||
|
||||
search="find . -type f ${excludeopts} -print0 | xargs -0 grep -Il \"${FIND}\""
|
||||
|
||||
files=$(eval "$search")
|
||||
|
||||
simplediff="diff --old-line-format='- %l
|
||||
' --new-line-format='+ %l
|
||||
' --changed-group-format='%<%>' --unchanged-group-format=''"
|
||||
|
||||
for file in $files; do
|
||||
echo
|
||||
echo $file
|
||||
# escape / for sed
|
||||
sedfind=$(echo $FIND | sed 's/\//\\\//g')
|
||||
sedreplace=$(echo $REPLACE | sed 's/\//\\\//g')
|
||||
sed -i '.sed' "s/${sedfind}/${sedreplace}/g" $file
|
||||
eval "$simplediff $file.sed $file"
|
||||
rm -f $file.sed
|
||||
done
|
||||
|
||||
echo
|
||||
|
||||
|
||||
# Replace in file names
|
||||
|
||||
search="find . -type f ${excludeopts} -name \"*${FIND}*\" -print0"
|
||||
|
||||
files=$(eval "$search")
|
||||
|
||||
for file in $files; do
|
||||
dir=$(dirname $file)
|
||||
name=$(basename $file)
|
||||
newname=$(echo $name | sed "s/${FIND}/${REPLACE}/g")
|
||||
echo "$file --> $newname"
|
||||
mv $file $dir/$newname
|
||||
done
|
||||
|
||||
echo
|
||||
35
project/scripts/push-release.sh
Normal file
35
project/scripts/push-release.sh
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#!/bin/bash
|
||||
|
||||
VERSION=$1
|
||||
|
||||
if [ -z "$VERSION" ]; then
|
||||
echo "Usage: push-release.sh VERSION"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source ~/.akka-release
|
||||
|
||||
if [ -z "$AKKA_RELEASE_SERVER" ]; then
|
||||
echo "Need AKKA_RELEASE_SERVER to be specified"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$AKKA_RELEASE_PATH" ]; then
|
||||
echo "Need AKKA_RELEASE_PATH to be specified"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ref=$(git symbolic-ref HEAD 2> /dev/null)
|
||||
branch=${ref#refs/heads/}
|
||||
|
||||
git push origin $branch
|
||||
git push origin --tags
|
||||
|
||||
release="target/release/${VERSION}"
|
||||
tmp="/tmp/akka-release-${VERSION}"
|
||||
|
||||
rsync -avz ${release}/ ${AKKA_RELEASE_SERVER}:${tmp}/
|
||||
echo "Verify sudo on $AKKA_RELEASE_SERVER"
|
||||
ssh -t ${AKKA_RELEASE_SERVER} sudo -v
|
||||
ssh -t ${AKKA_RELEASE_SERVER} sudo rsync -rpt ${tmp}/ ${AKKA_RELEASE_PATH}
|
||||
ssh -t ${AKKA_RELEASE_SERVER} rm -rf ${tmp}
|
||||
10
project/scripts/release
Normal file
10
project/scripts/release
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
clean
|
||||
script find-replace.sh {{project.version}} {{release.arg1}}
|
||||
script find-replace.sh //[[:space:]]*release:[[:space:]]*
|
||||
reload
|
||||
build-release
|
||||
sh git commit -am 'Update version for release {{project.version}}'
|
||||
sh git tag -m 'Version {{project.version}}' v{{project.version}}
|
||||
sh git revert -n HEAD
|
||||
sh git commit -am 'Restoring SNAPSHOT version'
|
||||
reload
|
||||
11
project/scripts/test-release
Normal file
11
project/scripts/test-release
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
clean
|
||||
clean-lib
|
||||
script find-replace.sh {{project.version}} {{test-release.arg1}}
|
||||
script find-replace.sh //[[:space:]]*release:[[:space:]]*
|
||||
reload
|
||||
update
|
||||
test-compile
|
||||
test
|
||||
build-release
|
||||
sh git reset --hard
|
||||
reload
|
||||
Loading…
Add table
Add a link
Reference in a new issue