当前位置: 首页 > 面试题库 >

在Jenkins Pipeline / Jenkinsfile中获取git分支名称

和和煦
2023-03-14
问题内容

我创建了一个詹金斯管道,它正在从scm中提取管道脚本。
我将分支说明符设置为“ all”,因此它基于对任何分支的任何更改。

如何从Jenkinsfile访问导致此生成的分支名称?

我尝试过的一切都呼应null

sh(returnStdout: true, script: 'git rev-parse --abbrev-ref HEAD').trim()

总是这样master


问题答案:

如果您的管道有jenkinsfile,请检查执行时是否在环境变量中看到分支名称。

您可以使用以下命令打印它们:

pipeline {
    agent any

    environment {
        DISABLE_AUTH = 'true'
        DB_ENGINE    = 'sqlite'
    }

    stages {
        stage('Build') {
            steps {
                sh 'printenv'
            }
        }
    }
}

但是,PR 91显示仅在某些管道配置中设置了分支名称:

  • 有条件的分支(请参阅此groovy脚本
  • 并行分支管道(如OP所见)


 类似资料:
  • 我已经创建了一个jenkins管道,它正在从scm中提取管道脚本 我将分支说明符设置为“all”,因此它基于对任何分支的任何更改。 如何从Jenkinsfile访问导致此构建的分支名称? 我试过的所有东西都是空的,除了 它始终是主。

  • 问题内容: 为了将提交分支的名称隔离到可以在日志中打印出的变量中,需要对以下内容进行哪些具体更改? 在以下情况下,分支的名称为。 具体细节如下: Jenkinsfile: 以下代码在通过运行命令产生的输出中间打印出分支名称,但是当后续代码行()尝试打印命令的封装结果时,此信息会丢失: 结果日志: 结果日志输出为: 重述的问题: 为了在日志中输出以下行,需要如何修改上述Jenkinsfile: 问题

  • 问题内容: 我已经在jenkins中将用户名和密码存储为凭证。现在,我想在我的Jenkinsfile中使用它们。 我正在使用DSL,但是,我不确定如何将用户名密码作为单独的变量获取,因此我可以在命令中使用它们。 这就是我在做什么: 如何分别输入用户名和密码?我尝试这样做,但这似乎不起作用。 问题答案: 您可以使用获取单独的值的凭据数据: 因此,以下情况适用于您的情况:

  • 我想准备两个作业在同一个jenkins服务器,将读取从一个特定的分支。我必须使用git标签为其中一个作业,以某种方式将它们分开。 拜托,你能用git标签在jenkins中粘贴一些包含作业触发器的代码吗?

  • 我在进行git克隆时遇到此错误 错误:- 尝试重新安装git(最新) 还是相同的错误 操作系统:-Windows

  • 我正在使用git参数插件进行标记,在分支部分我指定了特定的分支。然后它应该显示只创建到该分支的所有标签,但它显示了所有不同分支的所有标签。