Bamboo在运行Flask应用程序时无法检测到存储库提交

时间:2019-07-16 13:54:32

标签: python git flask continuous-integration bamboo

我正在执行一项有两个任务的Bamboo计划,

  1. 从git中签出源代码

  2. 运行烧瓶(Python)应用程序

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

我已经按照Bamboo Documentation

配置了项目

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

仅在所有任务都停止时起作用。

2 个答案:

答案 0 :(得分:0)

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

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

  1. 具有Bamboo检测设置以触发代码更改(您已经有了它,即使当前已被阻止,听起来也可以正常工作)。
  2. 在任务中签出源代码-但将其签出到将要运行Flask应用程序的目录中。
  3. 配置烧瓶应用程序以查看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?

答案 1 :(得分:0)

在Bamboo内使用docker解决。工作正常。

执行以下操作。

  • 从存储库中签出源代码

  • 在Bamboo中作为任务创建docker容器

  • 使用Bamboo运行docker容器。

通过docker文件安装了python依赖项