2022年4月現在、このリポジトリは使用または維持されなくなりました。
これは、Jenkinsの上に構築された継続的な統合サーバーであり、Hubotによって制御され、GitHub用に設計されたJankyです。
ジェンキンスの上に建てられました。パワー、膨大な量のプラグイン、人気のある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
次に、1つを選択します:
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ドキュメントを参照し、通知プラグインバージョン1.4をインストールしてください。
Jenkins URLをhttp://your-jenkins-server.com/configure
に設定することを忘れないでください。 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/
。 Basic Authについては、urlに資格情報を含めます: http://user:[email protected]/
。 JenkinsでGithub Oauthを使用することは、Jankyにはサポートされていません。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
:secret githubからのフックリクエストに署名するために使用されます。JANKY_CHAT_DEFAULT_ROOM
:デフォルトで通知が送信されるチャットルーム。オプションのデータベース設定:
DATABASE_URL
:データベース接続URL。例: postgres://user:password@host:port/db_name
。JANKY_DATABASE_SOCKET
:データベースソケットへのパス。例: /var/run/mysql5/mysqld.sock
。Github EnterpriseでJankyを使用するには、1つの追加設定が必要です。
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
、xxxxx_xxxxxxのxmpp/jabberユーザー名である必要があります。JANKY_CHAT_DEFAULT_ROOM
、 Engineers
ではなく、xmpp形式の代わりに部屋の名前である必要があります。インストール:
Janky.setup(ENV)
行の前に、 config/environment.rb
ファイルにrequire "janky/chat_service/hipchat"
追加を追加します。echo 'gem "hipchat", "~>0.4"' >> Gemfile
bundle
git commit -am "install hipchat"
必要な設定:
JANKY_CHAT=slack
JANKY_CHAT_SLACK_TEAM
:Slackチーム名JANKY_CHAT_SLACK_TOKEN
:ユーザーの認証トークンビルド通知を送信します。JANKY_CHAT_SLACK_USERNAME
:そのメッセージが表示されるという名前は送信されます。デフォルトはCI
です。JANKY_CHAT_SLACK_ICON_URL
:このメッセージのアイコンとして使用する画像へのurl。インストール:
Janky.setup(ENV)
行の前に、 config/environment.rb
ファイルにrequire "janky/chat_service/slack"
。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)
行の前に、 config/environment.rb
ファイルにrequire "janky/chat_service/hubot"
が必要です。github組織のメンバーへのアクセスを制限するには、 $JANKY_BASE_URL/auth/github/callback
にコールバックを設定して、githubに新しいOAuthアプリケーションを登録してから、いくつかの追加設定を設定します。
JANKY_SESSION_SECRET
:ランダムセッションCookie Secret。通常、 pwgen
のようなツールによって生成されます。JANKY_AUTH_CLIENT_ID
:oauthアプリケーションのクライアントID。JANKY_AUTH_CLIENT_SECRET
:oauthアプリケーションのクライアントの秘密。JANKY_AUTH_ORGANIZATION
:組織名。例:「github」。JANKY_AUTH_TEAM_ID
:authに与えるオプションのチームID。例:「1234」。 hubotにJankyスクリプトをインストールし、 HUBOT_JANKY_URL
環境変数を設定します。例: http://user:[email protected]/_hubot/
、ユーザーとパスワードをそれぞれJANKY_HUBOT_USER
とJANKY_HUBOT_PASSWORD
に置き換えます。
ほとんどのRubyアプリケーションでは、デフォルトのビルドコマンドで十分である必要があります。
$ bundle install --path vendor/gems --binstubs
$ bundle exec rake
さらにコントロールするには、Jenkinsが代わりに実行できるように、リポジトリのルートにscript/cibuild
を追加できます。
Total Controlの場合、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リポジトリをフォークし、プルリクエストを送信します。テストなしの動作の変更は拒否されることに注意してください。重要な新機能を追加している場合は、テストとドキュメントの両方を追加してください。
Copyright©2011-2014、Github、Inc。ライセンスの権利と制限(MIT)については、 COPYING
ファイルを参照してください。