fix(ci): add apt lock waiting and check for rsync/ssh in deploy-prod

This commit is contained in:
sky121113 2026-05-15 14:06:12 +08:00
parent 2290622765
commit ff6cb13308

View File

@ -15,7 +15,18 @@ jobs:
- name: Step 1 - Sync Code to Server
run: |
export DEBIAN_FRONTEND=noninteractive
apt-get update && apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" rsync openssh-client
echo "Waiting for apt lock..."
while fuser /var/lib/dpkg/lock-frontend >/dev/null 2>&1 ; do
echo "Apt is busy, waiting 5 seconds..."
sleep 5
done
# 檢查是否已安裝,減少 apt-get 使用頻率
if ! command -v rsync >/dev/null 2>&1 || ! command -v ssh >/dev/null 2>&1; then
apt-get update && apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" rsync openssh-client
else
echo "rsync and openssh-client are already installed."
fi
mkdir -p ~/.ssh
echo "${{ secrets.PROD_SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa_prod
chmod 600 ~/.ssh/id_rsa_prod