Update deploy.yml
This commit is contained in:
1 parent
145fb5f454
commit
5793280712
1 file changed
+47
-6
@@ -115,7 +115,8 @@ jobs:
|
|||||||
duration: ${{ steps.end-build.outputs.duration }}
|
duration: ${{ steps.end-build.outputs.duration }}
|
||||||
file_count: ${{ steps.stats.outputs.file_count }}
|
file_count: ${{ steps.stats.outputs.file_count }}
|
||||||
total_size: ${{ steps.stats.outputs.total_size }}
|
total_size: ${{ steps.stats.outputs.total_size }}
|
||||||
skipped: ${{ steps.upload.outputs.skipped }}
|
skipped: ${{ steps.upload.outputs.skipped || steps.set-skipped.outputs.skipped }}
|
||||||
|
need_upload: ${{ steps.check-upload.outputs.need_upload }}
|
||||||
needs: pre-check
|
needs: pre-check
|
||||||
if: needs.pre-check.outputs.can_deploy == 'true'
|
if: needs.pre-check.outputs.can_deploy == 'true'
|
||||||
|
|
||||||
@@ -211,7 +212,39 @@ 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 -m 30
|
run: coscmd config -a $COS_SECRET_ID -s $COS_SECRET_KEY -b $COS_BUCKET -r $COS_REGION -m 30
|
||||||
|
|
||||||
|
- name: Get last build hash from COS
|
||||||
|
id: last-hash
|
||||||
|
continue-on-error: true
|
||||||
|
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: Check if upload is needed
|
||||||
|
id: check-upload
|
||||||
|
run: |
|
||||||
|
LAST_HASH="${{ steps.last-hash.outputs.last_hash }}"
|
||||||
|
CURRENT_HASH="${{ steps.hash.outputs.build_hash }}"
|
||||||
|
|
||||||
|
echo "上次部署 hash: $LAST_HASH"
|
||||||
|
echo "当前构建 hash: $CURRENT_HASH"
|
||||||
|
|
||||||
|
if [ -z "$LAST_HASH" ] || [ "$CURRENT_HASH" != "$LAST_HASH" ]; then
|
||||||
|
echo "🔄 构建产物有变化,需要上传"
|
||||||
|
echo "need_upload=true" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "✅ 构建产物无变化,跳过上传"
|
||||||
|
echo "need_upload=false" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Upload to Tencent COS
|
- name: Upload to Tencent COS
|
||||||
|
if: steps.check-upload.outputs.need_upload == 'true'
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: |
|
run: |
|
||||||
echo "📤 打包并上传到腾讯云 COS..."
|
echo "📤 打包并上传到腾讯云 COS..."
|
||||||
@@ -219,7 +252,14 @@ jobs:
|
|||||||
coscmd upload public.tar.gz /public.tar.gz
|
coscmd upload public.tar.gz /public.tar.gz
|
||||||
coscmd upload public/.build_hash /__build_hash
|
coscmd upload public/.build_hash /__build_hash
|
||||||
|
|
||||||
- name: Upload to UpYun and check hash
|
- name: Upload hash to COS (even if skipped)
|
||||||
|
if: steps.check-upload.outputs.need_upload == 'false'
|
||||||
|
run: |
|
||||||
|
echo "📤 更新 hash 文件到腾讯云 COS..."
|
||||||
|
coscmd upload public/.build_hash /__build_hash
|
||||||
|
|
||||||
|
- name: Upload to UpYun
|
||||||
|
if: steps.check-upload.outputs.need_upload == 'true'
|
||||||
env:
|
env:
|
||||||
UPYUN_SERVICE: ${{ secrets.UPYUN_BUCKET }}
|
UPYUN_SERVICE: ${{ secrets.UPYUN_BUCKET }}
|
||||||
UPYUN_OPERATOR: ${{ secrets.UPYUN_OPERATOR }}
|
UPYUN_OPERATOR: ${{ secrets.UPYUN_OPERATOR }}
|
||||||
@@ -251,16 +291,17 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
CURRENT_HASH=$(cat public/.build_hash)
|
|
||||||
|
|
||||||
echo "当前构建 hash: $CURRENT_HASH"
|
|
||||||
|
|
||||||
echo "🔄 开始上传到 UpYun..."
|
echo "🔄 开始上传到 UpYun..."
|
||||||
"$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 "✅ UpYun 上传完成"
|
echo "✅ UpYun 上传完成"
|
||||||
echo "skipped=false" >> $GITHUB_OUTPUT
|
echo "skipped=false" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Set skipped status
|
||||||
|
if: steps.check-upload.outputs.need_upload == 'false'
|
||||||
|
id: set-skipped
|
||||||
|
run: echo "skipped=true" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Push Image Optimizations
|
- name: Push Image Optimizations
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
Reference in new issue
Block a user