当前位置: 首页 > 知识库问答 >
问题:

如何打印Jenkinsfile中类属性的值?

费承载
2023-03-14

我正在创建一个用于GitHub Enterprise的Jenkinsfile。我使用管道作业中的GUI设置从GitHub repo中指定Jenkinsfile。我使用的是脚本语法,而不是声明语法。我可以使用Check scm在Jenkinsfile中签出回购。我想在脚本中使用一些有关签出的信息,例如分支名称和提交哈希。然而,我不知道如何访问scm类的变量。

当我运行作业时,它在Checkout阶段失败。git的签出似乎工作正常,但它失败而没有打印任何错误。如果我删除echscm.GIT_BRANCH行,它工作正常。

node {
  stage('Checkout') {
    checkout scm
    echo scm.GIT_BRANCH
  }
}

这是输出:

Started by user spark
Obtained nightly/Jenkinsfile from git https://github.enterprise.instance.com/spark/ci_flow_test
[Pipeline] node
Running on jenkins-server in /home/spark/ci_flow_test/pipeline_test
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Checkout)
[Pipeline] checkout
 > /apps/git/git18/bin/git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > /apps/git/git18/bin/git config remote.origin.url https://github.enterprise.instance.com/spark/ci_flow_test # timeout=10
Fetching upstream changes from https://github.enterprise.instance.com/spark/ci_flow_test
 > /apps/git/git18/bin/git --version # timeout=10
using GIT_ASKPASS to set credentials 
 > /apps/git/git18/bin/git fetch --tags --progress https://github.enterprise.instance.com/spark/ci_flow_test +refs/heads/*:refs/remotes/origin/*
 > /apps/git/git18/bin/git rev-parse refs/remotes/origin/working^{commit} # timeout=10
 > /apps/git/git18/bin/git rev-parse refs/remotes/origin/origin/working^{commit} # timeout=10
Checking out Revision 396f172c6061ba2760a71cba817df24836ec7e3b (refs/remotes/origin/working)
Commit message: "try echo"
 > /apps/git/git18/bin/git config core.sparsecheckout # timeout=10
 > /apps/git/git18/bin/git checkout -f 396f172c6061ba2760a71cba817df24836ec7e3b
 > /apps/git/git18/bin/git rev-list 778c36171927020bd1afbd7206d86bf94abd1ed8 # timeout=10
[Pipeline] }
[Pipeline] // stage
[Pipeline] mail
[Pipeline] echo
Post script
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: FAILURE

共有1个答案

卫嘉泽
2023-03-14

您可以使用checkout scm返回值来获取git信息

node {

    stage('Checkout') {
        def d = checkout scm

        echo "branch: " + d.GIT_BRANCH
        echo "commit: " + d.GIT_COMMIT
    }
}

// supported fields
GIT_AUTHOR_EMAIL 
GIT_AUTHOR_NAME 
GIT_BRANCH 
GIT_COMMIT
GIT_COMMITTER_EMAIL 
GIT_COMMITTER_NAME 
GIT_LOCAL_BRANCH 
GIT_PREVIOUS_COMMIT
GIT_PREVIOUS_SUCCESSFUL_COMMIT
GIT_URL
 类似资料:
  • 问题内容: 我有一个动物类,具有几个属性,例如: 我现在想将所有这些属性打印到文本文件中。我现在做的丑陋方式是: 有没有更好的Pythonic方式可以做到这一点? 问题答案: 在这种简单情况下,您可以使用: 如果要将Python对象存储在磁盘上,则应查看一下货架- Python对象持久性 。

  • 我有以下几点: 如何打印的类型? 使用和不起作用。还有其他方法可以打印号码的类型吗?

  • 我已经在Jenkins上创建了一个基本的声明性管道。当我运行构建时,它会抛出以下错误 Jenkins服务器使用最新版本的默认插件设置为默认。Jenkinsfile如下所示 当Jenkins读取Jenkinsfile时,看起来块失败了,这在Jenkinsfile看起来很混乱。

  • 我刚开始学习Springmvc。试图跟随你好世界样本。一切似乎工作正常,除了jsp视图无法接收控制器中设置的模型属性值。 这里有一些代码。 控制器: 查看 网状物xml mvc调度程序servlet。xml

  • 使用和不起作用。有没有别的办法我可以打印号码的类型?

  • 问题内容: 有没有一种方法可以快速打印变量的运行时类型?例如: 在上面的示例中,我正在寻找一种方法来表明变量“ soon”的类型为,或至少为。 问题答案: 2016年9月更新 Swift 3.0:使用,例如(因为关键字已删除) 2015年10月更新 : 我将下面的示例更新为新的Swift 2.0语法(例如,已被替换为,现在是)。 从Xcode 6.3发行说明 : @nschum在注释中指出Xcod