Update deploy.yml
This commit is contained in:
1 parent
9b652f3e7e
commit
57de208914
1 file changed
+18
-38
@@ -214,7 +214,9 @@ jobs:
|
|||||||
- name: Upload to Tencent COS
|
- name: Upload to Tencent COS
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: |
|
run: |
|
||||||
coscmd upload -rs public/ /
|
echo "📤 打包并上传到腾讯云 COS..."
|
||||||
|
tar -czf public.tar.gz public/
|
||||||
|
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 to UpYun and check hash
|
||||||
@@ -298,8 +300,8 @@ jobs:
|
|||||||
outputs:
|
outputs:
|
||||||
deployed: ${{ steps.check.outputs.deployed }}
|
deployed: ${{ steps.check.outputs.deployed }}
|
||||||
duration: ${{ steps.end-edgeone.outputs.duration }}
|
duration: ${{ steps.end-edgeone.outputs.duration }}
|
||||||
download_duration: ${{ steps.end-edgeone.outputs.download_duration }}
|
download_duration: ${{ steps.download-files.outputs.download_duration }}
|
||||||
upload_duration: ${{ steps.end-edgeone.outputs.upload_duration }}
|
upload_duration: ${{ steps.end-edgeone-upload.outputs.duration }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Start timing
|
- name: Start timing
|
||||||
@@ -361,11 +363,7 @@ jobs:
|
|||||||
id: download
|
id: download
|
||||||
run: |
|
run: |
|
||||||
echo "📥 从腾讯云 COS 获取 build_hash..."
|
echo "📥 从腾讯云 COS 获取 build_hash..."
|
||||||
DOWNLOAD_START=$(date +%s)
|
|
||||||
coscmd get /__build_hash /tmp/current_hash 2>/dev/null || echo ""
|
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 "")
|
CURRENT_HASH=$(cat /tmp/current_hash 2>/dev/null || echo "")
|
||||||
echo "current_hash=${CURRENT_HASH}" >> $GITHUB_OUTPUT
|
echo "current_hash=${CURRENT_HASH}" >> $GITHUB_OUTPUT
|
||||||
@@ -392,8 +390,12 @@ jobs:
|
|||||||
id: download-files
|
id: download-files
|
||||||
run: |
|
run: |
|
||||||
echo "📥 从腾讯云 COS 下载构建产物..."
|
echo "📥 从腾讯云 COS 下载构建产物..."
|
||||||
mkdir -p public
|
DOWNLOAD_START=$(date +%s)
|
||||||
coscmd download -rs / public/
|
coscmd get /public.tar.gz /tmp/public.tar.gz
|
||||||
|
tar -xzf /tmp/public.tar.gz
|
||||||
|
DOWNLOAD_END=$(date +%s)
|
||||||
|
DOWNLOAD_DURATION=$((DOWNLOAD_END - DOWNLOAD_START))
|
||||||
|
echo "download_duration=${DOWNLOAD_DURATION}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Start upload timing
|
- name: Start upload timing
|
||||||
if: steps.check.outputs.deployed == 'true'
|
if: steps.check.outputs.deployed == 'true'
|
||||||
@@ -442,15 +444,13 @@ jobs:
|
|||||||
# ============================================================
|
# ============================================================
|
||||||
deploy-upyun:
|
deploy-upyun:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 20
|
timeout-minutes: 5
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
needs: build
|
needs: build
|
||||||
outputs:
|
outputs:
|
||||||
deployed: ${{ steps.check.outputs.deployed }}
|
deployed: ${{ steps.check.outputs.deployed }}
|
||||||
duration: ${{ steps.end-upyun.outputs.duration }}
|
duration: ${{ steps.end-upyun.outputs.duration }}
|
||||||
download_duration: ${{ steps.end-upyun.outputs.download_duration }}
|
|
||||||
upload_duration: ${{ steps.end-upyun.outputs.upload_duration }}
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Start timing
|
- name: Start timing
|
||||||
@@ -480,6 +480,7 @@ jobs:
|
|||||||
"$UPX_BIN" login "$UPYUN_SERVICE" "$UPYUN_OPERATOR" "$UPYUN_PASSWORD"
|
"$UPX_BIN" login "$UPYUN_SERVICE" "$UPYUN_OPERATOR" "$UPYUN_PASSWORD"
|
||||||
|
|
||||||
LAST_HASH=$("$UPX_BIN" get /__build_hash 2>/dev/null || echo "")
|
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
|
||||||
@@ -487,37 +488,18 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
echo "last_hash=${LAST_HASH}" >> $GITHUB_OUTPUT
|
echo "last_hash=${LAST_HASH}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Checkout code (for scripts)
|
- name: Get current hash from COS
|
||||||
uses: actions/checkout@v4
|
id: download
|
||||||
with:
|
|
||||||
fetch-depth: 1
|
|
||||||
|
|
||||||
- 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:
|
env:
|
||||||
COS_SECRET_ID: ${{ secrets.COS_SECRET_ID }}
|
COS_SECRET_ID: ${{ secrets.COS_SECRET_ID }}
|
||||||
COS_SECRET_KEY: ${{ secrets.COS_SECRET_KEY }}
|
COS_SECRET_KEY: ${{ secrets.COS_SECRET_KEY }}
|
||||||
COS_BUCKET: ${{ secrets.COS_BUCKET }}
|
COS_BUCKET: ${{ secrets.COS_BUCKET }}
|
||||||
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
|
|
||||||
|
|
||||||
- name: Get hash from Tencent COS
|
|
||||||
id: download
|
|
||||||
run: |
|
run: |
|
||||||
echo "📥 从腾讯云 COS 获取 build_hash..."
|
echo "📥 从腾讯云 COS 获取 build_hash..."
|
||||||
DOWNLOAD_START=$(date +%s)
|
pip install -U coscmd
|
||||||
|
coscmd config -a $COS_SECRET_ID -s $COS_SECRET_KEY -b $COS_BUCKET -r $COS_REGION
|
||||||
coscmd get /__build_hash /tmp/current_hash 2>/dev/null || echo ""
|
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 "")
|
CURRENT_HASH=$(cat /tmp/current_hash 2>/dev/null || echo "")
|
||||||
echo "current_hash=${CURRENT_HASH}" >> $GITHUB_OUTPUT
|
echo "current_hash=${CURRENT_HASH}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
@@ -809,12 +791,10 @@ jobs:
|
|||||||
🏗️ Build: ${{ needs.build.outputs.duration }}s
|
🏗️ Build: ${{ needs.build.outputs.duration }}s
|
||||||
|
|
||||||
🌐 EdgeOne Pages: ${{ needs.deploy-edgeone.outputs.duration }}s
|
🌐 EdgeOne Pages: ${{ needs.deploy-edgeone.outputs.duration }}s
|
||||||
📥 下载 Artifact: ${{ needs.deploy-edgeone.outputs.download_duration }}s
|
📥 下载 COS: ${{ needs.deploy-edgeone.outputs.download_duration }}s
|
||||||
📤 上传部署: ${{ needs.deploy-edgeone.outputs.upload_duration }}s
|
📤 上传部署: ${{ needs.deploy-edgeone.outputs.upload_duration }}s
|
||||||
|
|
||||||
☁️ UpYun: ${{ needs.deploy-upyun.outputs.duration }}s
|
☁️ UpYun: ${{ needs.deploy-upyun.outputs.duration }}s
|
||||||
📥 下载 Artifact: ${{ needs.deploy-upyun.outputs.download_duration }}s
|
|
||||||
📤 上传部署: ${{ needs.deploy-upyun.outputs.upload_duration }}s
|
|
||||||
|
|
||||||
📌 部署状态
|
📌 部署状态
|
||||||
──────────────────────────────────
|
──────────────────────────────────
|
||||||
|
|||||||
Reference in new issue
Block a user