我运行了几个Jenkins Job,它将代码部署到应用程序服务器。只要在Github和webhook中通过Jenkins插件配置Github存储库中的Commit,这些作业就会自动运行。 Jenkins正在Windows系统上运行。
我们在存储库中有几个应用程序,由包含代码的目录表示,每个应用程序都有一个相应的Jenkins作业,它在运行作业时将代码部署到服务器。 由于所有应用程序都在同一个存储库中,因此在任何一个应用程序中进行更改都会创建一个Push事件,从而对所有作业进行欺骗。
假设有三个应用 App1 , App2 和 App3 ,其相应的作业 J1 , J2 , J3 并且App1发生了变化,并且在Github存储库中进行了提交,导致所有作业 J1 , J2 , J3 触发和部署服务器中的 App1 , App2 , App3 。
由于 App2 , App3 在存储库中没有任何更改但仍会部署到服务器,因此会造成不必要的混淆。 有没有办法可以根据Github存储库中的目录级别更改/提交来触发特定的Jenkins作业构建。我们可以以某种方式使用任何git钩子来实现这个目标吗?
答案 0 :(得分:0)
为了实现这一点,您可以将结账稀疏到git中的特定目录,以便每个jenkins作业彼此互为。
jenkins job configure - >源代码管理 - > Git - >附加行为 - >添加 - >稀疏结账路径
这将简单地将checkout稀疏到子目录,并检查该目录是否有任何提交。希望这会有所帮助。