42 lines
1.6 KiB
YAML
42 lines
1.6 KiB
YAML
steps:
|
|
- name: deploy
|
|
image: alpine:latest
|
|
environment:
|
|
SSH_PRIVATE_KEY: ${SSH_PRIVATE_KEY}
|
|
commands:
|
|
# Установка SSH-клиента
|
|
- apk add --no-cache openssh-client rsync
|
|
# Проверка секрета
|
|
- '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
|