最初の段階で VCS タグ付け (または VCS 分岐) タスクを含むビルド プランを作成しようとしています。その後、新しく作成されたタグ (またはブランチ) を使用してそこからコードをチェックアウトします (リポジトリは SVN)。
タグ/ブランチ名にプラン変数を使用します - ${bamboo.repoBranch}
- この変数はリポジトリ URL でも使用されます。タグ付け/分岐タスクが実行されるまでこの URL が有効にならないことは理解していますが、その URL からチェックアウトしようとするタスクは後の段階にあります。
私が理解していることから、Bamboo がすべての定義済みリポジトリの変更をチェックするコード変更検出フェーズのようなものがあります (プランで参照されている順序に関係なく、プランでまったく使用されていない場合でも)。これが私のアプローチがうまくいかない理由だと思いますが、それは正しいですか?
これが私が得る例外です:
com.atlassian.bamboo.repository.InvalidRepositoryException: svn:
at
com.atlassian.bamboo.repository.svn.SvnRepository.detectCommitsForUrl(SvnRepository.java:527)
at
com.atlassian.bamboo.repository.svn.SvnRepository.collectChangesSinceLastBuild(SvnRepository.java:278)
私が達成しようとしている別の方法は、タグ/ブランチを作成するプランと、新しく作成されたタグ/ブランチを使用するそのプランの子プランを持つことです。これに関する問題は、プラン変数を子プランに渡すことができないことです。Run Customized を使用して値をオーバーライドし${bamboo.repoBranch}
、オーバーライドされた値を子プランに渡したいと考えています。私が読んだ回避策は、Bamboo REST API を使用して次の実行計画をキューに入れるスクリプト タスクを使用することですが、これはあまり洗練された解決策ではないようです。
私が達成しようとしていることに対する他のアプローチは役に立ちます。
ありがとう