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

Bamboo Can not detect repository commit when flask application is running

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

  1. 从 git

  2. 查看源代码
  3. 运行烧瓶(Python)应用

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

我已经按照 Bamboo Documentation

配置了我的项目

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

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

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

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

  1. 设置 Bamboo 检测设置以在代码更改时触发(你有这个并且听起来它正在工作,即使它当前被阻止)。
  2. 有一个签出源代码的任务 - 但将其签出到您将要 运行安装 Flask 应用程序的目录。
  3. 配置您的 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

通过在 Bamboo 中使用 docker 解决。工作正常。

完成以下操作。

  • 从存储库中检出源代码

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

  • 运行 docker 使用竹子的容器。

已使用 docker 个文件安装 python 个依赖项