如何将分支动态部署为 digitalocean 应用程序?

Nan*_*nne 6 deployment yaml digital-ocean gitlab-ci digital-ocean-apps

使用简单的 gitlab-ci,我将 python 脚本部署到数字海洋。ci 文件中的脚本部分如下所示:

/app/doctl apps create --spec my-app.yml

Yaml 文件包含创建应用程序的信息,并且其中包含分支名称。我希望能够使其动态化,例如,如果我在某个分支上运行作业,则部署该分支。目前它总是部署 main,因为它是硬编码在配置中的:

配置的相关部分:

workers:
- environment_slug: python
  gitlab:
    branch: main
    repo: myname/appname
  name: app-name
  run_command: python runcommand.py
Run Code Online (Sandbox Code Playgroud)

我不确定是否可以将分支名称作为环境变量或其他变量?您可以在 yaml 本身中提供变量供以后使用,但据我所知,这并不是为了注入分支名称。

我犹豫是否要创建一个 yaml“模板”并编写一些内容来使用脚本或其他内容解析其中的分支名称,这感觉像是一个肮脏的解决方案?

我想到的另一个“解决方案”是将“主”作为“当前版本”分支,但实际上从不同的分支发布。“部署”分支。在大多数情况下,这相当于主分支,但您可以将一些测试代码推送到该分支。我不太喜欢这个,因为它会混淆该分支包含的内容,而且每次要推送不同的分支时编辑文件会花费更多的工作。

(上面的yaml是digital-ocean应用程序规范,请参阅:https://docs.digitalocean.com/products/app-platform/reference/app-spec/