html текст
All interests
  • All interests
  • Design
  • Food
  • Gadgets
  • Humor
  • News
  • Photo
  • Travel
  • Video
Click to see the next recommended page
Like it
Don't like
Add to Favorites

Githubizer: автодеплой с Гитхаба на сервер

Интересно, скольким из вас приходилось хотя бы иногда, но повторять рутиные действия для настройки автодеплоя с гитхаба на сервер: создать ssh-ключ, добавить его для репозтория проекта на Гитхабе, создать скрипт, который будет слушать какой-то адрес, добавить вебхук в интерфейсе гитхаба, который будет дергать этот скрипт… Уфф… А что, если я скажу вам, что автоматизировал все эти действия по-максимуму? Да, теперь вам нужно выполнить всего пару команд и автодеплой запущен и работает! И все это благодаря Гитхабайзеру.

Итак, адрес репозитория github.com/chvanikoff/githubizer
Как этим пользоваться:

Теперь детальнее:
1. Клонируем репозиторий Гитхабайзера
$> git clone github.com/chvanikoff/githubizer
2. переходим в директорию репозитория и правим конфиг под себя
$> cd githubizer && vim priv/application.config
3. Компилируем и запускаем Гитхабайзер:
$> make all run

Подробнее о конфиге (в нем есть комментарии на английском, здесь напишу на русском):
{http_server, [
        %% количество неблокирующих акцепторов для обработки запросов от Гитхаба. Сомневаюсь, что придется когда-нибудь менять, но возможность есть
	{nba, 10},
        %% порт, который будет слушать сервер, обрабатывающий запросы от Гитхаба
	{port, 8989},
        %% URL, который будет запрашивать Гитхаб при пуше в него
	{url, ["/secret/hook/url"]}
]}.

{github, [
        %% Логин пользователя на Гитхабе
	{username, "login"},
        %% Email пользователя на Гитхабе
	{email, "email"},
        %% Пароль пользователя, опять же на Гитхабе
	{password, "m3g1p1$$w0rd"},
        %% Имя репозитория (например - githubizer)
	{repository, "repo_name, not url!"}
]}.

{server, [
        %% Директория на сервере, в которой будет лежать ваш проект (должна быть пустой). Скоро добавлю замену {REPO} на имя репозитория, но пока этого нет
	{docroot, "/home/chvanikoff/erlang/{REPO}"},
        %% Адрес сервера (в виде домена, или IP-адреса)
	{domain, "http://site.com"}
]}.


Что произойдет после совершения вышеописанных действий:
  1. Будут созданы, если не существовали ранее, ssh-ключи ~/.ssh/githubizer и ~/.ssh/githubizer.pub
  2. Они будут добавлены для репозитория на Гитхабе
  3. Репозиторий будет склонирован локально (если директория, указанная в конфиге server.docroot, пустая — иначе считается, что нужный репозиторий уже склонирован туда)
  4. Будет запущен маленький веб-сервер (Cowboy) c 2 http-хендлерами, который будет слушать указанный в конфиге порт и обрабатывать 2 типа запросов: запросы к адресу из конфига (напр. «secret/hook/url») и все остальные. Отвечать будет 404 на все запросы, однако на запросы первого типа будет производиться git pull из директории репозитория
  5. ...
  6. «Вот и все, ребята» (с)


P.S.: код может быть местами грязным — не пинайте, я все еще учусь.
Читать дальше
Twitter
Одноклассники
Мой Мир

материал с habrahabr.ru

0

      Add

      You can create thematic collections and keep, for instance, all recipes in one place so you will never lose them.

      No images found
      Previous Next 0 / 0
      500
      • Advertisement
      • Animals
      • Architecture
      • Art
      • Auto
      • Aviation
      • Books
      • Cartoons
      • Celebrities
      • Children
      • Culture
      • Design
      • Economics
      • Education
      • Entertainment
      • Fashion
      • Fitness
      • Food
      • Gadgets
      • Games
      • Health
      • History
      • Hobby
      • Humor
      • Interior
      • Moto
      • Movies
      • Music
      • Nature
      • News
      • Photo
      • Pictures
      • Politics
      • Psychology
      • Science
      • Society
      • Sport
      • Technology
      • Travel
      • Video
      • Weapons
      • Web
      • Work
        Submit
        Valid formats are JPG, PNG, GIF.
        Not more than 5 Мb, please.
        30
        surfingbird.ru/site/
        RSS format guidelines
        500
        • Advertisement
        • Animals
        • Architecture
        • Art
        • Auto
        • Aviation
        • Books
        • Cartoons
        • Celebrities
        • Children
        • Culture
        • Design
        • Economics
        • Education
        • Entertainment
        • Fashion
        • Fitness
        • Food
        • Gadgets
        • Games
        • Health
        • History
        • Hobby
        • Humor
        • Interior
        • Moto
        • Movies
        • Music
        • Nature
        • News
        • Photo
        • Pictures
        • Politics
        • Psychology
        • Science
        • Society
        • Sport
        • Technology
        • Travel
        • Video
        • Weapons
        • Web
        • Work

          Submit

          Thank you! Wait for moderation.

          Тебе это не нравится?

          You can block the domain, tag, user or channel, and we'll stop recommend it to you. You can always unblock them in your settings.

          • habrahabr.ru
          • домен habrahabr.ru

          Get a link

          Спасибо, твоя жалоба принята.

          Log on to Surfingbird

          Recover
          Sign up

          or

          Welcome to Surfingbird.com!

          You'll find thousands of interesting pages, photos, and videos inside.
          Join!

          • Personal
            recommendations

          • Stash
            interesting and useful stuff

          • Anywhere,
            anytime

          Do we already know you? Login or restore the password.

          Close

          Add to collection

             

            Facebook

            Ваш профиль на рассмотрении, обновите страницу через несколько секунд

            Facebook

            К сожалению, вы не попадаете под условия акции