diff --git a/.gitea/workflows/deploy-prod.yaml b/.gitea/workflows/deploy-prod.yaml index fb1b5ed..8fedb18 100644 --- a/.gitea/workflows/deploy-prod.yaml +++ b/.gitea/workflows/deploy-prod.yaml @@ -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