在 Jenkins 流水线作业中访问 SCM (Git) 变量 [英] Accessing SCM (Git) variables on a Jenkins Pipeline job
本文介绍了在 Jenkins 流水线作业中访问 SCM (Git) 变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的管道代码:
node ('master') {
git url: "$GIT_REPO_URL", branch: "$GIT_BRANCH"
echo env.GIT_COMMIT
echo env.GIT_BRANCH
echo env.GIT_REVISION
}
构建结果如下:
Started by user anonymous
[Pipeline] Allocate node : Start
Running on master in /var/lib/jenkins/jobs/test/workspace
[Pipeline] node {
[Pipeline] git
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url https://acme/scm/app.git # timeout=10
Fetching upstream changes from https://acme/scm/app.git
> git --version # timeout=10
> git fetch --tags --progress https://acme/scm/app.git +refs/heads/*:refs/remotes/origin/*
> git rev-parse refs/remotes/origin/master^{commit} # timeout=10
> git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision fb455725db1b768ff63e627a087d2771099af7c4 (refs/remotes/origin/master)
> git config core.sparsecheckout # timeout=10
> git checkout -f fb455725db1b768ff63e627a087d2771099af7c4 # timeout=10
> git branch -a -v --no-abbrev # timeout=10
> git branch -D master # timeout=10
> git checkout -b master fb455725db1b768ff63e627a087d2771099af7c4
> git rev-list fb455725db1b768ff63e627a087d2771099af7c4 # timeout=10
[Pipeline] echo
null
[Pipeline] echo
null
[Pipeline] echo
null
[Pipeline] } //node
[Pipeline] Allocate node : End
[Pipeline] End of Pipeline
Finished: SUCCESS
未填充环境变量 env.GIT_COMMIT、env.GIT_BRANCH.这些值是否在其他变量中可用?
The env variables env.GIT_COMMIT, env.GIT_BRANCH are not populated. Are those values available in another variables?
推荐答案
这里是一个如何获取 GIT_COMMIT
的例子(参考:Jenkins GitHub):
Here is an example of how you can get GIT_COMMIT
(ref: Jenkins GitHub):
// These should all be performed at the point where you've
// checked out your sources on the agent. A 'git' executable
// must be available.
// Most typical, if you're not cloning into a sub directory
shortCommit = sh(returnStdout: true, script: "git log -n 1 --pretty=format:'%h'").trim()
您也可以扩展它以公开 GIT_BRANCH
.该脚本来自 cloudbees 管理的工作流示例 git repo.如果您添加检索 GIT_BRANCH
变量的功能,也许您可以发送拉取请求.
You can extend it to expose GIT_BRANCH
as well. This script is from the workflow examples git repo managed by cloudbees. Maybe you can send a pull request if you add capability to retrieve GIT_BRANCH
variable.
这篇关于在 Jenkins 流水线作业中访问 SCM (Git) 变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文