2025-03-13 15:49:39 +08:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
2025-03-13 16:06:21 +08:00
|
|
|
|
# 开启严格模式
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
2025-03-13 15:49:39 +08:00
|
|
|
|
# 定义变量
|
|
|
|
|
|
REPO_URL="https://git.sugarscat.cn/me/note"
|
|
|
|
|
|
TARGET_DIR="/var/www/note"
|
|
|
|
|
|
DIST_DIR=".vitepress/dist"
|
2025-03-13 16:06:21 +08:00
|
|
|
|
TEMP_DIR=$(mktemp -d) # 生成临时目录
|
|
|
|
|
|
|
|
|
|
|
|
# 清理临时目录的函数(在脚本退出时执行)
|
|
|
|
|
|
cleanup() {
|
|
|
|
|
|
rm -rf "$TEMP_DIR"
|
|
|
|
|
|
}
|
|
|
|
|
|
trap cleanup EXIT
|
|
|
|
|
|
|
|
|
|
|
|
echo "开始下载最新构建产物..."
|
|
|
|
|
|
curl -L -o "$TEMP_DIR/artifact.zip" "$REPO_URL/-/jobs/artifacts/main/download?job=build"
|
2025-03-13 15:49:39 +08:00
|
|
|
|
|
2025-03-13 20:03:16 +08:00
|
|
|
|
# shellcheck disable=SC2181
|
|
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
|
|
echo "下载失败,请检查网络连接或重新尝试。"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# 检查 unzip 是否可用,不可用时自动安装
|
|
|
|
|
|
if ! command -v unzip &> /dev/null; then
|
|
|
|
|
|
echo "unzip 未安装,开始安装 ···"
|
|
|
|
|
|
if command -v apt-get &> /dev/null; then
|
|
|
|
|
|
sudo apt-get update
|
|
|
|
|
|
sudo apt-get install -y unzip
|
|
|
|
|
|
elif command -v yum &> /dev/null; then
|
|
|
|
|
|
sudo yum install -y unzip
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "无法安装 unzip,请手动安装。"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
2025-03-13 16:06:21 +08:00
|
|
|
|
echo "解压文件..."
|
|
|
|
|
|
unzip -q "$TEMP_DIR/artifact.zip" -d "$TEMP_DIR"
|
2025-03-13 15:49:39 +08:00
|
|
|
|
|
2025-03-13 16:06:21 +08:00
|
|
|
|
# 确保目标目录存在
|
|
|
|
|
|
sudo mkdir -p "$TARGET_DIR"
|
2025-03-13 15:49:39 +08:00
|
|
|
|
|
2025-03-13 16:06:21 +08:00
|
|
|
|
echo "清空目标目录..."
|
|
|
|
|
|
sudo rm -rf "$TARGET_DIR"/*
|
2025-03-13 15:49:39 +08:00
|
|
|
|
|
2025-03-13 16:06:21 +08:00
|
|
|
|
echo "移动文件到目标目录..."
|
|
|
|
|
|
sudo mv "$TEMP_DIR/$DIST_DIR"/* "$TARGET_DIR"
|
2025-03-13 15:49:39 +08:00
|
|
|
|
|
2025-03-13 16:06:21 +08:00
|
|
|
|
echo "部署完成!"
|