截至2022年4月,该存储库不再使用或维护。
这是Janky,这是一家连续的集成服务器,建立在詹金斯(Jenkins)顶部,由Hubot控制,并为Github设计。
建在詹金斯之上。流行的CI服务器的力量,大量插件和大型社区都在很棒的体验中包裹起来。
由Hubot控制。日常操作被视为整个团队可以使用的简单hubot命令。
为Github设计。 Janky为您创建适当的Web挂钩,Web应用程序限制了对GitHub组织成员的访问。
首先设置新的Jenkins作业,并为存储库进行GitHub Web挂钩: [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
不同的构建与同一聊天室无关,因此Janky可以让您选择发送通知的位置。首先获得可用房间的列表:
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?
Janky需要访问Jenkins服务器。建议使用1.580版。有关安装说明,请参阅Jenkins文档,然后安装Notification插件1.4版。
切记在http://your-jenkins-server.com/configure中设置Jenkins URL。 Janky仍然会触发构建,但如果没有此集合,就不会更新构建状态。
Janky设计为部署到Heroku。
从要点获取所有必要的文件:
$ 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
注意:运行Janky需要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 :带有落后斜线的Jenkins Server URL。示例: http://jenkins.example.com/ ://jenkins.example.com/。对于Basic Auth,包括URL中的凭据: http://user:[email protected]/ 。 Janky不支持将Github Oauth与Jenkins一起使用。JANKY_CONFIG_DIR :存储构建配置模板的目录。通常在Heroku上设置为/app/config 。JANKY_HUBOT_USER :用于保护Hubot API的登录。JANKY_HUBOT_PASSWORD :Hubot API的密码。JANKY_GITHUB_USER :用于访问API的GitHub用户的登录。需要管理特权来设置服务挂钩。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 :实例的完整API URL,带有拖延斜线。示例: https://github.example.com/api/v3/ 。https://github.com/blog/1227-commit-status-api
要更新带有构建状态的拉请请求,通过github api生成oauth令牌:
curl -u username:password
-d '{ "scopes": [ "repo:status" ], "note": "janky" }'
https://api.github.com/authorizations
然后设置JANKY_GITHUB_STATUS_TOKEN 。可选,您还可以将JANKY_GITHUB_STATUS_CONTEXT设置为默认情况下将上下文发送到GitHub API
上面示例中的username和password应与JANKY_GITHUB_USER和JANKY_GITHUB_PASSWORD分别提供的值相同。
必需的设置:
JANKY_CHAT=hipchatJANKY_CHAT_HIPCHAT_TOKEN :身份验证令牌(该令牌需要是管理令牌,而不是通知令牌。)JANKY_CHAT_HIPCHAT_FROM :命名将从中发送消息。默认为CI 。JANKY_HUBOT_USER应为xmpp/jabber用户名,格式xxxxx_xxxxxx而不是电子邮件JANKY_CHAT_DEFAULT_ROOM应该是房间的名称,而不是XMPP格式的名称,例如: Engineers而不是xxxx_xxxxxxx。安装:
Janky.setup(ENV)行之前,添加require "janky/chat_service/hipchat"到config/environment.rb文件。echo 'gem "hipchat", "~>0.4"' >> Gemfilebundlegit commit -am "install hipchat"必需的设置:
JANKY_CHAT=slackJANKY_CHAT_SLACK_TEAM :Slack Team NameJANKY_CHAT_SLACK_TOKEN :用户发送构建通知的身份验证令牌。JANKY_CHAT_SLACK_USERNAME :命名将会发送消息。默认为CI 。JANKY_CHAT_SLACK_ICON_URL :将图像用作此消息的图标。安装:
Janky.setup(ENV)行之前,添加require "janky/chat_service/slack"到config/environment.rb文件。echo 'gem "slack.rb"' >> Gemfilebundlegit commit -am "install slack"通过Janky脚本将通知发送到Hubot。
必需的设置:
JANKY_CHAT=hubotJANKY_CHAT_HUBOT_URL :您的Hubot实例的URL。JANKY_CHAT_HUBOT_ROOMS :可以通过ci set room设置的房间列表。"#room, #another-room""34343:room, 23223:another-room""room, another-room"列表安装:
Janky.setup(ENV)行之前,添加require "janky/chat_service/hubot"到config/environment.rb文件。要限制对GitHub组织成员的访问,请在GitHub上注册一个新的OAuth应用程序,将回调设置为$JANKY_BASE_URL/auth/github/callback ,然后设置一些额外的设置:
JANKY_SESSION_SECRET :随机会话cookie秘密。通常由pwgen这样的工具生成。JANKY_AUTH_CLIENT_ID :OAuth应用程序的客户端ID。JANKY_AUTH_CLIENT_SECRET :OAuth应用程序的客户端秘密。JANKY_AUTH_ORGANIZATION :组织名称。示例:“ github”。JANKY_AUTH_TEAM_ID :可选的团队ID可以给予身份。示例:“ 1234”。将Janky脚本安装在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以供詹金斯执行。
对于总控制,整个Jenkins的config.xml文件可以与Janky构建相关联。给定一个名为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上叉上Janky存储库,并发送拉动请求。请注意,没有测试的行为的任何更改都将被拒绝。如果要添加重要的新功能,请同时添加测试和文档。
版权所有©2011-2014,Github,Inc。有关许可权和限制(MIT)的COPYING文件。