首页 > 解决方案 > 在 jenkins 中使用嵌套 git 存储库的问题

问题描述

我创建了两个本地 git 存储库。在第一个存储库中,我放置了我的 Jenkinsfile。在我的 Jenkins 文件中,我使用了第二个 git 存储库。现在的问题是,当我想获取第二个存储库的作者姓名以用于某种目的时,它从包含 Jenkinsfile 的第一个存储库中使用。我该如何解决这个问题?我想获取 jenkinsfile 中第二个存储库的作者姓名。

在此处输入图像描述

标签: gitjenkinsnestedjenkins-pipeline

解决方案


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'
      }
    }
  }
}


推荐阅读