【问题标题】:Facing issue with jenkins: label name not recognized by sync command詹金斯面临的问题:同步命令无法识别标签名称
【发布时间】:2015-06-25 13:14:15
【问题描述】:

我正在尝试使用 curl 命令按顺序运行 Jenkins 作业。并面临一些奇怪的问题。只有最后提到的作业正在执行,其他作业失败,但出现以下异常。

我的问题是,

假设我有两个 CL 来创建 RPM 使用 First CL 运行 curl 命令并在 Jenkins 服务器中构建参数。第一个 CL 会失败。

使用第二个 CL 运行 curl 命令并在 Jenkins 服务器中构建参数,它会正常运行并创建一个 RPM。

下面是我会得到的例外,

Caught exception communicating with perforce. Errors encountered while force syncing: error: Invalid changelist/client/label/date '@cobrands.razor12.FIS.prod.20150609_build_01
com.tek42.perforce.PerforceException: Errors encountered while force syncing: error: Invalid changelist/client/label/date '@cobrands.razor12.FIS.prod.20150609_build_01

    at com.tek42.perforce.parse.Workspaces.syncTo(Workspaces.java:167)
    at hudson.plugins.perforce.PerforceSCM.checkout(PerforceSCM.java:1001)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1369)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:676)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:581)
    at hudson.model.Run.execute(Run.java:1575)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:241)

但使用相同的参数集,我手动运行 Jenkins 作业。一切都会好的。

有人可以帮忙吗?

【问题讨论】:

  • “cobrands.razor12.FIS.prod.20150609_build_01”实际上是标签还是工作区的名称?如果是这样,它是哪个(标签/工作区)?你能运行 'p4 clients -e cobrands.razor12.FIS.prod.20150609_build_01' 或 'p4 labels -e cobrands.razor12.FIS.prod.20150609_build_01' 来判断吗?
  • -bash-3.2$ p4 客户 -e 'cobrands.razor12.FIS.prod.20150609_build_01' -bash-3.2$ p4 标签 -e cobrands.razor12.FIS.prod.20150609_build_01 标签 cobrands.razor12 .FIS.prod.20150609_build_01 2015/06/09 '由 snarayan1 创建。 ' -bash-3.2$
  • @BryanPendleton 我得到了一个输出 $ p4 labels -e cobrands.razor12.FIS.prod.20150609_build_01 Label cobrands.razor12.FIS.prod.20150609_build_01 2015/06/09 '由 snarayan1 创建。 ' .你能指导我吗,下一步我该怎么做?

标签: curl jenkins perforce rpm rpmbuild


【解决方案1】:

有趣的是,只有最后一个同步命令有效,而前一个无效。

我认为最好的步骤是联系您的 Perforce 服务器管理员,并获得对 Perforce 服务器日志的访问权限,该日志可用于捕获您对服务器运行的确切命令,以什么顺序以及使用什么参数和配置设置。 (请您的管理员确保已设置 P4LOG,并且“服务器”日志设置至少为 1 级。)

在目前可用的信息有限的情况下,我想到的一些可能性是:

  1. 可能有问题的标签 (cobrands.razor12.FIS.prod.20150609_build_01) 是在作业的中途创建的,因此它在 Jenkins 作业快结束时可用,但在作业的早期不可用。李>
  2. 可能作业中的不同步骤使用了不同的参数和配置设置(P4USER、P4CLIENT 等),因此前面的命令无效,但后面的命令是正确的。

由于相关标签现在可用,但显然在“sync -f @cobrands.razor12.FIS.prod.20150609_build_01”命令失败时可用,标签可能是在发出该命令后创建的。您的服务器日志(以及您的规范库,如果您的服务器管理员已启用它)将允许您了解标签的创建时间以及为什么它不适用于您发出的第一个“sync -f”命令。

【讨论】:

  • 感谢@Bryan Pendleton,将使用我的 perforce 服务器日志进行检查,但仅供参考,这些标签是很久以前创建的,并且长期以来一直驻留在 perforce 服务器中。我们不会在工作中创建这些标签。
  • 检查了 perforce 服务器日志并确认它正在被下载。
  • 嘿 Bryan,我发现了问题 .. 这是我提供的标签名称末尾的错误空白字符。当我修剪输入参数并传递给命令时,它开始工作。非常感谢您的宝贵时间:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
  • 1970-01-01
  • 1970-01-01
  • 2012-09-08
  • 1970-01-01
相关资源
最近更新 更多