2017-11-10 23 views
0

Jenkinsの設定では、私はちょっと変わった動作を見ています。Jenkins SVNリビジョンの不一致

我々は、典型的な3環境設定を持っている:

のDev、テスト、製品版、

ジェンキンスは、それらのすべてを構築するために設定されています。

Devは、15分ごとにSVNリポジトリをポーリングし、更新があった場合にビルドを行うように設定されています。

テストは、このオプションを使用して構成されています:は、「このプロジェクトは、Subversionの機能ブランチを作成します」最後に成功したのDevビルドコードを使用して構築し、手動でトリガされます。

問題はこれです:Devはうまくいきます。しかし、テストは最初に正しいSVNリビジョンを使用してビルドしません。コンソールの出力を確認した後、ワークスペースに正しいリビジョンをもたらす場所がわかります。毎回新しいチェックアウトを行い、変更をマージするように設定されています。しかし、生成されたコマンドラインを見ると、 Mavenを使用すると、コマンドに渡されたsvnリビジョンは実際に最後のものではなく最後の成功したビルドになります。

JenkinのSVN_REVISION変数を使用してsvnリビジョンが渡されています。これは何らかの形で古い値にリセットされています。私はドキュメントを精査してグーグルをたくさんしました。問題がSubversionモジュール(2.6)、Jenkins(1.642.4)、またはテストビルドの方法であるかどうかを判断できません設定されます。私はSVNとJenkinsサーバーの時刻をチェックして、それらが同期していることを確認しました。だから時間に関係する問題ではありません。 Testが2回目に構築されると、正しいバージョンが選択されます。

私はジェンキンスのエキスパートではないので、何かを見落としているかもしれませんが、この問題の原因は明らかではなく、アイデアは大歓迎です。

ありがとうございました。

+0

Testの**アップストリームプロジェクト名**とは何ですか?変更を何にマージしますか? –

+0

したがって、テストビルドはDevビルドとは異なるsvn repoを指します。テストビルドは、前回の成功したDevビルドからのsvn repoへのプリビルドリベースを行い、その後、それを正しく読んでいれば、svn repoからビルドします。 – Alex

+1

テストは通常​​のプロジェクトの一部ですか?彼らはそうでないように聞こえる? – khmarbaise

答えて

0

問題が解決しました。テストビルドがdevコードベースを直接使用していなかったことがわかります。代わりに、Testはフィーチャーブランチを構築していて、コードrebase pre-buildを行っていました。何らかの理由で、rebaseが実行されていましたが、ビルドは変更を取得していませんでした。そこで、ビルドを成功させた後にSVNでタグを生成するようにDevビルドを変更し、リポジトリの場所を新しくタグ付けされたDevコードを指すように変更しました。ヴィオラ、変更に伴う問題はこれ以上含まれていません。