AnyBot/deploy/ci/package-linux.sh

45 lines
2.2 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
# Package the Linux builds for a release (run from app/ after the release builds):
# dist/AnyBot-<version>-ubuntu-x86_64.tar.gz the app with its window (menu entry, icon)
# dist/AnyBot-<version>-headless-x86_64.tar.gz for a computer without a screen (hands, or a brain)
# dist/AnyBot-<version>-server-x86_64.tar.gz account server + brain on one server (Docker)
set -e
VERSION=${1:?version}
ARCH=$(uname -m)
OUT=dist
rm -rf "$OUT" && mkdir -p "$OUT"
BIN=${CARGO_TARGET_DIR:-target}/release/anybot
RELAY=${CARGO_TARGET_DIR:-relay/target}/release/anybot-relay
strip "$BIN" "$RELAY" 2>/dev/null || true
# Ubuntu (with a window)
D="$OUT/AnyBot-$VERSION-ubuntu-$ARCH"
mkdir -p "$D"
cp "$BIN" deploy/linux/anybot.desktop icons/anybot.svg "$D/"
cp deploy/ci/linux-install.sh "$D/install.sh"
printf 'AnyBot %s(Ubuntu 22.04 以後、Debian 12 以後)\n\n ./install.sh 安裝,之後從選單打開 AnyBot\n' "$VERSION" > "$D/讀我.txt"
tar -C "$OUT" -czf "$D.tar.gz" "$(basename "$D")"
# Without a screen (hands, or a brain)
D="$OUT/AnyBot-$VERSION-headless-$ARCH"
mkdir -p "$D"
cp "$BIN" "$D/"
cp deploy/ci/linux-install.sh "$D/install.sh"
cp deploy/linux/hands.sh "$D/hands.sh"
printf 'AnyBot %s:沒有螢幕的 Linux\n\n ./install.sh\n 然後在手機或電腦的 AnyBot 按「加一台電腦」,把那一行貼到這台執行。\n 想讓 Bot 看這台的畫面(虛擬螢幕):先執行 ./hands.sh --deps\n' "$VERSION" > "$D/讀我.txt"
tar -C "$OUT" -czf "$D.tar.gz" "$(basename "$D")"
# Server: account server + brain, from these binaries (no compiling on the server)
D="$OUT/AnyBot-$VERSION-server-$ARCH"
mkdir -p "$D/bin" "$D/deploy/server" "$D/relay"
cp "$BIN" "$RELAY" "$D/bin/"
cp deploy/server/setup.sh deploy/server/.env.example "$D/deploy/server/"
cp deploy/ci/server-compose.yml "$D/deploy/server/docker-compose.yml"
cp deploy/ci/Dockerfile.server-relay deploy/ci/Dockerfile.server-anybot "$D/deploy/server/"
cp relay/Caddyfile "$D/relay/Caddyfile"
printf 'AnyBot %s 伺服器(帳號伺服器 + 大腦 + HTTPS,用 Docker)\n\n cd deploy/server && ./setup.sh\n' "$VERSION" > "$D/讀我.txt"
tar -C "$OUT" -czf "$D.tar.gz" "$(basename "$D")"
find "$OUT" -maxdepth 1 -type d -name 'AnyBot-*' -exec rm -rf {} +
ls -la "$OUT"