ci: add release workflow + install script
- Release workflow: builds linux/darwin amd64/arm64 on tag push - Injects version via -ldflags - Creates Gitea release with binary assets + checksums - install.sh: curl-pipe-bash installer from latest release - Version variable in main.go for -version flag support
This commit is contained in:
Executable
+35
@@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
# Install review-bot from latest Gitea release
|
||||
# Usage: curl -sSfL https://gitea.weiker.me/rodin/review-bot/raw/branch/main/install.sh | bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
GITEA_URL="${GITEA_URL:-https://gitea.weiker.me}"
|
||||
REPO="rodin/review-bot"
|
||||
INSTALL_DIR="${INSTALL_DIR:-/usr/local/bin}"
|
||||
|
||||
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
|
||||
ARCH=$(uname -m)
|
||||
case "$ARCH" in
|
||||
x86_64) ARCH="amd64" ;;
|
||||
aarch64|arm64) ARCH="arm64" ;;
|
||||
*) echo "Unsupported architecture: $ARCH" >&2; exit 1 ;;
|
||||
esac
|
||||
|
||||
BINARY="review-bot-${OS}-${ARCH}"
|
||||
|
||||
# Get latest release tag
|
||||
LATEST=$(curl -sSf "${GITEA_URL}/api/v1/repos/${REPO}/releases?limit=1" | grep -o '"tag_name":"[^"]*"' | head -1 | cut -d'"' -f4)
|
||||
|
||||
if [ -z "$LATEST" ]; then
|
||||
echo "Failed to determine latest release" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Installing review-bot ${LATEST} (${OS}/${ARCH})..."
|
||||
|
||||
DOWNLOAD_URL="${GITEA_URL}/${REPO}/releases/download/${LATEST}/${BINARY}"
|
||||
curl -sSfL -o "${INSTALL_DIR}/review-bot" "$DOWNLOAD_URL"
|
||||
chmod +x "${INSTALL_DIR}/review-bot"
|
||||
|
||||
echo "Installed review-bot ${LATEST} to ${INSTALL_DIR}/review-bot"
|
||||
Reference in New Issue
Block a user