Files
glauth/v2/tools/release.sh
T
Chris F Ravenscroft e26219c2f4 Dev (#245) -- Docker fix for V2 hierarchy
Co-authored-by: Jörn Friedrich Dreyer <jfd@butonic.de>
Co-authored-by: Zhou Wenzong <wenzong@users.noreply.github.com>
Co-authored-by: Jairo Llopis <Yajo@users.noreply.github.com>
Co-authored-by: Benedikt Kulmann <benedikt@kulmann.biz>
Co-authored-by: Nicolai Willems <172633+nwillems@users.noreply.github.com>
Co-authored-by: Thibault Soubiran <soubi.thibault@gmail.com>
Co-authored-by: Clement JACOB <clems71@gmail.com>
Co-authored-by: Lutz Horn <code@lhorn.de>
Co-authored-by: Márk Sági-Kazár <sagikazarmark@users.noreply.github.com>
Co-authored-by: Peter Heise <pheise@koprolalie.com>
Co-authored-by: Ben Yanke <ben@benyanke.com>
Co-authored-by: fanlix <fanlix@gmail.com>
Co-authored-by: Hank Donnay <hdonnay@gmail.com>
2021-11-26 17:42:20 -08:00

107 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/env zsh
# Change the values below to your own environment
# The remote host is a MacOS machine
LOCAL_ROOT=/home/chris/Projects/glauth/v2
REMOTE_ROOT=/Users/chris/Projects/glauth/v2
REMOTE_PATH=/Users/chris/.asdf/shims
REMOTE_GOPATH=/Users/chris/go
REMOTE_HOST=192.168.1.36
# Exit immediataly on error code
set -e
info() {
echo ""
echo "################################################################################"
echo "$1"
echo "################################################################################"
echo ""
}
remoteprepare() {
info "Preparing remote environment for execution"
ssh $REMOTE_HOST mkdir -p $REMOTE_ROOT/tools
scp $LOCAL_ROOT/tools/release.sh $REMOTE_HOST:$REMOTE_ROOT/tools/release.sh
ssh $REMOTE_HOST chmod +x $REMOTE_ROOT/tools/release.sh
}
localmake() {
branch="$1"
info "Building local $branch environment"
cd $LOCAL_ROOT
git checkout $branch
git pull
[[ -d bin ]] && rm -rf bin
make release
make plugins
}
requestremotemake() {
branch="$1"
info "Requesting remote $branch build"
ssh -t $REMOTE_HOST GOPATH=$REMOTE_GOPATH PATH=$REMOTE_PATH:\$PATH $REMOTE_ROOT/tools/release.sh $branch iamremote
}
remotemake() {
branch="$1"
info "Building remote $branch environment"
cd $REMOTE_ROOT
git checkout $branch
git pull
[[ -d bin ]] && rm -rf bin
make plugins_darwin
}
retrieveremote() {
info "Retrieving remote artifacts"
for pkg in $(ssh $REMOTE_HOST ls $REMOTE_ROOT/bin); do
for lib in $(ssh $REMOTE_HOST ls $REMOTE_ROOT/bin/$pkg); do
scp $REMOTE_HOST:$REMOTE_ROOT/bin/$pkg/$lib $LOCAL_ROOT/bin/$pkg/$lib
echo $lib
done
done
}
archivelocal() {
info "Archiving local artifacts"
cd bin
[[ -f *.zip ]] && rm -f *.zip
for pkg in *; do
echo $pkg
cd $pkg
zip ../$pkg.zip *
cd ..
done
cd ..
}
ACT="$1"
[[ "$2" == "iamremote" ]] && ACT=${ACT}remote
case $ACT in
dev)
localmake dev
remoteprepare
requestremotemake dev
retrieveremote
archivelocal
;;
master)
localmake master
remoteprepare
requestremotemake master
retrieveremote
archivelocal
;;
devremote)
remotemake dev
;;
masterremote)
remotemake master
;;
*)
echo "Select dev or master."
;;
esac