steps: - name: deploy image: alpine:latest environment: SSH_PRIVATE_KEY: from_secret: SSH_PRIVATE_KEY commands: # Установка SSH-клиента - apk add --no-cache openssh-client rsync # Проверка секрета - 'echo "Raw env var (first 50 chars): ${SSH_PRIVATE_KEY:0:50}"' - 'echo "Length via parameter expansion: ${#SSH_PRIVATE_KEY}"' - 'printf "%s" "$SSH_PRIVATE_KEY" | wc -c' - 'echo "Secret length: ${#SSH_PRIVATE_KEY}"' - 'echo "First 20 chars: ${SSH_PRIVATE_KEY:0:20}"' # Настройка SSH-ключа из секрета - mkdir -p ~/.ssh - echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - 'echo "Key header:"' - head -n 1 ~/.ssh/id_rsa - 'echo "Key footer:"' - tail -n 1 ~/.ssh/id_rsa - 'echo "File size:"' - wc -c ~/.ssh/id_rsa - ssh-keygen -y -f ~/.ssh/id_rsa > /dev/null && echo "✅ Key is valid" || echo "❌ Key is invalid" - ssh-keyscan 192.168.0.109 >> ~/.ssh/known_hosts # Копирование файлов (вариант 1: rsync) - rsync -av ./ deployer@192.168.0.109:/opt/testbot-git/ # Или (вариант 2: git clone на целевом сервере) # - ssh -i ~/.ssh/id_rsa deployer@целевой-сервер "cd /var/www/myapp && git pull" # Выполнение команд на целевом сервере # - ssh -i ~/.ssh/id_rsa deployer@целевой-сервер " # cd /var/www/myapp && # systemctl --user daemon-reload || sudo systemctl daemon-reload && # sudo systemctl restart myservice && # echo '✅ Deploy completed' # " when: event: push branch: main