Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins get variable GIT_URL在以下情况下不可用;跳过默认签出“;标记_Git_Jenkins_Jenkins Pipeline_Jenkins Plugins_Jenkins Declarative Pipeline - Fatal编程技术网

Jenkins get variable GIT_URL在以下情况下不可用;跳过默认签出“;标记

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"]],

如果我在Jenkins文件中设置:

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?更新了我的答案。如果你在环境中定义它,那么就有意义了