以下詹金斯文件:
pipeline {
agent any
stages {
stage( "1" ) {
steps {
script {
def br = "demo_branch"
def clone_url = "ssh://git@server.com:7999/spc/my_prj.git"
def cred_id = "ssh_cred_id"
def relative_dir = "my_prj"
checkout([$class: 'GitSCM',
branches: [[name: br]],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'RelativeTargetDirectory',
relativeTargetDir: relative_dir]],
submoduleCfg: [],
userRemoteConfigs: [[url: clone_url,
credentialsId: cred_id]]])
}
}
}
}
post {
always {
script {
echo "the end"
}
}
}
}
...导致在/home/jenkins/workspace/job/my_prj/
我的 Jenkins 服务器中创建目录,并且该目录包含我克隆的 git 存储库。
我想到cd
这个目录,运行命令git rev-parse --abbrev-ref HEAD
并获取值“ demo_branch
”,但我得到的值是“ HEAD
”。我很确定这是因为 Jenkinsfilecheckout
命令正在签出refs/heads/demo_branch
而不是demo_branch
. IE:
user@server:/home/user# cd /home/jenkins/workspace/job/my_prj/
user@server:/home/jenkins/workspace/job/my_prj# git rev-parse --abbrev-ref HEAD
HEAD
user@server:/home/jenkins/workspace/job/my_prj# git checkout demo_branch
Switched to branch 'demo_branch'
Your branch is up-to-date with 'origin/demo_branch'.
user@server:/home/jenkins/workspace/job/my_prj# git rev-parse --abbrev-ref HEAD
demo_branch
有没有办法让 Jenkinscheckout
命令签出demo_branch
而不是refs/heads/demo_branch
?