Как использовать Hubot для развертывания репозитория Github в Heroku? - PullRequest
3 голосов
/ 15 декабря 2011

Вернемся, когда они объявили Hubot. Одна из вещей, которые GitHub сказал, что они делают со своими, это развертывание.Я пытаюсь сделать то же самое для моего проекта, код которого размещен на GitHub, а само приложение на Heroku.Мой Hubot также живет на Heroku, но сначала я делаю все свои тесты локально.

Моя идея состояла в том, чтобы либо клонировать целевое репо в tmp, добавить удаленный репозиторий в этом репо, чтобы указать на приложение Heroku, а затем запуститьgit push heroku или (как этот вопрос ) создайте два пульта и push таким образом.В то время как я заставил git clone работать локально, когда я пытаюсь запустить

Exec "cd #{dir}; git remote add #{proj_loc} git@heroku.com:#{heroku_app}.git"

, он заканчивает тем, что добавил удаленное устройство в репозиторий git, который существует в каталоге, из которого я начал bin/hubot, а не вgit repo, который сейчас существует в tmp.Я знаю, что dir установлен правильно и что cd работает, потому что я запустил

Exec "cd #{dir}; pwd"

, и результаты - это то, что я ожидал.Поэтому поведение git remote смущает меня.

Кто-нибудь делал что-то подобное или может хотя бы сказать мне, почему git remote не добавляет пульт дистанционного управления в temp в tmp и как это исправить?

Мне также еще предстоит попытаться решить вопрос о ключах, необходимых для 1) доступа к частному репозиторию на GitHub;и 2) развернуть в Героку.Я пойму это, если смогу заставить это работать.

Ответы [ 3 ]

0 голосов
/ 16 декабря 2011

Я создал приложение Java / Play Framework, которое может делать то, что вы хотите:
https://github.com/heroku/shareheroku-java

Приложение выполняет следующие действия:

  1. Клонирует (или обновляет) репозиторий git из URL-адреса git
  2. Создает новый ключ ssh для существующего пользователя Heroku
  3. Добавляет ключ к учетной записи пользователя
  4. Создание нового приложения на Heroku
  5. Отсылает клонированное приложение в Heroku
  6. Добавляет другого пользователя в качестве соавтора.
  7. Передает право собственности пользователю
  8. Удаляет исходного пользователя из приложения
  9. Удаляет ключ ssh из исходного пользователя.

Вы можете увидеть его в действии по адресу:
http://java.herokuapp.com

0 голосов
/ 23 декабря 2014

Я сделал это с моей системой.Я сделал так, чтобы мой hubot связался со своей сборочной коробкой через SSH и выполнил команду git pull / deploy.Команда deploy отправит полезную нагрузку POST обратно в экземпляр hubot, и все статусы будут отправлены в чат-клиент hubotЯ написал об этом целый пост в блоге: http://tritarget.org/blog/2014/10/13/new-site-ship-it/

0 голосов
/ 15 декабря 2011

Я подумал о том же, когда услышал, как Github использует Hubot. Хотя, по-видимому, они размещают его на управляемой ими машине, например, на физическом или виртуальном сервере, который намного больше похож на локальную машину, когда дело доходит до развертывания кода. Хотя вы можете немного поработать над Heroku, я думаю, что вы будете бороться с ключами и с фактическим развертыванием - но я открыт для того, чтобы доказать, что это неправильно :)

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