6

私はGitHubにプライベートリポジトリを持つ組織を持っています。また、GitHubプラグインがインストールされた状態で、サーバーのポート8080でJenkinsを実行するように設定しています。所有者グループに存在するjenkinsユーザーのアカウントをGitHubに作成しました。

開発ブランチ(またはマスターブランチ、どちらも機能していないようです)に変更がプッシュされたときに、jenkinsでジョブをトリガーしようとしています。

JenkinsのGitHubフックログを見ると、ポーリングがまだ実行されていないことがわかります。「Jenkinsの管理」に移動すると、GitHubプラグインは、テスト時にアカウントが確認済みであると表示します。

これを構成する方法についての洞察はありますか?使用したいリポジトリが複数あるので、デプロイキーは私には解決策のようには思えません。

4

3 に答える 3

8

アップデート:

Craig Ringerが彼の回答で言及しているように、GitHub プラグイン設定の下の「Configure Jenkins」を選択Grant READ permissions for /github-webhookして、認証なしで Webhook を呼び出すことができます。

別の更新: Webhook が組織で利用できるようになりました (2014 年 12 月): 組織向けの WebHooks API を参照してください。


注: hudson-github-pluginの問題 4は、次のことに関するものでした。

Last GitHub Push

Polling has not run yet.

そして結論は次のとおりでした。

気にしないでください、唯一欠けていたのは、インターネット上のどこにも文書化されていないgithubユーザーの許可チェックボックスでした.

これは、Jenkins ユーザーに関する権限の問題ですか?

記事「楽な Rails3 アプリ CI テストのために Ubuntu で Jenkins-CI をセットアップする」には、次のプロセスが含まれています。

CI システムを制限し、チーム メンバーがビルド ログを使用または表示できるようにするには、まずアカウントを作成する必要があります。

  • に行きManage Jenkins > Configure System
  • チェックボックスにEnable Securityチェックを入れる
  • の下Security Realmで、Jenkins 独自のユーザー データベースを選択します。
  • チェックボックスにAllow users to sign upチェックを入れる
  • の下Authorizationで、選択しますProject-based Matrix Authorization Strategy
  • 最初のユーザーを admin という名前で追加し、別のユーザーを GitHub で追加します (注: 管理者アクセスのユーザー名は admin である必要があります) 。このユーザーは、後で GitHub フックで使用します。

注: 上記の手順で追加した管理者と GitHub ユーザーは、ユーザーを作成しません。次に、同じ名前で実際のユーザーを作成する必要があります。ええ、私は知っています、Jenkins UI では少し奇妙です。

管理に移動しJenkins > Manage Users > Create Userます。管理者と GitHub ユーザーの両方を作成します。

Github Web フックを使用したフック

新しいコミットまたはブランチが Github にプッシュされたときにビルドを自動的に実行するには、リポジトリをセットアップする必要があります。

リポジトリのフック ページに移動します。例えば

github.com/<username>/<project_name>/admin/hooks

の下AVAILABLE SERVICE HOOKS > Post-Receive URLsに、 を追加しgithub:github@your-ci-server.com/github-webhook/ます。

これgithub:githubは、以前に作成したユーザーです。

次に、Jenkins を Github で検証する必要があります。Manage Jenkins > Configure System に移動し、GitHub Web Hook の下で、Github のユーザー名とパスワードを追加し、Test Credential ボタンをクリックして、Github で一度承認します。

于 2012-05-22T06:09:22.357 に答える
2

現在のバージョンの GitHub プラグインでは、受け入れられた回答は不要になったようです。代わりに、GitHub プラグイン設定の下の「Configure Jenkins」をチェックインGrant READ permissions for /github-webhookして、認証なしで Webhook を呼び出すことができます。

このオプションのヘルプで説明されているように、これは非常に安全であり、率直に言って、「github」という名前のユーザーとパスワード「github」を持つことよりも悪くありません。

于 2012-12-11T10:19:32.420 に答える
0

Jenkins で自動ビルドを実現するには、2 つの方法があります。何を選択するかは、指定した Jenkins サーバー URL を GitHub が呼び出せるかどうかによって異なります。ファイアウォールの内側で Jenkins を実行している場合、これは当てはまらない場合があります。

  1. GitHub がその URL にアクセスできる場合は、そこにあるリポジトリにサービス フックを設定できます。
  2. そうでない場合は、定期的にポーリングするように Jenkins を設定できます。

両方を設定することもできますが、1 つのソリューションで十分です。リソースの CPU とトラフィックを節約するため、可能であれば常に最初に行います。

いずれにしても、Jenkins 用の GitHub プラグインが必要です。

それが少し役立つことを願っています。

于 2012-05-22T05:41:29.247 に答える