如何从 Execute Shell 引用 Jenkins Github 存储库名称?

How can I reference Jenkins Github repository Name from the Execute Shell?

我在 Jenkins 作业的源代码管理部分看到有一个名称。

我可以使用环境变量在“执行脚本”部分引用此名称吗?

我已经通读了 Git Plugin 的文档,但是这里没有关于如何引用给定名称的信息。

这将非常有用,因为我想为每个 Git 存储库设置不同的变量,并且使用该变量是理想的。

我发现没有环境变量只能访问那个名字。

使用名称时,来自 GitHub 的环境分支名称使用 originremote 通常在分支名称中的名称。例如,如果 GitHub 分支名称是 mynewfeature,Jenkins 环境会将该分支名称理解为 CustomName/mynewfeature

${GIT_BRANCH} returns CustomName/mynewfeature 允许在 Jenkins 的执行脚本操作中访问 Name 变量。

如果您的作业定义在 Jenkinsfile 中,无论是作为声明式管道还是脚本式管道,您都可以在环境块中创建全局或每个阶段的环境变量。

环境变量可以作为 shell 步骤或 groovy 脚本或函数的结果动态创建,请参阅下面从文档 here 中获取的声明性管道语法示例

pipeline {
    agent any 
    environment {
        // Using returnStdout
        CC = """${sh(
                returnStdout: true,
                script: 'echo "clang"'
            )}""" 
        // Using returnStatus
        EXIT_STATUS = """${sh(
                returnStatus: true,
                script: 'exit 1'
            )}"""
    }
    stages {
        stage('Example') {
            environment {
                DEBUG_FLAGS = '-g'
            }
            steps {
                sh 'printenv'
            }
        }
    }
}

在你的例子中,你想要检索源代码管理中提供的名称的值,这似乎并不像我在 线程中看到的那样微不足道,在这种情况下,名称是从git url 本身但不是来自自定义名称。

如果您使用的是声明式管道方法,我想知道是否可以定义一些字符串变量来仅保存您的存储库的自定义名称,并将这些变量用于两者,将它们用作参数值对于结帐步骤,更多信息 here 另一方面在环境块中分配环境变量的值