web-dev-qa-db-ja.com

単一のJenkinsジョブを構成して、トランクまたはブランチからリリースプロセスを作成する方法

現在、Jenkins(1.430)でのプロジェクトのリリースプロセスを強化しています。

現在のリリースジョブ

今日、1つの特定のプロジェクトについて、リリースプロセスに特化した1つのジョブがあります。完全な手順は次のとおりです。

  1. リリースを担当する開発者は、すべてのpom.xmlファイルのバージョンを手動で(実際にはmvn versions:set -DnewVersion=2.0を使用して)変更し、-SNAPSHOTを削除します。
  2. 次に、SVNでタグを作成します( http:// my-svn-repo/project/tags/V_2_ など)。
  3. このタグが作成されると、彼はJenkinsサーバーにログオンし、リリースビルドを開始します。
  4. このビルドでは、ビルドに使用するタグを尋ねます。ジョブはParameterized buildとして構成され、パラメーターList Subversionタグが含まれます。
  5. 次に、Jenkinsがこのタグからアーティファクトを構築し、Nexusインスタンスにデプロイします。
  6. これが完了すると、開発者はpom.xmlのバージョンを新しい開発バージョン(つまり、2.1-SNAPSHOT)に設定します。

この方法の利点は、ビルドがタグのみに依存するため、私はJenkinsの仕事しか持っていないことです。

ただし、この手順には人間の介入が多すぎます(pom.xml、コミット、タグの変更など)。

新しいリリースジョブ

今、私はMavenリリースプラグインを使用しています。ビルドを開始するユーザーに3つの情報を要求するジョブを作成しました。

  • リリースのバージョン(リリースプラグインのパラメーターreleaseVersion)。
  • リリース後の開発のバージョン(リリースプラグインのパラメーターdevelopmentVersion)。
  • タグの名前(リリースプラグインのパラメーターtag)。

このジョブは、1つの点を除いて正常に機能します。ジョブは、SVNのトランクまたはブランチに基づいています。つまり、(トランクに加えて)2つのブランチがある場合、ブランチごとに1つ、3つのリリースジョブを作成する必要があります。

2つの世界のベストを維持する1つのアイデア(つまり、mvn releaseを使用するが、1つのリリースジョブを維持する)は、トランク/ブランチのパスをユーザーに要求するビルドパラメーターを追加することです。したがって、ジョブ構成でhttp://my-svn-repo/project/trunk(またはhttp://my-svn-repo/project/branches/BRANCH_V1)を設定する代わりに、http://my-svn-repo/project/$FROM_BRANCHを設定して、ユーザーにFROM_BRANCHパラメータを入力するように依頼します。

このソリューションの問題は、ユーザーがtrunkまたはbranches/BRANCH_Vxのいずれかを入力する必要があるため、エラーが発生する可能性があることです。

理想的には、パラメーターList Subversionタグがタグの選択に存在するため、ブランチ(トランクを含む)を選択できるビルドパラメーターが欲しいです...

だから私の質問:oneすべてのブランチで動作できるJenkinsジョブを構成するより良い方法はありますか?

ありがとう。


Edit:私は Validating String Jenkinsプラグインを見つけました。これは、ユーザーが定義した値がいくつかの正規表現を尊重することを保証するために興味深いものです。それは私の場合に役立ちます...

18
Romain Linsolas

Subversionプラグインのバージョン1.32が必要です。 issue JENKINS-10678 がそのバージョンで実装されました。

次に、プロジェクトのURL(トランク、ブランチ、タグを含める必要がある)のみを指定すると、ブランチとともにトランクが提供されます。

9
Peter Schuetze

ジェンキンスにあまり詳しくない場合は、ピーターの回答にいくつかのメモを追加してください。

最近のバージョンでは、Subversionプラグインがデフォルトでインストールされています(2015年9月)。

次に、プロジェクトを次のように構成する必要があります。

  1. 「このビルドはパラメーター化されています」をチェックしてください(これprojectは最新バージョンでパラメーター化されています)
  2. 「サブバージョンタグの一覧表示(およびその他)」を選択します
  3. 名前フィールドに、後でsvn urlで参照できる変数名を設定します。ここではsvnbranchを選択します。
  4. [リポジトリURL]フィールドに、プロジェクトのURLを入力します(トランク、ブランチ、タグを含める必要があります)
  5. 必要に応じて他のフィールドに入力してください
  6. ソースコード管理で、リポジトリURLで以前に定義された変数を参照します。

次のスクリーンショットを確認してください:

enter image description here

enter image description here

17
dezhi