2012-04-12 4 views
2

Maven-Release-Pluginを使用してJavaプロジェクトをリリースするJenkins-Jobを設定しようとしています。
私は、以前のメジャーバージョンと互換性がないとマークするために使用するメジャーバージョンが、現在のリリースが以前のメジャーバージョンと互換性がない場合に変更するようにしたいと思います。Jenkins:ユニットテストを使用したMaven-Releaseの自動バージョンチェック

例:

最後のリリースは のFooという名前のクラスが含まれていバージョン1.9.5ました。
現在のリリースこのクラスは削除されました。
ユーザは現在のリリースバージョンとして1.9.6を指定し、 Jenkins-Jobを開始します。

リリースは、現在のメジャーバージョンがAPIに互換性がないとなっているので、ないことが期待されていることをユーザーに伝える必要があります。

私は、以前のリリースのユニットテストを使用して、現在のリリースのコードをテストすることを考えました。一部のAPIが互換性がなくなった場合、コンパイルまたはテスト中に以前のリリースのユニットテストが失敗するはずです(そのコードのユニットテストがあると仮定します)。

私のアプローチでは、テストを別のプロジェクトで行い、VCSから2つのバージョンをチェックする必要があります。

Jenkins-Pluginについて知っていますか?また、APIが2つのメジャーバージョン間で互換性がなくなったかどうかを確認する方法について他の考えがありますか?

答えて

2

私はあなたのAPIを理解していないので、APIの互換性をテストすることについては何も示唆することができません。ジェンキンス/ Mavenの面では

は、私はあなたが

『他のプロジェクトにトリガパラメータ化ビルド』と呼ばれるポストビルドアクションオプションを使用してテストジョブの下流ジョブとして、実際のリリースビルドを実行することをお勧めこの機能を使用すると、このジョブの結果に応じて異なるパラメータでダウンストリームジョブをトリガーできます。私。テストスイート全体が渡された場合は、マイナーリリースビルドを起動し、その逆も同様です。

+0

いいですね。私は週末に試してみましょう。 –

1

ジェンキンスやリリースプラグインを使用している点はありません。メジャーリリースを何回行う予定ですか?

単体テストを別のプロジェクトに分けるというあなたの考えは良いことです。以前にリリースした-SNAPSHOTバージョンに対して、以前のリリースのテストを実行するだけです。彼らが通過すれば、それでいい。それ以外の場合は、メジャーバージョン番号をバンプしてください。

+0

私がリリースを実行するには、次のステップを考えています: - チェックアウトVCS の新しいコピー - 以前のリリース のチェックアウトユニット・テスト - - ユニット・テスト が実行現在のコードをビルド&前のユニットテストを実行 - 正しいバージョンのVCSにタグ付けする - リリースを開始して次のスナップショットバージョンに最新バージョンを更新する 現在のバージョンと次のリリースバージョンのみを提供する単一のジョブ/ツールがあれば、これは簡単ではないでしょうか? –

+0

ええ、それはツールでこれを行う方が簡単だろうと思います。おそらく、古いバージョンの単体テストと組み合わせたhttp://mojo.codehaus.org/versions-maven-plugin/use-next-releases-mojo.htmlを使用できますか? – artbristol

関連する問題