我一直致力于在Azure DevOps中为我的Java Maven多模块项目设置管道(仓库在Azure DevOps上)。具体来说,我对创建拉取请求(PR)和运行管道感兴趣。我很想知道是否有一种方法可以只为有更改的子模块执行作业。此外,我想知道是否有可能利用PR标签作为运行特定作业或步骤的条件。
例如,我有一个父pom.xml:
<modules>
<module>A</module>
<module>B</module>
<module>C</module>
<module>D</module>
<module>E</module>
<module>F</module>
</modules>
字符串
如果有人更改了模块A,我想只为模块A触发Azure管道,如果有人更改了模块A,E,我想只为A,E触发Azure管道。
大家对此有何见解或建议?
在此先谢谢您!
我想写一个azure-pipelines.yml,它将编译测试包并构建多模块maven项目的镜像,只构建有变化的子模块
1条答案
按热度按时间6yt4nkrj1#
由于所有子模块都在同一个源代码库中,因此在管道中没有一种方法可以轻松检查哪些子模块被更改,并让作业仅为更新的子模块运行。
在Git仓库中,'
git diff
'命令可以在提交之间获取更新的文件。但是,对于您的情况,它需要在管道中尝试更复杂的配置,而不是使用'git diff
'命令。对于PR标记,没有预先定义的管道变量可以获取PR标记,因此,似乎不可能将标记用于管道中的条件。
如果你真的需要这些功能,我建议你尝试在Developer Community上报告功能请求。这样可以更方便地让产品团队接收和理解你的想法。你的反馈也可以帮助改进Azure DevOps产品。