使用 jenkins 管道脚本找出最后一次提交
To find out last commit using jenkins pipeline script
我们正在使用以下命令找出对 git
的最后一次提交
{ git log -1 --pretty=format:'%an'; echo "@xyzcompany.com, developer@xyzcompany.com"; } | xargs -I{} echo {} | sed 's/\n//'
注意:此命令在 jenkins 工作区项目的 CLI 中有效。
如何在 jenkins 管道脚本中注入这个命令??
您可以只使用sh
来执行命令。如果您使用的是声明性语法(以 pipeline
而不是 node
开头),我建议您在 environment
中这样做,这样您就可以在管道的所有阶段读取结果:
environment {
COMMIT = sh(script: '{ git log -1 --pretty=format:\'%an\'; echo "@xyzcompany.com, developer@xyzcompany.com"; } | xargs -I{} echo {} | sed \'s/\n//\'', returnStdout: true).trim()
}
或者——如果你使用脚本语法——你只需声明一个变量:
def commit = sh(script: '{ git log -1 --pretty=format:\'%an\'; echo "@xyzcompany.com, developer@xyzcompany.com"; } | xargs -I{} echo {} | sed \'s/\n//\'', returnStdout: true).trim()
我们正在使用以下命令找出对 git
的最后一次提交{ git log -1 --pretty=format:'%an'; echo "@xyzcompany.com, developer@xyzcompany.com"; } | xargs -I{} echo {} | sed 's/\n//'
注意:此命令在 jenkins 工作区项目的 CLI 中有效。
如何在 jenkins 管道脚本中注入这个命令??
您可以只使用sh
来执行命令。如果您使用的是声明性语法(以 pipeline
而不是 node
开头),我建议您在 environment
中这样做,这样您就可以在管道的所有阶段读取结果:
environment {
COMMIT = sh(script: '{ git log -1 --pretty=format:\'%an\'; echo "@xyzcompany.com, developer@xyzcompany.com"; } | xargs -I{} echo {} | sed \'s/\n//\'', returnStdout: true).trim()
}
或者——如果你使用脚本语法——你只需声明一个变量:
def commit = sh(script: '{ git log -1 --pretty=format:\'%an\'; echo "@xyzcompany.com, developer@xyzcompany.com"; } | xargs -I{} echo {} | sed \'s/\n//\'', returnStdout: true).trim()