首页 > 解决方案 > 烧瓶应用程序运行时,Bamboo 无法检测存储库提交

问题描述

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

  1. 从 git 查看源代码

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

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

我已经按照Bamboo 文档配置了我的项目

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

只有在所有任务都停止时才有效。

标签: pythongitflaskcontinuous-integrationbamboo

解决方案


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

与其尝试从 Bamboo 运行代码,不如在竹子之外运行烧瓶应用程序。然后,您可以在源代码更改时从 Bamboo 中触发重新加载烧瓶应用程序。这将需要:

  1. 设置 Bamboo 检测设置以触发代码更改(你有这个,听起来它正在工作,即使它当前被阻止)。
  2. 有一个检查源代码的任务 - 但将其检查到您将运行 Flask 应用程序的目录。
  3. 配置您的烧瓶应用程序以在 Bamboo 之外查看此源代码文件夹。当源代码更新时,它将重新加载应用程序。Flask 文档对此进行了解释,但您也可以使用这一行来做到这一点:
$ FLASK_APP=main.py FLASK_DEBUG=1 python -m flask run

SO上有几个很好的答案,它们介绍了如何使用最新的代码更改重新加载您的烧瓶应用程序:

在代码更改时自动重新加载 python Flask 应用程序

如何在烧瓶中重新加载python模块?


推荐阅读