【问题标题】:Adding version in my Laravel App automatically自动在我的 Laravel 应用中添加版本
【发布时间】:2021-12-21 08:34:49
【问题描述】:

我想在任何分支中推送一些新代码时自动在我的 Laravel 应用上添加一个版本,最好使用 SemVer 约定。

我找到了诸如 https://github.com/antonioribeiro/version 之类的软件包,虽然这确实解决了实际上拥有一致的版本控制系统的问题,但我无法找到一种自动化流程的方法。

更具体地说,我希望在将更改推送到存储库时升级版本,理想情况下,这应该在所有分支中保持一致。

此外,我希望此解决方案适用于团队中的所有开发人员(因此最好没有本地配置)。

目前我使用 bitbucket 进行 repo 托管,使用 Laravel Forge 进行开发。

我认为 Bitbucket Pipelines 会有用,但我想不出它是如何工作的。我遇到的主要问题是,如果我使用 bitbucket 升级版本,然后自动提交并推送它,那么这将触发另一个升级版本的循环等等。

所以理想情况下,我想要以下工作流程:

  • 已提交更改
  • (App version bump) //这可能发生在这里
  • 新更改已推送
  • (App version bump) //或者这里

我可能想多了,有没有人遇到过同样的情况/有什么想法?

谢谢

【问题讨论】:

    标签: laravel git bitbucket versioning


    【解决方案1】:

    您可以使用您提到的库。 它提供了一个用于增加 semver 版本的脚本,可以在每次提交之前执行。

    安装依赖:

    composer require pragmarx/version
    php artisan vendor:publish --provider="PragmaRX\Version\Package\ServiceProvider"
    

    进入创建的config/version.yml,将mode设置为increment

    例如,您可以创建一个脚本.scripts/commit.sh,如下所示:

    #!/bin/bash
    
    php artisan version:patch
    git add config/version.yml
    git commit -m $1
    
    

    当您准备好提交时,只需添加您要推送的文件并调用 ./commit.sh "My commit message" 即可获得补丁版本。

    您可以扩展该脚本以供进一步使用(例如,实现版本的哪个部分应递增 [major,minor,patch] 的参数)或使用git-hooks

    【讨论】:

    • 谢谢@Tobias,这很有用。但是,我看不出这在许多不同的开发人员之间是如何工作的——当然,除非他们都使用相同的脚本。在这种情况下,虽然这意味着无法选择要提交的特定更改。可能还有什么想法?
    • 嘿@vasilaou,我更新了我的答案,使其更加精确。如果您需要一个快速的解决方案,这应该可以正常工作,即使有多个开发人员。如果您需要更高级的版本,您应该查看githooks.compre-commit 钩子。
    • 嗨@Tobias,这现在真的很有帮助!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    相关资源
    最近更新 更多