Jenkins 詹金斯管道执行令

Jenkins 詹金斯管道执行令,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我目前正在Jenkins为一个节点应用程序构建一个管道 这些阶段将是: 签出代码 更新依赖项 运行测试 我在邮件区通过slack发送通知 然而,我想改变这一点,使它有点圆滑,并在一个松弛的频道中提到特定的用户。因此,我发现我可以使用以下方法获取提交者名称: AUTHOR_NAME = bat ( script: "git show -s --format='%%an' HEAD", returnStdout: true ).split('\r\n')[2].trim() 使用开关(这里作

我目前正在Jenkins为一个节点应用程序构建一个管道

这些阶段将是:

  • 签出代码
  • 更新依赖项
  • 运行测试
我在邮件区通过slack发送通知

然而,我想改变这一点,使它有点圆滑,并在一个松弛的频道中提到特定的用户。因此,我发现我可以使用以下方法获取提交者名称:

AUTHOR_NAME = bat (
script: "git show -s --format='%%an' HEAD",
returnStdout: true
).split('\r\n')[2].trim() 
使用开关(这里作为证明)我可以使用slackSend并提及适当人员的用户ID。当我和自己一起测试的时候,一切似乎都正常,然后我让其他人来尝试。我是在懒散的评论中再次提到的,而不是用户。我试过了,这次提到了另一个人


玩了一段时间后,获取名称的代码似乎正在运行一次提交。我已经将这段代码放在环境块中了——但是这段代码应该作为git签出的一部分调用吗?在git结账之后

调用
git show
的脚本请求的是作者名,而不是提交者名-
--format='%%an'
。这可能是个问题。用
%%cn
替换
%%an
。我会在git签出后运行它,而不是作为它的一部分(角色分离-第一个签出阶段,然后是第二个执行阶段)。@Rann Lifshitz我曾尝试在签出后在其“自己的”阶段运行它,但它似乎抛出了一个错误(从内存中我认为它抱怨代码应该在一个步骤中-但它在一个步骤中)请把你收到的错误贴出来,否则我帮不了你。我已经整理好了。我不得不关闭脚本块中的AUTHOR_NAME=bat(…)命令,你应该发布你的解决方案作为你自己问题的答案