2017-01-15 8 views
-1

私はbitbucketサーバーを持っています:server.com/projects/sites/repos/。さまざまなrepos push JenkinsFileからBitbucket Webhooksを単一のパイプラインプロジェクトにする方法はありますか?

このディレクトリには約50個のウェブサイトフロントエンドがあります。そのため、50個のユニークなレポURLがあり、BitbucketがJenkinsにWebhookコールをかけたいと思っています。それぞれには独自のJenkinsFileがあり、Jenkinsにソースを取得するためのrepoと、npmスクリプトを実行するように指示することができます。

残念ながら、BitbucketプラグインをJenkinsに接続することはできません。私はEXACT repo urlを指定しない限り、これはすべてのリポジトリ用にJenkinsパイプラインプロジェクトを作成する必要があることを意味します。

誰もこのDRYのような何かを守る経験はありましたか?もしそうでなければ、私はジェンキンスを避けて、私自身の解決策を巻き起こすでしょう。

ありがとうございました!

答えて

0

私はJenkinsのbitbucketプラグインから何も役に立たないことがあります。私は "Http Request Post Receive Hook"を使用していますが、プッシュでのみ起動します(GUI内のPRブランチの結合はプッシュではないため、そのイベントでは起動しません)。 HRPRHを使用すると、「buildWithParameters」を使用して、必要なジョブを実行できます。

0

Bitbucket Pull request pluginを使用して、BitbucketサーバーからJenkinsにマージされたプル要求のみをビルドして展開することが1つの解決策です。

ビットバケットアプリケーションでJenkinsビルドジョブのトリガを設定すると、承認されたマージされたプルリクエストに対してビルドを実行できます。 パイプラインジョブの場合、これはbuildwithParamtersトリガである必要があることがわかりましたので、このメソッドを使用してビルドをトリガできる必要があります。ジェンキンスジョブビットバケットプラグインの設定で設定されるべき次のニーズをトリガーするプル要求通知について

Injection Url: http://JENKINS_URL/crumbIssuer/api/xml?xpath=//crumb 
Injection regexp: <crumb>([^<]*)</crumb> 
Basic authentication: username and password 
URL: http://(JENKINS_URL)/job/JOB_NAME/buildWithParameters?token=TOKEN&cause=PULL_REQUEST&PULL_REQUEST_URL=${PULL_REQUEST_URL}&PULL_REQUEST_ID=${PULL_REQUEST_ID}&PULL_REQUEST_TO_BRANCH=${PULL_REQUEST_TO_BRANCH}&PULL_REQUEST_FROM_HASH=${PULL_REQUEST_FROM_HASH} 

これはヘッダを追加する必要がPOST動作する必要がある:

Header: Jenkins-Crumb 
    Value: ${INJECTION_URL_VALUE} 

詳細情報はhereです。

+1

応答を気に入って、あなたの書き込みを読んでください。これはすばらしい戦略であり、私のプラットフォーム/サービスコードにも同様のものを使用しています。残念ながら、フロントエンドプロジェクトのPRベースのワークフローに関連するオーバーヘッドはありません。 – johan

関連する問題