По состоянию на апрель 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=hipchat
JANKY_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"' >> Gemfile
bundle
git commit -am "install hipchat"
Требуемые настройки:
JANKY_CHAT=slack
JANKY_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"' >> Gemfile
bundle
git commit -am "install slack"
Отправляет уведомления Hubot через Janky Script.
Требуемые настройки:
JANKY_CHAT=hubot
JANKY_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).