Jenkins get variable GIT_URL在以下情况下不可用;跳过默认签出“;标记
如果我在Jenkins文件中设置:Jenkins get variable GIT_URL在以下情况下不可用;跳过默认签出“;标记,git,jenkins,jenkins-pipeline,jenkins-plugins,jenkins-declarative-pipeline,Git,Jenkins,Jenkins Pipeline,Jenkins Plugins,Jenkins Declarative Pipeline,如果我在Jenkins文件中设置: options { skipDefaultCheckout() } 然后在下面管道中的步骤中,变量${env.GIT_URL}不可用。例如,无法完成以下步骤: stage('Clean checkout') { steps { checkout([$class: 'GitSCM', branches: [[name: "master"]],
options { skipDefaultCheckout() }
然后在下面管道中的步骤中,变量${env.GIT_URL}
不可用。例如,无法完成以下步骤:
stage('Clean checkout') {
steps {
checkout([$class: 'GitSCM', branches: [[name: "master"]],
userRemoteConfigs: [[url: "${env.GIT_URL}"]]])
}
}
在此步骤中,由于生成控制台日志,变量${env.GIT_URL}
=null
但是,如果启用“返回默认签出”,则删除:
options { skipDefaultCheckout() }
然后,
${env.GIT_URL}
变得可用。这是预期行为吗?我无法在管道中看到禁用声明性签出的地方?在我们的Jenkins文件中,我们有
options {
skipDefaultCheckout true
}
environment {
GIT_URL = 'git@github.com:mycompany/myproject.git'
}
在此之后,变量
GIT_URL
可用并填充。您的Jenkins文件是某个GIT存储库的一部分,还是只是作为文本粘贴的?存储库的一部分。这与此有关吗?很有趣,我在我们的两个项目中看到了类似的东西。一开始是一个简单的Jenkins文件,没有skipDefaultCheckout,我们就这样构建了一段时间,然后一位同事决定将事情复杂化一点,并添加了skipDefaultCheckout和显式checkout;在这种情况下,GIT_URL起作用。在另一个从一开始就以skipDefaultCheckout启动的项目中,我无法访问GIT_URL(在这两种情况下,我都尝试使用NonCPS函数)。您能否在下面的Jenkins文件中显示如何引用GIT_URL?更新了我的答案。如果你在环境中定义它,那么就有意义了