deploy 723 B raw
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."