假设我有一个Git子模块,并在它的一些(但不是全部)子模块上创建了一个同名的分支。这是文件结构。
/path/submodule/module1
/module2 <---- has feature/jira-123-new-feature branch
/module3
/module4 <---- has feature/jira-123-new-feature branch
所以在上面的例子中,子模块module2
和module4
有feature/jira-123-new-feature
分支,但没有module1
和module3
。
在Jenkins管道中,我希望能够这样做。
node("buildNode") {
stage("Run Git") {
List<String> childModules = []
sh """
git submodule foreach 'git checkout feature/jira-123-new-feature && <add child module to childModules list> || :'
"""
}
}
这个想法是,如果子模块有分支,git checkout feature/jira-123-new-feature
将通过,<add child module to childModules list>
的代码将执行。否则,git checkout ...
将失败,但|| :
将捕获它并移动到下一个子模块。
我的问题是,如何编写<add child module to childModules list>
代码?或者有更好的/不同的方法来完成我需要的东西吗?Tia
1条答案
按热度按时间ff29svar1#
我做了以下的事情,虽然我真的认为有人会有更好的方法。