截至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
文件。