Update deploy.yml
This commit is contained in:
1 parent
79fda9325b
commit
e103da83a9
1 file changed
+40
-91
@@ -225,6 +225,7 @@ jobs:
|
|||||||
UPYUN_OPERATOR: ${{ secrets.UPYUN_OPERATOR }}
|
UPYUN_OPERATOR: ${{ secrets.UPYUN_OPERATOR }}
|
||||||
UPYUN_PASSWORD: ${{ secrets.UPYUN_PASSWORD }}
|
UPYUN_PASSWORD: ${{ secrets.UPYUN_PASSWORD }}
|
||||||
id: upload
|
id: upload
|
||||||
|
continue-on-error: true
|
||||||
run: |
|
run: |
|
||||||
echo "📤 上传构建产物到 UpYun..."
|
echo "📤 上传构建产物到 UpYun..."
|
||||||
|
|
||||||
@@ -239,34 +240,26 @@ jobs:
|
|||||||
chmod +x "$UPX_BIN"
|
chmod +x "$UPX_BIN"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for i in 1 2 3; do
|
for i in 1 2 3 4 5; do
|
||||||
echo "🔐 UpYun 登录 (尝试 $i/3)..."
|
echo "🔐 UpYun 登录 (尝试 $i/5)..."
|
||||||
if "$UPX_BIN" login "$UPYUN_SERVICE" "$UPYUN_OPERATOR" "$UPYUN_PASSWORD" 2>&1; then
|
if "$UPX_BIN" login "$UPYUN_SERVICE" "$UPYUN_OPERATOR" "$UPYUN_PASSWORD" 2>&1; then
|
||||||
echo "✅ 登录成功"
|
echo "✅ 登录成功"
|
||||||
break
|
break
|
||||||
else
|
else
|
||||||
echo "⚠️ 登录失败,等待 5 秒后重试..."
|
echo "⚠️ 登录失败,等待 10 秒后重试..."
|
||||||
sleep 5
|
sleep 10
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# 获取上次部署的哈希
|
|
||||||
LAST_HASH=$("$UPX_BIN" get /__build_hash 2>/dev/null || echo "")
|
|
||||||
CURRENT_HASH=$(cat public/.build_hash)
|
CURRENT_HASH=$(cat public/.build_hash)
|
||||||
|
|
||||||
echo "上次部署 hash: $LAST_HASH"
|
|
||||||
echo "当前构建 hash: $CURRENT_HASH"
|
echo "当前构建 hash: $CURRENT_HASH"
|
||||||
|
|
||||||
if [ "$CURRENT_HASH" = "$LAST_HASH" ]; then
|
echo "🔄 开始上传到 UpYun..."
|
||||||
echo "✅ 构建产物无变化,跳过上传"
|
|
||||||
echo "skipped=true" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo "🔄 发现变化,开始上传..."
|
|
||||||
"$UPX_BIN" sync public/ / -w 10 --delete --strong
|
"$UPX_BIN" sync public/ / -w 10 --delete --strong
|
||||||
"$UPX_BIN" put public/.build_hash /__build_hash
|
"$UPX_BIN" put public/.build_hash /__build_hash
|
||||||
echo "✅ 上传完成"
|
echo "✅ UpYun 上传完成"
|
||||||
echo "skipped=false" >> $GITHUB_OUTPUT
|
echo "skipped=false" >> $GITHUB_OUTPUT
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Push Image Optimizations
|
- name: Push Image Optimizations
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
@@ -317,45 +310,6 @@ jobs:
|
|||||||
id: start-edgeone
|
id: start-edgeone
|
||||||
run: echo "start_time=$(date +%s)" >> $GITHUB_OUTPUT
|
run: echo "start_time=$(date +%s)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Get last build hash from UpYun
|
|
||||||
id: last-hash
|
|
||||||
env:
|
|
||||||
UPYUN_SERVICE: ${{ secrets.UPYUN_BUCKET }}
|
|
||||||
UPYUN_OPERATOR: ${{ secrets.UPYUN_OPERATOR }}
|
|
||||||
UPYUN_PASSWORD: ${{ secrets.UPYUN_PASSWORD }}
|
|
||||||
run: |
|
|
||||||
echo "🔍 从 UpYun 获取上次部署的 hash..."
|
|
||||||
|
|
||||||
UPX_VERSION="0.4.9"
|
|
||||||
UPX_URL="https://collection.b0.upaiyun.com/softwares/upx/upx_${UPX_VERSION}_linux_amd64.tar.gz"
|
|
||||||
UPX_BIN="/tmp/upyun-upx"
|
|
||||||
|
|
||||||
if [ ! -x "$UPX_BIN" ]; then
|
|
||||||
curl -sL "$UPX_URL" -o /tmp/upx.tar.gz
|
|
||||||
tar -xzf /tmp/upx.tar.gz -C /tmp
|
|
||||||
mv /tmp/upx "$UPX_BIN"
|
|
||||||
chmod +x "$UPX_BIN"
|
|
||||||
fi
|
|
||||||
|
|
||||||
for i in 1 2 3; do
|
|
||||||
echo "🔐 UpYun 登录 (尝试 $i/3)..."
|
|
||||||
if "$UPX_BIN" login "$UPYUN_SERVICE" "$UPYUN_OPERATOR" "$UPYUN_PASSWORD" 2>&1; then
|
|
||||||
echo "✅ 登录成功"
|
|
||||||
break
|
|
||||||
else
|
|
||||||
echo "⚠️ 登录失败,等待 5 秒后重试..."
|
|
||||||
sleep 5
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
LAST_HASH=$("$UPX_BIN" get /__build_hash 2>/dev/null || echo "")
|
|
||||||
if [ -z "$LAST_HASH" ]; then
|
|
||||||
echo "⚠️ 没有找到上次部署的 hash(首次部署)"
|
|
||||||
else
|
|
||||||
echo "上次部署 hash: $LAST_HASH"
|
|
||||||
fi
|
|
||||||
echo "last_hash=${LAST_HASH}" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Checkout code (for scripts)
|
- name: Checkout code (for scripts)
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
@@ -377,6 +331,19 @@ jobs:
|
|||||||
COS_REGION: ${{ secrets.COS_REGION }}
|
COS_REGION: ${{ secrets.COS_REGION }}
|
||||||
run: coscmd config -a $COS_SECRET_ID -s $COS_SECRET_KEY -b $COS_BUCKET -r $COS_REGION
|
run: coscmd config -a $COS_SECRET_ID -s $COS_SECRET_KEY -b $COS_BUCKET -r $COS_REGION
|
||||||
|
|
||||||
|
- name: Get last build hash from COS
|
||||||
|
id: last-hash
|
||||||
|
run: |
|
||||||
|
echo "🔍 从腾讯云 COS 获取上次部署的 hash..."
|
||||||
|
coscmd download /__build_hash /tmp/last_hash 2>/dev/null || echo ""
|
||||||
|
LAST_HASH=$(cat /tmp/last_hash 2>/dev/null || echo "")
|
||||||
|
if [ -z "$LAST_HASH" ]; then
|
||||||
|
echo "⚠️ 没有找到上次部署的 hash(首次部署)"
|
||||||
|
else
|
||||||
|
echo "上次部署 hash: $LAST_HASH"
|
||||||
|
fi
|
||||||
|
echo "last_hash=${LAST_HASH}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Get current hash from COS
|
- name: Get current hash from COS
|
||||||
id: download
|
id: download
|
||||||
run: |
|
run: |
|
||||||
@@ -475,39 +442,28 @@ jobs:
|
|||||||
id: start-upyun
|
id: start-upyun
|
||||||
run: echo "start_time=$(date +%s)" >> $GITHUB_OUTPUT
|
run: echo "start_time=$(date +%s)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Get last build hash from UpYun
|
- name: Setup Python
|
||||||
id: last-hash
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: '3.x'
|
||||||
|
|
||||||
|
- name: Install coscmd
|
||||||
|
run: pip install -U coscmd
|
||||||
|
|
||||||
|
- name: Configure coscmd
|
||||||
env:
|
env:
|
||||||
UPYUN_SERVICE: ${{ secrets.UPYUN_BUCKET }}
|
COS_SECRET_ID: ${{ secrets.COS_SECRET_ID }}
|
||||||
UPYUN_OPERATOR: ${{ secrets.UPYUN_OPERATOR }}
|
COS_SECRET_KEY: ${{ secrets.COS_SECRET_KEY }}
|
||||||
UPYUN_PASSWORD: ${{ secrets.UPYUN_PASSWORD }}
|
COS_BUCKET: ${{ secrets.COS_BUCKET }}
|
||||||
|
COS_REGION: ${{ secrets.COS_REGION }}
|
||||||
|
run: coscmd config -a $COS_SECRET_ID -s $COS_SECRET_KEY -b $COS_BUCKET -r $COS_REGION
|
||||||
|
|
||||||
|
- name: Get last build hash from COS
|
||||||
|
id: last-hash
|
||||||
run: |
|
run: |
|
||||||
echo "🔍 从 UpYun 获取上次部署的 hash..."
|
echo "� 从腾讯云 COS 获取上次部署的 hash..."
|
||||||
|
coscmd download /__build_hash /tmp/last_hash 2>/dev/null || echo ""
|
||||||
UPX_VERSION="0.4.9"
|
LAST_HASH=$(cat /tmp/last_hash 2>/dev/null || echo "")
|
||||||
UPX_URL="https://collection.b0.upaiyun.com/softwares/upx/upx_${UPX_VERSION}_linux_amd64.tar.gz"
|
|
||||||
UPX_BIN="/tmp/upyun-upx"
|
|
||||||
|
|
||||||
if [ ! -x "$UPX_BIN" ]; then
|
|
||||||
curl -sL "$UPX_URL" -o /tmp/upx.tar.gz
|
|
||||||
tar -xzf /tmp/upx.tar.gz -C /tmp
|
|
||||||
mv /tmp/upx "$UPX_BIN"
|
|
||||||
chmod +x "$UPX_BIN"
|
|
||||||
fi
|
|
||||||
|
|
||||||
for i in 1 2 3; do
|
|
||||||
echo "🔐 UpYun 登录 (尝试 $i/3)..."
|
|
||||||
if "$UPX_BIN" login "$UPYUN_SERVICE" "$UPYUN_OPERATOR" "$UPYUN_PASSWORD" 2>&1; then
|
|
||||||
echo "✅ 登录成功"
|
|
||||||
break
|
|
||||||
else
|
|
||||||
echo "⚠️ 登录失败,等待 5 秒后重试..."
|
|
||||||
sleep 5
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
LAST_HASH=$("$UPX_BIN" get /__build_hash 2>/dev/null || echo "")
|
|
||||||
|
|
||||||
if [ -z "$LAST_HASH" ]; then
|
if [ -z "$LAST_HASH" ]; then
|
||||||
echo "⚠️ 没有找到上次部署的 hash(首次部署)"
|
echo "⚠️ 没有找到上次部署的 hash(首次部署)"
|
||||||
else
|
else
|
||||||
@@ -517,15 +473,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Get current hash from COS
|
- name: Get current hash from COS
|
||||||
id: download
|
id: download
|
||||||
env:
|
|
||||||
COS_SECRET_ID: ${{ secrets.COS_SECRET_ID }}
|
|
||||||
COS_SECRET_KEY: ${{ secrets.COS_SECRET_KEY }}
|
|
||||||
COS_BUCKET: ${{ secrets.COS_BUCKET }}
|
|
||||||
COS_REGION: ${{ secrets.COS_REGION }}
|
|
||||||
run: |
|
run: |
|
||||||
echo "📥 从腾讯云 COS 获取 build_hash..."
|
echo "📥 从腾讯云 COS 获取 build_hash..."
|
||||||
pip install -U coscmd
|
|
||||||
coscmd config -a $COS_SECRET_ID -s $COS_SECRET_KEY -b $COS_BUCKET -r $COS_REGION
|
|
||||||
coscmd download /__build_hash /tmp/current_hash 2>/dev/null || echo ""
|
coscmd download /__build_hash /tmp/current_hash 2>/dev/null || echo ""
|
||||||
CURRENT_HASH=$(cat /tmp/current_hash 2>/dev/null || echo "")
|
CURRENT_HASH=$(cat /tmp/current_hash 2>/dev/null || echo "")
|
||||||
echo "current_hash=${CURRENT_HASH}" >> $GITHUB_OUTPUT
|
echo "current_hash=${CURRENT_HASH}" >> $GITHUB_OUTPUT
|
||||||
|
|||||||
Reference in new issue
Block a user