【问题标题】:Buildbot Triggerable Scheduler and working dir relationBuildbot 可触发调度程序和工作目录关系
【发布时间】:2017-01-26 23:20:55
【问题描述】:

尝试在 buildbot 9 (0.9.1) 中设置一个可触发调度程序,但我认为我误解了它应该如何工作。 我有两个建设者:

  • 编译器生成器
  • 包生成器

CompilerBuilder 的最后一步是触发步骤:

steps.Trigger (schedulerNames=['package'],
               waitForFinish=True)

主配置文件有一个可触发的调度器:

c['schedulers'].append(schedulers.Triggerable(
    name="package", 
    builderNames=['package']))

我想要达到/期望的目标

  • SingleBranch Scheduler 启动 CompilerBuilder
  • 当 CompilerBuilder 到达最后一步时,PackageBuilder 被触发,所以新编译的软件被打包。

真正发生的事情

  • SingleBranch Scheduler 启动 CompilerBuilder
  • 当 CompilerBuilder 到达最后一步时,PackageBuilder 被触发

...到目前为止一切顺利,不幸的是,PackageBuilder 是在与已签出和编译代码的工作目录不同的工作目录中启动的,因此包创建过程失败。

我的理解是触发构建器将在“调用”构建器的同一工作目录中运行,但我认为我不理解如何正确配置构建器/调度器。

有什么提示吗?

【问题讨论】:

  • 为什么不通过属性传递工作目录?
  • @ayaye 可能是一种选择,但我真的很想了解它应该如何工作。我希望工作目录在构建器之间从触发器“隐式”传递到触发。否则我无法弄清楚用例
  • 一般来说,这些构建器有不同的工作目录。例如,第一个构建库,第二个构建依赖于该库的其他组件。显然,它们有不同的工作目录。
  • @ayaye 如果您将您的 cmets 总结为答案,我将标记为我的问题的有效解决方案。

标签: buildbot


【解决方案1】:

不幸的是,每个构建器都有自己的工作目录。我建议使用带有包步骤列表的 addSteps(不是 addStep)作为单分支调度程序构建器的一部分。如果您不总是想打包,请添加带有一些附加逻辑的 doStepIf。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 2018-06-15
    • 2017-11-13
    • 2014-07-30
    相关资源
    最近更新 更多