git - 在 jenkins 中使用嵌套 git 存储库的问题
问题描述
我创建了两个本地 git 存储库。在第一个存储库中,我放置了我的 Jenkinsfile。在我的 Jenkins 文件中,我使用了第二个 git 存储库。现在的问题是,当我想获取第二个存储库的作者姓名以用于某种目的时,它从包含 Jenkinsfile 的第一个存储库中使用。我该如何解决这个问题?我想获取 jenkinsfile 中第二个存储库的作者姓名。
解决方案
Git 存储库几乎总是有不止一位作者。有时原作者的提交次数最多,您可以通过这种方式搜索作者。
一种方法是使用以下命令:
git log --format='%aN <%aE>' | awk '{arr[$0]++} END{for (i in arr){print arr[i], i;}}' | sort -rn | cut -f2- | head -1
该命令获取作者,按提交次数排序,然后输出第一个结果。
您可以将其添加到您的 Jenkinsfile 中sh
。
pipeline {
stages {
stage("Checkout") {
steps {
git([url: 'xxxxxxxxxx.git', branch: "master"])
sh 'cd xxxxxxxxx.git'
sh 'git log --format=\'%aN <%aE>\' | awk \'{arr[$0]++} END{for (i in arr){print arr[i], i;}}\' | sort -rn | cut -f2- | head -1 >author.txt'
sh 'cat author.txt'
}
}
}
}