You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在代码推送时自动为Laravel应用按SemVer规范升级版本

Laravel 自动版本升级(符合SemVer)落地方案

循环触发问题根因及解决

CI提交版本变更后重复触发流水线是该场景的通用问题,直接在CI生成的提交信息中加入Bitbucket官方支持的[skip ci]标识,即可让本次提交跳过流水线触发,从根源避免无限循环。

可选实现方案

方案1:Bitbucket Pipelines 推送触发升级

完全不需要开发人员做本地配置,所有逻辑在云端执行:

  1. 前置配置
  • 为仓库创建专用CI账号,生成具备代码读写权限的应用密码,存储到仓库的安全变量中,命名为BB_CI_TOKEN,禁止硬编码到配置文件。
  1. 流水线配置示例
    在仓库根目录新建bitbucket-pipelines.yml,参考配置如下:
image: php:8.2
pipelines:
  default:
    - step:
        name: 版本自动升级
        script:
          # 配置Git信息
          - git config --global user.name "CI Bot"
          - git config --global user.email "ci@yourteam.com"
          # 拉取最新代码
          - git pull origin $BITBUCKET_BRANCH
          # 过滤CI自身提交
          - if [[ "$BITBUCKET_COMMIT_AUTHOR" == "CI Bot" || "$BITBUCKET_COMMIT_MESSAGE" == *"[skip ci]"* ]]; then exit 0; fi
          # 安装依赖
          - composer install --no-interaction --prefer-dist
          # 按提交类型匹配SemVer升级规则
          - |
            if [[ "$BITBUCKET_COMMIT_MESSAGE" == *"BREAKING CHANGE"* ]]; then
              php artisan version:bump major
            elif [[ "$BITBUCKET_COMMIT_MESSAGE" == *"feat"* ]]; then
              php artisan version:bump minor
            else
              php artisan version:bump patch
            fi
          # 提交版本变更
          - VERSION=$(php artisan version:show)
          - git add config/version.php # 替换为你实际存储版本号的文件路径
          - git commit -m "chore: bump version to v$VERSION [skip ci]"
          - git push https://$BB_CI_TOKEN@bitbucket.org/$BITBUCKET_REPO_FULL_NAME.git $BITBUCKET_BRANCH

方案2:Laravel Forge 部署触发升级

无需额外配置CI,利用Forge现有部署流程执行升级,成本更低:

  1. 打开对应站点的部署脚本编辑页
  2. 在拉取代码的步骤后,插入版本升级逻辑,和上述Pipelines的升级逻辑完全一致
  3. 提交版本变更时同样携带[skip ci]标识
    该方案优势是版本升级和部署动作绑定,不会出现版本升级成功但部署失败的不一致问题。

多分支版本号统一规则

  • 建议将版本升级触发范围限制在默认主分支,其他开发分支合并主分支代码时自动同步最新版本号,避免多分支并行升级出现版本号冲突
  • 如有全分支升级需求,可在升级逻辑后添加自动同步步骤:给所有活跃开发分支提交版本更新的Pull Request,由分支负责人合并即可保证版本统一

内容的提问来源于stack exchange,提问作者vasilaou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 10:15:04