プロジェクトでIVYを使用していますが、最近Jenkinsサーバーをセットアップして、トランクチェックインが実行されるたびに次のことが起こります。スナップショットアーティファクトの公開とリリースアーティファクトのベストプラクティス
- Jenkins SCM pollが変更を検出し、IVYプラグインに通知します。
- IVYプラグインは、変更されたモジュールのANTビルドをトリガーし、ダウンストリームモジュールのビルドをトリガーします。
- 内蔵モジュールは、その後、1.0-SNAPSHOTとしてバージョニング中央IVYレポに公開されている
トランク上の各モジュールivy.xmlはREV =「latest.integration」とivysettings.xmlファイルを使用して依存関係を宣言するには、リゾルバとしてを宣言します続く。これにより、後のSNAPSHOTSがローカルのIVYリポジトリにプルダウンされます。
<resolvers>
<chain name="chained" returnFirst="true">
<filesystem name="libraries" changingPattern="1.0-SNAPSHOT" changingMatcher="exact" checkmodified="true">
<ivy pattern="${ivy.repo.dir}/[organisation]/[module]/[revision]/ivy.xml"/>
<artifact pattern="${ivy.repo.dir}/[organisation]/[module]/[revision]/[artifact].[ext]"/>
</filesystem>
</chain>
</resolvers>
さて、これはトランクに発展しながら正常に動作しますが、私たちは、リリース成果物を公開できるように、この前進を取るためにどのように混乱しています。私が正しいとすれば、本番環境ではSNAPSHOTSを使用しないでください。
週末に実行される週単位のビルドを実装するかどうかは、週末に実行して次のことを実行するかどうかと考えていました。
- ジェンキンスの作業領域を裂く。
- SVNからトランクをチェックアウトします。
- 完全ビルドを実行し、すべての単体テストを実行します。
- 3つがすべてのモジュールで成功すると、バージョン化された成果物(例:-WKYY.1〜IVY repo)を発行します。
ステップ1〜4が正しい場合は、SVNをタグ付けし、すべてのモジュールのブランチを作成して、IVY.xmlファイルをチェックして正しい依存バージョン番号を確認できるようにしますか?
どの時点でリリースブランチを作成することにしますか?現時点では、私が開発しているすべてのプロジェクトでは、トランクにチェックインし、トランクからリリースしています。リリースブランチは決して作成されません:-( – Juckky
あなたが望むものに依存しますビルドとすべてのテストが成功するたびにリリースブランチにマージするか、リリーススケジュールに基づいて定期的に行うことができます。私たちはリリースをしたいときには、失敗したビルドを修正するために必要なものを除いてすべてのコミットを禁止します。すべてのビルドが正常であれば、すべてのリポジトリを解放するためにマスターをマージします。 – roelvanmeer
また、リリースブランチを作成しません(各リリースごとに別々のブランチ)。「リリース」という*ブランチが1つあります。コードが安定しているとき、またはリリースが必要なときにトランクをそのブランチにマージしますだから、ワークフローは、あなたがトランクからリリースした時とそれほど違いはありません。 – roelvanmeer