截至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=hipchat
JANKY_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"' >> Gemfile
bundle
git commit -am "install hipchat"
必需的设置:
JANKY_CHAT=slack
JANKY_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"' >> Gemfile
bundle
git commit -am "install slack"
通过Janky脚本将通知发送到Hubot。
必需的设置:
JANKY_CHAT=hubot
JANKY_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
文件。