現在、Jenkins(1.430)でのプロジェクトのリリースプロセスを強化しています。
現在のリリースジョブ
今日、1つの特定のプロジェクトについて、リリースプロセスに特化した1つのジョブがあります。完全な手順は次のとおりです。
mvn versions:set -DnewVersion=2.0
を使用して)変更し、-SNAPSHOT
を削除します。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プラグインを見つけました。これは、ユーザーが定義した値がいくつかの正規表現を尊重することを保証するために興味深いものです。それは私の場合に役立ちます...
Subversionプラグインのバージョン1.32が必要です。 issue JENKINS-10678 がそのバージョンで実装されました。
次に、プロジェクトのURL(トランク、ブランチ、タグを含める必要がある)のみを指定すると、ブランチとともにトランクが提供されます。
ジェンキンスにあまり詳しくない場合は、ピーターの回答にいくつかのメモを追加してください。
最近のバージョンでは、Subversionプラグインがデフォルトでインストールされています(2015年9月)。
次に、プロジェクトを次のように構成する必要があります。
次のスクリーンショットを確認してください: