【发布时间】:2021-01-23 12:50:12
【问题描述】:
我对 SCONS 上的构建过程有一个简单但不明显的要求。
我需要输入以下命令:
scons release [version]
预期结果
这应该做的是:
- 激活一个名为 release 的目标。
- 捕获释放参数后不久传递的参数。
- 作为目标的一部分,执行一个函数。如果释放目标后传递的参数有效,则调用另一个目标。
- 如果无效,请中断工作流并显示错误消息。
问题
我不知道如何设置它
我目前的假设是:
- 使用两个操作创建自定义构建器。
- 第一个动作应该是一个 python 函数,它能够以某种方式停止进程,以防其逻辑如此决定。
- 第二个操作应该调用默认构建器,因为如果第一个操作决定可以继续,则应该执行默认构建器。
- 创建一个指向这个名为 release 的自定义构建器的目标。
我需要做的是创建一个工作流,其中一些逻辑作为目标的一部分执行,并决定是否应该执行另一个逻辑。
但我不知道按照我的想法是否可行,并且我错过了一些我不知道从哪里获得的知识:
- “发布”目标不是输入文件。相反,它是执行由不同操作组成的工作流的触发器。如何告诉 SCONS “release”参数不是文件?
- 如何捕获在“release”参数之后输入的下一个参数?这是发布号,“发布”目标应使用它来验证内容。 Pseldocode 将是:
def releaseTarget(wantedRelease):
if wantedTarget == "":
interruptHere()
- 如何中断工作流,防止下一个动作被执行?
- 如何将默认操作链接为工作流中的下一个操作?
我想知道我应该从哪里开始在 scons 上寻找这种功能。
【问题讨论】: