По состоянию на апрель 2022 года этот репозиторий больше не используется и не поддерживается.
Это Janky, сервер непрерывной интеграции, построенный на вершине Дженкинса, управляемый Hubot, и разработанный для GitHub.
Построен на вершине Дженкинса. Мощность, огромное количество плагинов и большое сообщество популярного CI -сервера все обернуты в отличном опыте.
Контролируется HUBOT. Повседневные операции выставлены как простые команды HUBOT, которые может использовать вся команда.
Разработано для GitHub. Janky создает соответствующие веб -крючки для вас, и веб -приложение ограничивает доступ к членам вашей организации GitHub.
Начните с настройки новой работы Jenkins и GitHub Web Hook для репозитория: [ORG]/[REPO]
hubot ci setup github/janky
Команда setup можно безопасно работать снова и снова. Это ничего не сделает, если это не должно. Требуется дополнительный аргумент name : [ORG]/[REPO] [NAME]
hubot ci setup github/janky janky-ruby1.9.2
Также требуется дополнительный аргумент template : [ORG]/[REPO] [NAME] [TEMPLATE]
hubot ci setup github/janky janky-ruby1.9.2 ruby-build
Все ветви создаются автоматически на толчке. Отключить автоматическую сборку с:
hubot ci toggle [REPO]
ПРИМЕЧАНИЕ . Если name было установлено, вам нужно будет использовать его.
hubot ci toggle [NAME]
Запустите команду еще раз, чтобы повторно его. Принудительно построить главную ветвь:
hubot ci build [REPO]
ПРИМЕЧАНИЕ . Если name было установлено, вам нужно будет использовать его.
hubot ci build [NAME]
Конкретной ветви: [REPO]/[BRANCH]
hubot ci build janky/libgit2
Различные сборки не имеют отношения к одной чатской комнате, и поэтому Джанки позволяет вам выбрать, куда отправляются уведомления. Сначала получите список доступных номеров:
hubot ci rooms
Тогда выберите один:
hubot ci set room janky The Serious Room
Получите статус сборки:
hubot ci status janky
Конкретная ветвь: [REPO]/[BRANCH]
hubot ci status janky/libgit2
Все сборки:
hubot ci status
Наконец, получить быструю ссылку на доступные команды с:
hubot ci?
Джанки требует доступа к серверу Jenkins. Версия 1.580 рекомендуется. Обратитесь к документации Jenkins для инструкций по установке и установите версию плагина уведомления 1.4.
Не забудьте установить URL Jenkins в http://your-jenkins-server.com/configure . Janky все равно будет запускать сборки, но не будет обновлять статус сборки без этого набора.
Джанки предназначен для развертывания в Heroku.
Возьмите все необходимые файлы из GIST:
$ git clone git://gist.github.com/1497335 janky
Затем подтолкните его к новому приложению Heroku:
$ cd janky
$ heroku create --stack cedar
$ bundle install
$ git add Gemfile.lock
$ git commit Gemfile.lock -m "lock bundle"
$ git push heroku master
После настройки приложения (см. Ниже), создайте базу данных:
$ heroku run rake db:migrate
Примечание: Ruby версия 2.0.0+ необходима для запуска Janky.
Мы настоятельно рекомендуем резко поддерживать вашу базу данных, прежде чем обновлять.
Общий процесс состоит в том, чтобы затем обновить драгоценность, а затем запустить мигрировать. Вот как вы делаете это на локальной коробке, к которой у вас есть доступ (этот процесс будет отличаться для Heroku):
cd [PATH-TO-JANKY]
gem update janky
rake db:migrate
Janky настроен с использованием переменных среды. Используйте команду heroku config :
$ heroku config:add VARIABLE=value
Требуемые настройки:
JANKY_BASE_URL : URL -адрес приложения с зацепленной чертой. Пример: http://mf-doom-42.herokuapp.com/ .JANKY_BUILDER_DEFAULT : URL -адрес сервера Jenkins со сцеплением. Пример: http://jenkins.example.com/ . Для Basic Auth включите учетные данные в URL: http://user:[email protected]/ . Использование Github Oauth с Дженкинсом не поддерживается Джанки.JANKY_CONFIG_DIR : каталог, где хранятся шаблоны конфигурации сборки. Обычно устанавливается в /app/config на Heroku.JANKY_HUBOT_USER : вход в систему, используемый для защиты API Hubot.JANKY_HUBOT_PASSWORD : пароль для API Hubot.JANKY_GITHUB_USER : логин пользователя Github, используемый для доступа к API. Требуется административные привилегии для настройки сервисных крючков.JANKY_GITHUB_PASSWORD : пароль для пользователя Github.JANKY_GITHUB_HOOK_SECRET : секрет используется для подписи запросов крючков от github.JANKY_CHAT_DEFAULT_ROOM : чат, где уведомления отправляются по умолчанию.Необязательные настройки базы данных:
DATABASE_URL : URL -адрес подключения базы данных. Пример: postgres://user:password@host:port/db_name .JANKY_DATABASE_SOCKET : путь к розетку базы данных. Пример: /var/run/mysql5/mysqld.sock .Использование Janky с GitHub Enterprise требует одной дополнительной настройки:
JANKY_GITHUB_API_URL : полный URL экземпляра, с зацепленной чертой. Пример: https://github.example.com/api/v3/ .https://github.com/blog/1227-commit-status-api
Для обновления запросов на притяжение с помощью состояния сборки генерировать токен OAuth через API GitHub:
curl -u username:password
-d '{ "scopes": [ "repo:status" ], "note": "janky" }'
https://api.github.com/authorizations
Затем установите JANKY_GITHUB_STATUS_TOKEN . Необязательно, вы также можете установить JANKY_GITHUB_STATUS_CONTEXT для отправки контекста в API Github по умолчанию
username и password в приведенном выше примере должны быть такими же, как и значения, предоставленные для JANKY_GITHUB_USER и JANKY_GITHUB_PASSWORD соответственно.
Требуемые настройки:
JANKY_CHAT=hipchatJANKY_CHAT_HIPCHAT_TOKEN : токен аутентификации (этот токен должен быть токеном администратора, а не токеном уведомления.)JANKY_CHAT_HIPCHAT_FROM : Имя, которые появятся, будут отправлены из. По умолчанию к CI .JANKY_HUBOT_USER должен быть xmpp/jabber пользовательJANKY_CHAT_DEFAULT_ROOM должен быть названием комнаты вместо формата XMPP, например: Engineers вместо xxxx_xxxxxx.Установка:
require "janky/chat_service/hipchat" в файл config/environment.rb перед строкой Janky.setup(ENV) .echo 'gem "hipchat", "~>0.4"' >> Gemfilebundlegit commit -am "install hipchat"Требуемые настройки:
JANKY_CHAT=slackJANKY_CHAT_SLACK_TEAM : имя команды SlackJANKY_CHAT_SLACK_TOKEN : токен аутентификации для пользователя, отправляя уведомления по сборке.JANKY_CHAT_SLACK_USERNAME : Имя, что сообщения будут отображаться из. По умолчанию к CI .JANKY_CHAT_SLACK_ICON_URL : URL на изображение для использования в качестве значка для этого сообщения.Установка:
require "janky/chat_service/slack" в файл config/environment.rb перед строкой Janky.setup(ENV) .echo 'gem "slack.rb"' >> Gemfilebundlegit commit -am "install slack"Отправляет уведомления Hubot через Janky Script.
Требуемые настройки:
JANKY_CHAT=hubotJANKY_CHAT_HUBOT_URL : URL в ваш экземпляр Hubot.JANKY_CHAT_HUBOT_ROOMS : список номеров, которые можно установить через ci set room ."#room, #another-room""34343:room, 23223:another-room""room, another-room"Установка:
require "janky/chat_service/hubot" в файл config/environment.rb перед строкой Janky.setup(ENV) . Чтобы ограничить доступ к членам организации GitHub, зарегистрируйте новое приложение OAuth на GitHub, наложенным обратным вызовом в $JANKY_BASE_URL/auth/github/callback затем установите несколько дополнительных настроек:
JANKY_SESSION_SECRET : Секрет Cookie случайного сеанса. Обычно генерируется инструментом, таким как pwgen .JANKY_AUTH_CLIENT_ID : идентификатор клиента приложения OAuth.JANKY_AUTH_CLIENT_SECRET : секрет клиента приложения OAuth.JANKY_AUTH_ORGANIZATION : имя организации. Пример: "Github".JANKY_AUTH_TEAM_ID : необязательный идентификатор команды, чтобы дать Auth. Пример: "1234". Установите Janky Script в свой Hubot, затем установите переменную среды HUBOT_JANKY_URL . Пример: http://user:[email protected]/_hubot/ , с пользователем и паролем, замененными на JANKY_HUBOT_USER и JANKY_HUBOT_PASSWORD соответственно.
Команда сборки по умолчанию должна быть достаточно для большинства приложений Ruby:
$ bundle install --path vendor/gems --binstubs
$ bundle exec rake
Для получения дополнительного контроля вы можете добавить script/cibuild в корне вашего репозитория, чтобы Дженкинс мог выполнить.
Для полного управления файлы config.xml в целом Jenkins могут быть связаны с Janky Builds. Учитывая сборку, называемую windows и название шаблона psake , Janky попробует config/jobs/psake.xml.erb чтобы использовать шаблон, config/jobs/windows.xml.erb чтобы попробовать имя задания, если шаблон не выходит, Прежде чем, наконец, вернуться к конфигурации по умолчанию, config/jobs/default.xml.erb . После обновления или добавления пользовательской конфигурации снова запустите hubot ci setup , чтобы обновить сервер Jenkins.
Docker и Docker-Compose требуются для взлома этого проекта.
Поднимите свою среду и запустить:
script/bootstrap
Создайте базы данных, таблицы и данные семян:
script/setup
Запустить сервер:
docker-compose run --service-ports app script/server
Откройте приложение:
open http://localhost:9393/
Запустите тестовый набор:
docker-compose run --rm app script/test
Разветвляйте хранение репозитория на GitHub и отправьте запрос на привлечение. Обратите внимание, что любые изменения в поведении без тестов будут отклонены. Если вы добавляете значительные новые функции, добавьте как тесты, так и документацию.
Copyright © 2011-2014, Github, Inc. См. Файл COPYING для прав на лицензию и ограничения (MIT).