Update deploy.yml
This commit is contained in:
1 parent
bb0a076431
commit
fb8efb3612
1 file changed
+63
-48
@@ -195,6 +195,25 @@ jobs:
|
|||||||
echo "file_count=${FILE_COUNT}" >> $GITHUB_OUTPUT
|
echo "file_count=${FILE_COUNT}" >> $GITHUB_OUTPUT
|
||||||
echo "total_size=${TOTAL_SIZE}" >> $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
|
- name: Upload to UpYun and check hash
|
||||||
env:
|
env:
|
||||||
UPYUN_SERVICE: ${{ secrets.UPYUN_BUCKET }}
|
UPYUN_SERVICE: ${{ secrets.UPYUN_BUCKET }}
|
||||||
@@ -319,36 +338,34 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
|
|
||||||
- name: Download from UpYun
|
- name: Setup Python
|
||||||
id: download
|
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: Download from Tencent COS
|
||||||
|
id: download
|
||||||
run: |
|
run: |
|
||||||
echo "📥 从 UpYun 下载构建产物..."
|
echo "📥 从腾讯云 COS 下载构建产物..."
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
DOWNLOAD_START=$(date +%s)
|
DOWNLOAD_START=$(date +%s)
|
||||||
mkdir -p public
|
mkdir -p public
|
||||||
"$UPX_BIN" get / public/
|
coscmd download -r / public/
|
||||||
"$UPX_BIN" 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_END=$(date +%s)
|
||||||
DOWNLOAD_DURATION=$((DOWNLOAD_END - DOWNLOAD_START))
|
DOWNLOAD_DURATION=$((DOWNLOAD_END - DOWNLOAD_START))
|
||||||
echo "download_duration=${DOWNLOAD_DURATION}" >> $GITHUB_OUTPUT
|
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
|
||||||
|
|
||||||
@@ -466,36 +483,34 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
|
|
||||||
- name: Download from UpYun
|
- name: Setup Python
|
||||||
id: download
|
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: Download from Tencent COS
|
||||||
|
id: download
|
||||||
run: |
|
run: |
|
||||||
echo "📥 从 UpYun 同步构建产物..."
|
echo "📥 从腾讯云 COS 下载构建产物..."
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
DOWNLOAD_START=$(date +%s)
|
DOWNLOAD_START=$(date +%s)
|
||||||
mkdir -p public
|
mkdir -p public
|
||||||
"$UPX_BIN" get / public/
|
coscmd download -r / public/
|
||||||
"$UPX_BIN" 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_END=$(date +%s)
|
||||||
DOWNLOAD_DURATION=$((DOWNLOAD_END - DOWNLOAD_START))
|
DOWNLOAD_DURATION=$((DOWNLOAD_END - DOWNLOAD_START))
|
||||||
echo "download_duration=${DOWNLOAD_DURATION}" >> $GITHUB_OUTPUT
|
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
|
||||||
|
|
||||||
@@ -504,10 +519,10 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
CURRENT_HASH="${{ steps.download.outputs.current_hash }}"
|
CURRENT_HASH="${{ steps.download.outputs.current_hash }}"
|
||||||
LAST_HASH="${{ steps.last-hash.outputs.last_hash }}"
|
LAST_HASH="${{ steps.last-hash.outputs.last_hash }}"
|
||||||
|
|
||||||
echo "当前 build_hash: $CURRENT_HASH"
|
echo "当前 build_hash: $CURRENT_HASH"
|
||||||
echo "上次部署 hash: $LAST_HASH"
|
echo "上次部署 hash: $LAST_HASH"
|
||||||
|
|
||||||
if [ -z "$LAST_HASH" ] || [ "$CURRENT_HASH" != "$LAST_HASH" ]; then
|
if [ -z "$LAST_HASH" ] || [ "$CURRENT_HASH" != "$LAST_HASH" ]; then
|
||||||
echo "🔄 构建产物有变化,UpYun 已同步最新内容"
|
echo "🔄 构建产物有变化,UpYun 已同步最新内容"
|
||||||
echo "deployed=true" >> $GITHUB_OUTPUT
|
echo "deployed=true" >> $GITHUB_OUTPUT
|
||||||
|
|||||||
Reference in new issue
Block a user