Add `deploy` script

957be993f577e52d548cdebe85bedca3a55c036f
Alexis Sellier committed ago 1 parent ef51e7e9
deploy added +34 -0
1 +
#!/bin/sh
2 +
#
3 +
# Build and deploy 'forge' to a remote server.
4 +
#
5 +
# Usage: ./deploy <host>
6 +
#
7 +
# Builds a Linux/amd64 binary, copies it to the remote host,
8 +
# moves it to /usr/local/bin/forge, and restarts the systemd service.
9 +
#
10 +
set -eu
11 +
12 +
if [ $# -lt 1 ]; then
13 +
  echo "Usage: $0 <host>" >&2
14 +
  exit 1
15 +
fi
16 +
17 +
HOST="$1"
18 +
BINARY="forge"
19 +
REMOTE_PATH="/usr/local/bin/$BINARY"
20 +
SERVICE="forge"
21 +
22 +
echo "Building $BINARY..."
23 +
GOOS=linux GOARCH=amd64 go build -o "bin/$BINARY" .
24 +
25 +
echo "Uploading to $HOST..."
26 +
scp -O "bin/$BINARY" "$USER@$HOST:/tmp/$BINARY"
27 +
28 +
echo "Installing and restarting service..."
29 +
ssh "$USER@$HOST" "
30 +
    sudo mv /tmp/$BINARY $REMOTE_PATH &&
31 +
    sudo chmod 755 $REMOTE_PATH &&
32 +
    sudo systemctl restart $SERVICE
33 +
"
34 +
echo "Done."