2017-08-22 5 views
1

私は最新のリリースビルドを自動的に実行するようにJenkinsジョブを設定しようとしています(定期ビルドオプションの場合)。現在、それが設定される方法は、新しいリリースのすべてのバージョンが独自のブランチを取得し、それぞれが "Release x.x.x"の形式に沿って何かをラベル付けすることです。可能であれば、新しいリリースがあるたびにすべてのジョブを手動で設定することなく、最新のブランチを動的に実行できるようにしたいと考えています。タグ/ブランチを動的に実行するようにJenkinsを設定するにはどうすればいいですか?

また、タグを使用する方法もこれに代わる方法かもしれないと私はそのようにしています。

これについて十分な量の研究をしています。私が見つけることができるものから、gitパラメータを使用するのが最善の策です。残念ながら、これを使用する方法に関する多くの文書はありません。私は、タグがすべて簡単にバージョン番号だけであるので、タグで試してきました。DESCENDING_SMARTソートオプションを使用するとその方がうまくいくはずですが、ブランチでは他の雑多なブランチの名前も持っています検討してください。私はタグフィルタを*に設定しました。ブランチ指定子は "refs/tags/$ {RELEASE_TAG}"に設定されていますが、これは私のためには機能しません。私がパラメータをビルドするときには、単に "Git参照を取得しています..."と言います。そして、たとえそれを得ることができたとしても、デフォルト値を最新のビルドに設定する方法が必要です(既定値が提供されていない場合、並べ替えられたリストから最初のブランチにデフォルトするためのバンキングです。それを働かせるために)。

私が持っていたもう1つのアイデアは、パラメータ値を返すスクリプトを使用することですが、可能かどうかはわかりません。私は設定でグルーヴィースクリプトを実行することについていくつかのことを見てきましたが、私はそれがどのように動作するかについて多くの研究をしていませんし、私がスクリプトを実行することができても、リポジトリに安全にアクセスし、名前。いったん私がそれを持っていれば、最新のリリースブランチを返すのはかなり簡単です。

これを行う方法はありますか?あるいは、新しいリリースごとにリリースバージョンを手動で更新する必要がありますか?

+0

これは私が現在行っている完全な状況です: 私たちは現在毎日徹夜で実行しなければならない既存のJenkinsジョブの一部を自動化するように求められました。ただし、リリース・バージョンのパラメータが渡される必要があるため、ジョブの一部が失敗しています。これは現在、デフォルト値が設定されていない文字列パラメータです。デフォルト値を追加するという問題は、新しいリリースがあるたびに、リリースバージョンを手動で更新する必要があることを意味します。代わりに、私はJenkinsに最新のリリース(既存のブランチに基づいて)を自動的に判断させるためのシステムを用意したいと思っています – kmaster

答えて

0

マルチブランチプロジェクトを使用しないと、新しいブランチごとにビルドが生成されます。

正規表現を使用できます。

+0

私はそれが何であるか完全にはわかっていないし、グーグルはそれが推奨されなくなったと言います。しかし私は、すべての支店のビルドを望んでいないと思う。私たちはまた追加したいすべての機能のためのブランチを持っています。実行したくない、あるいはすべてのブランチに対してゲンキージョブを持っていることさえありません。 編集:正規表現についてのあなたのアップデートを見ました。私は正規表現の仕組みに慣れていないので、最新のリリース(つまり、降順スマートソートを使って最初にポップアップする)だけを選択できるように設定することは可能でしょうか? – kmaster

+0

特定のブランチだけをビルドすることができます。あなたはJenkinsのバージョンを使用していますか? –

+0

これはv1.628です。 これはほぼ完璧な音です。最新のリリースブランチを指定する方法はありますか?私たちはかなりの量のリリースブランチを持っていて、ビルドは多量のリソースを使用しているので、すべてのリリースブランチを実行することは我々のケースでは実行可能ではありません。 – kmaster

0

オプション1

あなたは、パラメータとしてブランチを渡すことができます。

のは、パラメータ$ {枝}

今、リモートでこのパラメータを渡すこのビルドをトリガーする使用「/支店指定子構築するためのブランチ」をで「ブランチ」

を呼びましょう、あなたの仕事に文字列パラメータを作成します。

これを実現するにはgitスクリプトフックを使うことができます。より良い方法は、コミットメッセージに「Go to Production」、「New Release」、またはそれに同意できるものがあるたびにこのスクリプトを実行することです開発者

オプション2

私がそうであるように。

新しいタグが作成されるたびに、私はjenkinsジョブを開始し、新しいリリースを作成するスクリプトを実行します。

名前のリリースで特定のブランチを作成することによっても、このブランチがコミットされるたびにjenkinsジョブがトリガーされます。

+0

Jenkinsにタグまたはブランチのいずれかを表示させます。タグの場合は最新のバージョンを選択し、ブランチの場合は「リリース」で始まるすべてのブランチを見て、その後にバージョン番号を付け、最新のものを選択します。新しいリリースのブランチが作成されるたびに、文字列パラメータを手動で変更する必要があるように思えます。オプション2も興味深いようですが、コミットが行われるたびにではなく、毎日構築される自動化ジョブを設定しようとしているので、私のケースに合っているとは思いません。 – kmaster

関連する問題