約1週間後、BitbucketはJenkinsサーバーにリクエストを送信しません(?)。
私はすべてこのように設定しました:
Endpoint
http://username:apitoken@jenkinshost/
username
= Jenkinsのユーザー名apitoken
= Jenkinsのユーザー名に接続されたapitokenjenkinshost
= Jenkinsを実行しているホスト
Project name
はプロジェクトですToken
:プロジェクトごとの構成でセットアップできるトークン。
私はこのウェブサイトに従ってこれをしました: http://felixleong.com/blog/2012/02/hooking-bitbucket-up-with-jenkins
。
動作しましたが、動作しなくなりました。 Bitbucketは何かを変更しましたか?どうすれば修正できますか?
新しいコミット後にリポジトリを構築するには、 BitBucket Plugin を使用します。
注目すべき点が1つあります。POSTフック(JenkinsフックではなくPOSTフックであることに注意)を作成すると、URLは機能します最後に「/」が付いている場合:
URL: JENKINS_URL/bitbucket-hook/
e.g. someAddress:8080/bitbucket-hook/
ジョブ構成で「変更がBitBucketにプッシュされたときにビルドする」をチェックすることを忘れないでください。
うまくいくまで、私は同様の問題を抱えていました。以下は、統合の完全なリストです。
ssh-keygen -t rsa
公開キー(〜/ .ssh/id_rsa.pub)をコピーし、ユーザーのアカウント管理コンソールでBitbucket SSHキーに貼り付けます:
秘密キー(〜/ .ssh/id_rsa)を秘密キーの資格情報を持つ新しいユーザー(または既存のユーザー)にコピーします。この場合、ユーザー名は違いを生じないため、ユーザー名は何でもかまいません。
次のコマンドを実行して、Bitbucketアカウントにアクセスできるかどうかをテストします:ssh -T [email protected]
git clone [email protected]:username/repo_name.git
Jenkins Push通知と自動ビルドのBitbucketフックを有効にできるようになりました。次の2つの手順でこれを実行します。
設定するジョブ/プロジェクト内に認証トークンを追加します。それは何でも構いません:
Bitbucketフックの場合:jenkinsフックを選択し、以下のようにフィールドに入力します。
どこ:
**End point**: username:usertoken@jenkins_domain_or_ip
**Project name**: is the name of job you created on Jenkins
**Token**: Is the authorization token you added in the above steps in your Jenkins' job/project
Recommendation: I usually add the usertoken as the authorization Token (in both Jenkins Auth Token job configuration and Bitbucket hooks), making them one variable to ease things on myself.
次の手順(リンクと同様)で、JenkinsインスタンスへのBitBucketのHooksオプションを使用して、コミット時にビルドを正常にトリガーできました。
エンドポイントでは、認証を使用しているにもかかわらず、URLに基本的なHTTP認証を挿入する必要がありませんでした。モジュール名フィールドは使用せず、プロジェクト名はテストケースのスペースを含めて大文字と小文字を区別して入力しました。ビルドは常にすぐにトリガーされるわけではなく、比較的高速でした。このオプションが有効になっているときに既存の統合からあらゆる種類のAPIの問題が発生したため、「グローバルセキュリティの構成」の「クロスサイトリクエストフォージェリエクスプロイトの防止」オプションを無効にすることも検討できます。
反復することで、Tokenフィールドとエンドポイントのトークンが同じになる場合があることを学びました。だから私はそれらをユーザートークンと同じに設定し、それは動作します!また、ユーザーにジョブを作成する権限があることを確認します。
とにかく、access.logをチェックして、BitBucketが試行するかどうかを確認できます。
追伸 Bitbucket Documentation へのリンクもあります。いつかもっと便利になるかもしれません。
私はこのプラグインに精通していませんが、BitBucketとJenkinsをうまく組み合わせて使用していますが、変更をBitBucketからプッシュするのではなくポーリングします(ビルドサーバーが会社のファイアウォールの背後に隠されているため)。現在のアプローチでまだ問題がある場合は、このアプローチが有効です。
LinuxでGit&MercurialのSSHをセットアップする のこのドキュメントでは、SSHを介してビルドサーバーとBitBucketの間で通信できるようにするために必要な作業の詳細を説明しています。 Gitプラグイン がインストールされた状態でこれが完了したら、ビルド構成に移動し、[ソースコード管理]で[Git]を選択し、リポジトリURLとしてリポジトリのssh URLを入力します。最後に、[トリガーの構築]セクションで[SCMのポーリング]を選択し、ポーリング頻度を必要なものに設定します。
私はこの問題を抱えていましたが、CamelCaseでリポジトリに名前を付けたことが問題であることがわかりました。 bitbucketは、リポジトリのURLをすべて小文字に自動的に変更し、WebhookでJenkinsに送信します。次に、Jenkinsは一致するリポジトリを持つプロジェクトを検索します。私のように、プロジェクト構成のリポジトリURLにCamelCaseがある場合、コードをチェックアウトできますが、webhookリクエストのパターンマッチングは失敗します。
リポジトリのURLをCamelCaseではなくすべて小文字に変更するだけで、パターンマッチでプロジェクトが見つかるはずです。