【问题标题】:How do I transfer Git tags to Heroku from Travis CI?如何将 Git 标签从 Travis CI 传输到 Heroku?
【发布时间】:2024-01-05 09:31:01
【问题描述】:

我正在使用 Gunicorn 在 Heroku 上运行 Python 应用程序。我想显示git describe 的输出以进行版本控制。似乎我的所有 Git 标签都没有从我的 Travis CI 部署推送到 Heroku。

我该怎么做:

答:将我所有的 Git 标签从 Travis 推送到 Heroku,或者

B:从 Heroku 上的远程 Git 存储库中获取所有标签


对于 A,我尝试在 Travis 上运行 git push --tags --force <...>,但 Travis 的 before_deploy 子句无法访问 Heroku 凭据。

对于 B,我尝试在 Heroku 上运行 $ git fetch --tags --prune,得到以下结果:

fatal: Not a git repository (or any parent up to mount point /app)

【问题讨论】:

标签: git heroku travis-ci


【解决方案1】:

我过去看到/使用的模式是在 CI 或构建步骤期间将您想要的 git 详细信息写入部署中的文件。然后从正在运行的应用程序中读取该文件。

所以在 CI/build 中(大概你有 .git 文件夹和 git 命令):

git rev-parse --short HEAD > REVISION

在您的应用中:

def git_revision():
    # Maybe consider memoizing this if you read it a lot
    with open("REVISION") as f:
        return f.read()

【讨论】: