From e360e5e2157bdfe17a8a629d842eda8c7be70e5c Mon Sep 17 00:00:00 2001 From: Andrey Date: Sun, 25 Jan 2026 20:33:08 +0300 Subject: [PATCH] fix: replace exec 200 with flock -x 9 for zsh compatibility --- .github/workflows/deploy.yml | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index ac456ad..ed48f5a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -148,10 +148,10 @@ jobs: local history_size="${DEPLOY_HISTORY_SIZE:-10}" if command -v flock > /dev/null 2>&1; then - # Используем flock с exec для открытия файлового дескриптора (работает в zsh) + # Используем flock с файлом напрямую (работает в zsh и bash) + # Zsh поддерживает только дескрипторы 0-9, поэтому используем 9 ( - exec 200>"$lock_file" - if flock -x 200; then + if flock -x 9 "$lock_file"; then # Записываем новую запись echo "$entry" >> "$history_file" @@ -164,7 +164,7 @@ jobs: echo "❌ Failed to acquire lock on $history_file" exit 1 fi - ) + ) 9>"$lock_file" else # Fallback: простая запись без блокировки echo "$entry" >> "$history_file" @@ -512,10 +512,9 @@ jobs: local lock_file="${history_file}.lock" if command -v flock > /dev/null 2>&1; then - # Используем flock с exec для открытия файлового дескриптора (работает в zsh) + # Используем flock с файлом напрямую (работает в zsh и bash) ( - exec 200>"$lock_file" - if flock -x 200; then + if flock -x 9 "$lock_file"; then if [ -f "$history_file" ]; then # Заменяем последнюю строку со статусом deploying на финальный статус sed -i '$s/|deploying$/|'"$new_status"'/' "$history_file" @@ -531,7 +530,7 @@ jobs: echo "✅ Deploy history updated (fallback method)" fi fi - ) + ) 9>"$lock_file" else # Fallback: если flock недоступен echo "⚠️ flock not available, using simple update" @@ -719,8 +718,7 @@ jobs: if command -v flock > /dev/null 2>&1; then ( - exec 200>"$lock_file" - if flock -s 200; then + if flock -s 9 "$lock_file"; then if [ -f "$history_file" ]; then cat "$history_file" else @@ -735,7 +733,7 @@ jobs: echo "" fi fi - ) + ) 9>"$lock_file" else # Fallback: если flock недоступен if [ -f "$history_file" ]; then @@ -754,10 +752,10 @@ jobs: local history_size="${DEPLOY_HISTORY_SIZE:-10}" if command -v flock > /dev/null 2>&1; then - # Используем flock с exec для открытия файлового дескриптора (работает в zsh) + # Используем flock с файлом напрямую (работает в zsh и bash) + # Zsh поддерживает только дескрипторы 0-9, поэтому используем 9 ( - exec 200>"$lock_file" - if flock -x 200; then + if flock -x 9 "$lock_file"; then # Записываем новую запись echo "$entry" >> "$history_file" @@ -770,7 +768,7 @@ jobs: echo "❌ Failed to acquire lock on $history_file" exit 1 fi - ) + ) 9>"$lock_file" else # Fallback: простая запись без блокировки echo "$entry" >> "$history_file"