#!/bin/bash # 开启严格模式 set -e # 定义变量 REPO_URL="https://git.sugarscat.cn/me/note" TARGET_DIR="/var/www/note" DIST_DIR=".vitepress/dist" 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" # 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 echo "解压文件..." unzip -q "$TEMP_DIR/artifact.zip" -d "$TEMP_DIR" # 确保目标目录存在 sudo mkdir -p "$TARGET_DIR" echo "清空目标目录..." sudo rm -rf "$TARGET_DIR"/* echo "移动文件到目标目录..." sudo mv "$TEMP_DIR/$DIST_DIR"/* "$TARGET_DIR" echo "部署完成!"