我正在做一个有两个任务的Bamboo计划,


从git签出源代码
运行flask(Python)应用程序


当git存储库中发生新提交时,我想在Bamboo中执行上述计划。

我已经按照Bamboo Documentation配置了项目

但是,在执行第二项任务(Python应用程序)之后,Bamboo无法检测到提交更改,也无法执行任务。

仅在所有任务均已停止时有效。

最佳答案

Bamboo本身正在运行Flask应用程序,而不是您的系统。结果,Bamboo构建永远不会结束,并且与此构建计划相关的所有其他Bamboo线程都被锁定。 Bamboo任务通常会一直运行,直到收到退出代码为止,而在Flask应用程序运行时,这永远不会发生。

与其尝试从Bamboo运行代码,不如在Bamboo外部运行flask应用程序。然后,您可以在Bamboo上根据源代码更改触发flask应用程序的重新加载。这将需要:


设置Bamboo检测设置以触发代码更改(有了它,即使当前已被阻止,听起来也可以正常工作)。
在任务中签出源代码-但将其签出到要运行Flask应用程序的目录中。
配置烧瓶应用程序以查看Bamboo外部的此源代码文件夹。更新源代码后,它将重新加载应用程序。 Flask documentation对此进行了解释,但是您也可以使用以下一行代码来做到这一点:


$ FLASK_APP=main.py FLASK_DEBUG=1 python -m flask run


在SO上有几个很好的答案,它们讨论了如何使用最新的代码更改重新加载flask应用程序:

Auto reloading python Flask app upon code changes

How to reload python module in flask?

关于python - Bamboo在运行Flask应用程序时无法检测到存储库提交,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57058949/

10-13 08:43