【发布时间】: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