steps: - name: deploy image: alpine:latest environment: SSH_PRIVATE_KEY: from_secret: SSH_PRIVATE_KEY commands: # Установка SSH-клиента - apk add --no-cache openssh-client rsync # Настройка SSH-ключа из секрета - mkdir -p ~/.ssh - echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - ssh-keyscan 192.168.0.109 >> ~/.ssh/known_hosts # Копирование файлов - rsync -av ./ \ --exclude='.git' \ --exclude='.woodpecker.yml' \ 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@192.168.0.109 \ "cd /opt/testbot-git/services && chmod +x post-deploy.sh && ./post-deploy.sh" # Выполнение команд на целевом сервере # - 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