Подтвердить что ты не робот

Автоматическое развертывание с GitHub на сервер при нажатии

У нас есть VPS на linode и код, размещенный на gitHub. Как мы настраиваем это, когда мы нажимаем gitHub, он также автоматически перемещается на наш linode-сервер. Мы используем PHP на линейном сервере.

Спасибо.

4b9b3361

Ответ 1

Вероятно, вы захотите использовать GitHub post-receive hooks.

Таким образом, GitHub будет отправлять POST в поставляемый URL-адрес, когда кто-то подталкивает к репо. Просто напишите короткий PHP script для запуска на вашем линейном VPS и вытащите его из GitHub, когда он получит указанный POST.

Ответ 2

Я написал небольшой небольшой пост-приемный сервис на Github

Сопоставление локальных путей репозитория с URL-адресами репозитория в файле конфигурации Сервер будет получать запросы от github и запускать git по пути локального репозитория Он также запускает оболочку script для развертывания после этого, если вы предоставляете один

Ответ 3

В итоге я создал свой собственный рудиментарный инструмент развертывания (как и Karl, но на PHP), который автоматически вытащил новые обновления из репо - https://github.com/jesalg/SlimJim В основном он прослушивает github post-receive-hook и использует прокси-сервер для запуска обновления script.

Ответ 4

Возможно, я вне контекста, но я предпочитаю вручную выбирать, куда нажать из моей командной строки, например: git push linode

Для этого я создаю контейнер хранилища на моем linode-сервере и создаю крюк после приема, который проверяет мою папку на последнюю нажатую фиксацию

Создайте контейнер git repo mkdir /var/repo && cd /var/repo git --bare init

Создайте крюк после приема в /var/repo/hooks/ touch post-receive nano post-receive chmod +x post-receive

пост-получать контент #!/bin/sh git --work-tree=/var/www/ --git-dir=/var/repo checkout -f

В вашем локальном репозитории git remote add linode [email protected]<linode ip|domain>:/var/repo git push linode

ваш код теперь развернут

Ответ 5

Вы можете обратиться к этому руководству:
Автоматическое обновление вашего сайта с помощью сервисных крючков GitHub:

Вкратце, он объясняет следующие шаги:

Создайте php файл в папке .git на вашем сервере со следующим содержимым.

<?php `git pull`;?>

Установите ваш сервер для существования ключей SSH. Что-то вроде:

key. cat ~/.ssh/id_rsa.pub

Установите сервисный крючок на GitHub. Введите URL WebHook:

http://your.domain.com/path/to/yourfile.php

Когда все установлено. Файл будет развертывать всю работу на вашем сервере каждый раз, когда вы нажимаете на GitHub.