From 8fe05f9d7474b9193f35f27cfd925d0ba60ccc15 Mon Sep 17 00:00:00 2001 From: Vaica <94612053+zqlit@users.noreply.github.com> Date: Mon, 29 Jun 2026 18:47:25 +0800 Subject: [PATCH] Update deploy.yml --- .github/workflows/deploy.yml | 111 ++++++++++++++++++++--------------- 1 file changed, 63 insertions(+), 48 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index fbae0ed2..3cbc2995 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -195,6 +195,25 @@ jobs: echo "file_count=${FILE_COUNT}" >> $GITHUB_OUTPUT echo "total_size=${TOTAL_SIZE}" >> $GITHUB_OUTPUT + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + + - name: Install coscmd + run: pip install -U coscmd + + - name: Configure coscmd + 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: coscmd config -a $COS_SECRET_ID -s $COS_SECRET_KEY -b $COS_BUCKET -r $COS_REGION + + - name: Upload to Tencent COS + run: coscmd upload -r public/ / --ignore # 忽略已存在且未变化的文件 + - name: Upload to UpYun and check hash env: UPYUN_SERVICE: ${{ secrets.UPYUN_BUCKET }} @@ -319,36 +338,34 @@ jobs: with: fetch-depth: 1 - - name: Download from UpYun - id: download + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + + - name: Install coscmd + run: pip install -U coscmd + + - name: Configure coscmd env: - UPYUN_SERVICE: ${{ secrets.UPYUN_BUCKET }} - UPYUN_OPERATOR: ${{ secrets.UPYUN_OPERATOR }} - UPYUN_PASSWORD: ${{ secrets.UPYUN_PASSWORD }} + 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: coscmd config -a $COS_SECRET_ID -s $COS_SECRET_KEY -b $COS_BUCKET -r $COS_REGION + + - name: Download from Tencent COS + id: download run: | - echo "📥 从 UpYun 下载构建产物..." - - 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 - - "$UPX_BIN" login "$UPYUN_SERVICE" "$UPYUN_OPERATOR" "$UPYUN_PASSWORD" - + echo "📥 从腾讯云 COS 下载构建产物..." DOWNLOAD_START=$(date +%s) mkdir -p public - "$UPX_BIN" get / public/ - "$UPX_BIN" get /__build_hash > /tmp/current_hash 2>/dev/null || echo "" + coscmd download -r / public/ + coscmd get /__build_hash /tmp/current_hash 2>/dev/null || echo "" DOWNLOAD_END=$(date +%s) DOWNLOAD_DURATION=$((DOWNLOAD_END - DOWNLOAD_START)) echo "download_duration=${DOWNLOAD_DURATION}" >> $GITHUB_OUTPUT - + CURRENT_HASH=$(cat /tmp/current_hash 2>/dev/null || echo "") echo "current_hash=${CURRENT_HASH}" >> $GITHUB_OUTPUT @@ -466,36 +483,34 @@ jobs: with: fetch-depth: 1 - - name: Download from UpYun - id: download + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + + - name: Install coscmd + run: pip install -U coscmd + + - name: Configure coscmd env: - UPYUN_SERVICE: ${{ secrets.UPYUN_BUCKET }} - UPYUN_OPERATOR: ${{ secrets.UPYUN_OPERATOR }} - UPYUN_PASSWORD: ${{ secrets.UPYUN_PASSWORD }} + 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: coscmd config -a $COS_SECRET_ID -s $COS_SECRET_KEY -b $COS_BUCKET -r $COS_REGION + + - name: Download from Tencent COS + id: download run: | - echo "📥 从 UpYun 同步构建产物..." - - 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 - - "$UPX_BIN" login "$UPYUN_SERVICE" "$UPYUN_OPERATOR" "$UPYUN_PASSWORD" - + echo "📥 从腾讯云 COS 下载构建产物..." DOWNLOAD_START=$(date +%s) mkdir -p public - "$UPX_BIN" get / public/ - "$UPX_BIN" get /__build_hash > /tmp/current_hash 2>/dev/null || echo "" + coscmd download -r / public/ + coscmd get /__build_hash /tmp/current_hash 2>/dev/null || echo "" DOWNLOAD_END=$(date +%s) DOWNLOAD_DURATION=$((DOWNLOAD_END - DOWNLOAD_START)) echo "download_duration=${DOWNLOAD_DURATION}" >> $GITHUB_OUTPUT - + CURRENT_HASH=$(cat /tmp/current_hash 2>/dev/null || echo "") echo "current_hash=${CURRENT_HASH}" >> $GITHUB_OUTPUT @@ -504,10 +519,10 @@ jobs: run: | CURRENT_HASH="${{ steps.download.outputs.current_hash }}" LAST_HASH="${{ steps.last-hash.outputs.last_hash }}" - + echo "当前 build_hash: $CURRENT_HASH" echo "上次部署 hash: $LAST_HASH" - + if [ -z "$LAST_HASH" ] || [ "$CURRENT_HASH" != "$LAST_HASH" ]; then echo "🔄 构建产物有变化,UpYun 已同步最新内容" echo "deployed=true" >> $GITHUB_OUTPUT