Автоматическое развертывание с GitHub на сервер при загрузке - PullRequest
27 голосов
/ 05 сентября 2011

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

Спасибо.

Ответы [ 6 ]

23 голосов
/ 05 сентября 2011

Возможно, вы захотите использовать GitHub для получения сообщений .

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

15 голосов
/ 19 июня 2012

Я написал небольшой Github-Auto-Deploy сервер на Python, который делает именно то, что вы хотите.

  • Введите свой домен для новой ловушки после получения на Github
  • Сопоставьте пути локального хранилища с URL хранилища в файле конфигурации
  • Сервер будет получать запросы от github и запускать git pull по пути к локальному репозиторию
  • Он также запускает сценарий оболочки для развертывания, если вы предоставите один
3 голосов
/ 13 сентября 2012

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

2 голосов
/ 06 августа 2015

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

Чтобы сделать это, я создаю контейнер репозитория на моем сервере линоде и создаю ловушку после получения, которая извлекает мою папку для последнего выданного коммита

Создание контейнера git-репо 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 root@<linode ip|domain>:/var/repo git push linode

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

1 голос
/ 18 октября 2018

Использование любого вида webhook включает в себя развертывание слушателя для этой ловушки, а затем запуск с вашего хоста сервера слушателя действия.

Теперь вы можете использовать ярлык (октябрь 2018) с помощью Действия GitHub (октябрь 2018 г.).

Действия GitHub позволяют подключать и совместно использовать контейнеры для запуска рабочего процесса разработки программного обеспечения.Легко собирайте, упаковывайте, выпускайте, обновляйте и развертывайте проект на любом языке - на GitHub или в любой внешней системе - без необходимости самим запускать код.

См. Действия : push - это только одна из возможностей действий!

Рабочие процессы могут запускаться событиями платформы GitHub (т. Е. Push, release, release) и могут запускатьпоследовательность последовательных или параллельных действий в ответ.Комбинируйте и настраивайте действия для служб, которые вы знаете и любите, созданные и поддерживаемые сообществом.

1 голос
/ 29 мая 2016

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

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

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

<?php `git pull`;?>

Настройте свой сервер для существования ключей S SH . Что-то вроде:

key. cat ~/.ssh/id_rsa.pub

Установить сервисный хук на GitHub. Введите URL-адрес WebHook :

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...