在Jenkins中,我必须在一个多分支项目中完成一个复杂的Git工作流程。我正在使用workflow-scm插件来检出分支,并希望在其他管道步骤中使用原始git命令。
工作流程如下:
这就是我所做的:
def SOURCE_BRANCH = "master"
stage('Checkout') {
def map = checkout scm
// for debug
map.each{ k, v -> println "${k}:${v}" }
}
stage('Merge') {
// this is where it fails
sh """
git pull origin $SOURCE_BRANCH
"""
}
stage('Push') {
sh """
git push --dry-run
"""
}
我收到的错误消息是:
+ git pull origin develop
fatal: could not read Username for 'http://git-url:port': No such device or address
应注意,git-url
是通过Jenkins配置设置的Bitbucket服务器的自定义URL。
我似乎无法将Git凭证注入构建步骤,也无法从映射了scm属性的map
中获取它们。供参考,map
包含以下键:
GIT_BRANCH
GIT_COMMIT
GIT_PREVIOUS_COMMIT
GIT_PREVIOUS_SUCCESSFUL_COMMIT
GIT_URL
任何帮助将不胜感激。