13.32
This commit is contained in:
1 parent
ed9b19adba
commit
a01312d104
2 files changed
+112
-7
No files matched your search
@@ -516,15 +516,21 @@ jobs:
|
|||||||
id: start-upyun-upload
|
id: start-upyun-upload
|
||||||
run: echo "start_time=$(date +%s)" >> $GITHUB_OUTPUT
|
run: echo "start_time=$(date +%s)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Checkout code (for scripts)
|
||||||
|
if: steps.check.outputs.deployed == 'true'
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
|
||||||
- name: Deploy to UpYun
|
- name: Deploy to UpYun
|
||||||
if: steps.check.outputs.deployed == 'true'
|
if: steps.check.outputs.deployed == 'true'
|
||||||
uses: her-cat/upyun-deployer@v1.0.4
|
env:
|
||||||
with:
|
UPYUN_SERVICE: ${{ secrets.UPYUN_BUCKET }}
|
||||||
bucket: ${{ secrets.UPYUN_BUCKET }}
|
UPYUN_OPERATOR: ${{ secrets.UPYUN_OPERATOR }}
|
||||||
operator: ${{ secrets.UPYUN_OPERATOR }}
|
UPYUN_PASSWORD: ${{ secrets.UPYUN_PASSWORD }}
|
||||||
password: ${{ secrets.UPYUN_PASSWORD }}
|
run: |
|
||||||
dir: 'public'
|
chmod +x scripts/deploy_upyun.sh
|
||||||
publish_dir: '/'
|
./scripts/deploy_upyun.sh ./public / 20
|
||||||
|
|
||||||
- name: Save deploy hash
|
- name: Save deploy hash
|
||||||
if: steps.check.outputs.deployed == 'true'
|
if: steps.check.outputs.deployed == 'true'
|
||||||
|
|||||||
@@ -0,0 +1,99 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# UpYun 部署脚本 - 使用 upx 官方工具
|
||||||
|
# 功能:增量同步本地文件到 UpYun,自动删除远程多余文件
|
||||||
|
#
|
||||||
|
# 用法: ./deploy_upyun.sh <本地目录> <远程目录> [线程数]
|
||||||
|
# 示例: ./deploy_upyun.sh ./public / 10
|
||||||
|
#
|
||||||
|
# 环境变量:
|
||||||
|
# UPYUN_SERVICE - 服务名 (bucket)
|
||||||
|
# UPYUN_OPERATOR - 操作员
|
||||||
|
# UPYUN_PASSWORD - 密码
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
START_TIME=$(date +%s)
|
||||||
|
|
||||||
|
# 参数
|
||||||
|
LOCAL_DIR="${1:-./public}"
|
||||||
|
REMOTE_DIR="${2:-/}"
|
||||||
|
THREADS="${3:-10}"
|
||||||
|
|
||||||
|
# 检查环境变量
|
||||||
|
SERVICE_NAME="${UPYUN_SERVICE:-}"
|
||||||
|
OPERATOR="${UPYUN_OPERATOR:-}"
|
||||||
|
PASSWORD="${UPYUN_PASSWORD:-}"
|
||||||
|
|
||||||
|
if [ -z "$SERVICE_NAME" ] || [ -z "$OPERATOR" ] || [ -z "$PASSWORD" ]; then
|
||||||
|
echo "❌ 错误:缺少必要的环境变量"
|
||||||
|
echo "需要设置:"
|
||||||
|
echo " UPYUN_SERVICE - 服务名 (bucket)"
|
||||||
|
echo " UPYUN_OPERATOR - 操作员"
|
||||||
|
echo " UPYUN_PASSWORD - 密码"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "🚀 UpYun 部署开始"
|
||||||
|
echo "=========================================="
|
||||||
|
echo "📦 服务名: $SERVICE_NAME"
|
||||||
|
echo "👤 操作员: $OPERATOR"
|
||||||
|
echo "📁 本地目录: $LOCAL_DIR"
|
||||||
|
echo "☁️ 远程目录: $REMOTE_DIR"
|
||||||
|
echo "🔢 线程数: $THREADS"
|
||||||
|
echo "=========================================="
|
||||||
|
|
||||||
|
# 下载 upx
|
||||||
|
UPX_VERSION="0.4.9"
|
||||||
|
UPX_URL="https://collection.b0.upaiyun.com/softwares/upx/upx_${UPX_VERSION}_linux_amd64.tar.gz"
|
||||||
|
UPX_BIN="/tmp/upx"
|
||||||
|
|
||||||
|
if ! command -v upx &> /dev/null; then
|
||||||
|
echo ""
|
||||||
|
echo "📥 下载 upx v${UPX_VERSION}..."
|
||||||
|
curl -sL "$UPX_URL" -o /tmp/upx.tar.gz
|
||||||
|
|
||||||
|
if [ ! -f /tmp/upx.tar.gz ]; then
|
||||||
|
echo "❌ 下载失败"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
tar -xzf /tmp/upx.tar.gz -C /tmp
|
||||||
|
chmod +x /tmp/upx
|
||||||
|
UPX_BIN="/tmp/upx"
|
||||||
|
|
||||||
|
echo "✅ upx 安装完成"
|
||||||
|
else
|
||||||
|
UPX_BIN="upx"
|
||||||
|
echo "✅ upx 已安装: $(upx --version 2>/dev/null | head -1)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "🔄 开始同步..."
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 使用 upx sync 进行增量同步
|
||||||
|
# --delete: 删除远程端不存在的文件
|
||||||
|
# --thread: 并发线程数
|
||||||
|
# --overwrite: 覆盖已存在的文件
|
||||||
|
# --skip: 跳过相同的文件(基于 MD5)
|
||||||
|
|
||||||
|
$UPX_BIN sync "$LOCAL_DIR" "$REMOTE_DIR" \
|
||||||
|
--delete \
|
||||||
|
--thread "$THREADS" \
|
||||||
|
--overwrite \
|
||||||
|
--skip \
|
||||||
|
--service "$SERVICE_NAME" \
|
||||||
|
--operator "$OPERATOR" \
|
||||||
|
--password "$PASSWORD" \
|
||||||
|
--verbose
|
||||||
|
|
||||||
|
END_TIME=$(date +%s)
|
||||||
|
DURATION=$((END_TIME - START_TIME))
|
||||||
|
MINUTES=$((DURATION / 60))
|
||||||
|
SECONDS=$((DURATION % 60))
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=========================================="
|
||||||
|
echo "✅ UpYun 部署完成!"
|
||||||
|
echo "⏱️ 总耗时: ${MINUTES}分${SECONDS}秒"
|
||||||
|
echo "=========================================="
|
||||||
Reference in new issue
Block a user