6

SVN、Jenkins、Maven を使用したデプロイ パイプラインを考えています。現時点では、通常はmvn release:perform作業コピーを呼び出すところに行き詰まっています。

展開パイプラインを考えるとき、すべてのコミットを使用してソフトウェアをテスト/本番環境にリリースできるパイプラインを作成したいと考えています。5 つのビルドがあり、ビルド 3 (リビジョン 3) を本番環境にリリースすることにしたとします。トランクにはすでに 2 つの新しいコミットがあります(現在はリビジョン 5 です)。

を使用しmaven-release-pluginてリビジョン 3 のリリースをチェックアウト/ビルド/タグ付け/コミットすることはできますか? maven-release-plugin がリリースを完了すると、通常、変更された POM がtrunkにコミットされます。

ここであらゆる種類の情報やアドバイスを喜んで提供しますので、お気軽に書籍を紹介してください ( http://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912など)。ブログの投稿、Jenkins のドキュメント... 多分私は完全に間違った方向に進んでいます。

4

2 に答える 2

2

デフォルトでは、リリースプラグインは作業コピーのコンテンツに基づいてリリースを作成します。これにより、コミットされていないコンテンツがないことが確認されます。通常、継続的インテグレーションシステム(あなたの場合はJenkins)の仕事であるため、ソースの更新を強制することはありません。したがって、Jenkinsによってチェックアウトされたものはすべてリリースされます。

あなたがやろうとしていることは、Jenkins側の構成変更のように聞こえ、正しいリビジョンを指し示しています。

一方、リリースの一部としてPOMファイルが変更されたが、その間にSVNで変更された場合、Mavenが変更されたPOMファイルをチェックインするときに競合が発生します。これは、リリースをどのようにやり直したいかによっては、発生する可能性のある状況です。

これに基づいて、リリースを行う前に常にブランチを作成する方が理にかなっている場合があります。したがって、リビジョン3に基づいてブランチを作成し、そのブランチにリリースを作成します。これにより、最近のリビジョンで変更されたリソースのコミットに関する問題が発生することはありません。

ブランチの作成とチェックアウトは、おそらくJenkinsとMavenを介して自動化することもできます。

于 2013-01-11T15:54:46.943 に答える
1

私がテストした限り、それは不可能です。

より明示的には、nwinler が言ったように、リリースすると、maven は変更された pom をコミットしようとします。ただし、現在のリビジョンよりも古いリビジョンの場合、SVN はソースが最新でないと文句を言います。だからうまくいかない。... 私の知る限りでは。

プロモーション ビルドに関するドキュメントを読むことができます。(このメッセージを書いてから数分で)指摘できるほど明確なものは見つかりません。

于 2013-01-13T11:56:30.890 に答える