我在詹金斯(Jenkins)有一个项目,在这里我必须检出不同的存储库并更新检出的项目Pom文件中的三部分版本,例如c1,c2,c3,并非所有项目都需要更新所有三个版本。项目具有所有三个版本,有些具有两个版本,有些只有一个版本。在成功更新POM文件之后,需要提交pom文件并将其推回Master或其他分支,我编写了执行此操作的PowerShell脚本,但是在没有要提交的内容时,Jenkins作业失败。我可以尝试使用
git diff --quiet && git diff --staged --quiet || git commit -am 'some message'
问题是我在每个项目中都有一个脚本,并且可以执行此操作
git add pom.xml
git commit -m "message"
if ($? -ne $True) {
write-host "Error running command 'git commit''"
exit ..
git push origin
if ($? -ne $True) {
write-host "Error running command 'git push''"
exit ..
现在的问题是,可能会发生以下情况:在C1,C2和C3中仅更改了一个,或者更改了两个,所以如果在脚本的第一阶段不满足条件,它将退出并跳过其他有效的git提交和推送,如果因为C1或C2或C3的版本未更改且没有任何提交而没有提交,则它也将退出,请提供一些更好的方法来处理此问题。
已经尝试过
git diff --quiet && git diff --staged --quiet || git commit -am ' message'
git add pom.xml
git commit -m "message"
if ($? -ne $True) {
write-host "Error running command 'git commit''"
exit 1
}
git push origin $Branch
if ($? -ne $True) {
write-host "Error running command 'git push''"
exit 2
}
write-host "git push origin $Branch exited successfully"
cd ..
exit 0
我希望这项大工作能够成功,尽管我也可以将其划分为四个我仍然想知道的并行工作