[FIX] 修復 pipefail 導致 tar 警告中斷部署腳本
Gitea Actions 的 bash shell 預設啟用 set -eo pipefail。 tar 的 exit 1 (file changed as we read it) 是警告非錯誤, 但 pipefail 會讓它變成管線失敗,set -e 立即中斷腳本。 修復:在 tar 管線前暫時 set +o pipefail, 手動檢查 PIPESTATUS 後再恢復 set -o pipefail。
This commit is contained in:
parent
d3cb9b4fee
commit
a15eeabde7
@ -63,10 +63,15 @@ jobs:
|
||||
echo ">>> Syncing code to star-cloud-laravel..."
|
||||
# 三個容器共享同一份 volume (.:/var/www/html),
|
||||
# 只需同步至主容器一次,queue/mqtt-worker 會自動看到變更。
|
||||
#
|
||||
# 注意:tar 在檔案讀取過程中若被修改會回傳 exit 1 (警告,非錯誤)。
|
||||
# Gitea Actions 預設啟用 pipefail,會讓此警告變成管線失敗,故需暫時關閉。
|
||||
set +o pipefail
|
||||
tar --exclude='.git' --exclude='node_modules' --exclude='vendor' --exclude='storage' --exclude='bootstrap/cache' -cf - . \
|
||||
| docker exec -i star-cloud-laravel tar -xf - -C /var/www/html/
|
||||
|
||||
local_tar=${PIPESTATUS[0]} local_docker=${PIPESTATUS[1]}
|
||||
set -o pipefail
|
||||
|
||||
echo " Result: tar=$local_tar, docker=$local_docker"
|
||||
if [ "$local_tar" -gt 1 ] || [ "$local_docker" -ne 0 ]; then
|
||||
echo "!!! Error: Sync failed (tar=$local_tar, docker=$local_docker)"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user