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

如何将Git注释标签版本同步至build.sbt并结合GitHub Actions发布

同步Git注释标签版本到build.sbt的两种方案

方案一:本地脚本自动更新build.sbt并打标签

适合希望仓库中build.sbt的版本与Git标签保持一致的场景,通过脚本完成版本替换、提交、打标签的全流程:

  1. 创建一个名为release.sh的脚本,内容如下:
#!/bin/bash
if [ -z "$1" ]; then
  echo "Usage: $0 <version-number>"
  exit 1
fi

VERSION=$1

# 替换build.sbt中的两个模块版本号
sed -i.bak "s/val module1Version = \"[^\"]*\"/val module1Version = \"$VERSION\"/" build.sbt
sed -i.bak "s/val module2Version = \"[^\"]*\"/val module2Version = \"$VERSION\"/" build.sbt
rm build.sbt.bak

# 提交版本更新
git add build.sbt
git commit -m "Bump version to $VERSION"

# 创建注释标签并推送
git tag -a v$VERSION -m "Release version $VERSION"
git push origin main  # 替换成你的主分支名
git push origin --tags
  1. 给脚本添加执行权限:
chmod +x release.sh
  1. 执行脚本完成发布:
./release.sh 2.2.2

运行后,build.sbt中的版本会被替换为2.2.2,该修改会被提交,同时创建对应的注释标签并推送到远程仓库。


方案二:GitHub Actions动态注入版本(无需修改仓库文件)

适合不想每次发布都修改并提交build.sbt的场景,通过CI流程从Git标签提取版本,动态覆盖build.sbt中的默认版本:

  1. 修改build.sbt,让版本支持从系统属性读取:
val defaultVersion = "0.0.1-SNAPSHOT"
val module1Version = sys.props.getOrElse("module.version", defaultVersion)
val module2Version = sys.props.getOrElse("module.version", defaultVersion)
  1. 编写GitHub Actions工作流文件(如.github/workflows/release.yml):
name: 发布构建

on:
  push:
    tags:
      - 'v*'  # 仅在推送v开头的标签时触发

jobs:
  build-and-publish:
    runs-on: ubuntu-latest
    steps:
      - name: 拉取代码
        uses: actions/checkout@v4

      - name: 从标签提取版本号
        run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV

      - name: 配置Scala环境
        uses: actions/setup-java@v4
        with:
          distribution: 'temurin'
          java-version: '17'  # 替换为你的项目所需Java版本

      - name: 构建并发布
        run: sbt -Dmodule.version=$VERSION publish

当你推送v2.2.2标签到远程仓库时,GitHub Actions会自动触发构建,提取版本号2.2.2并注入到sbt构建中,此时build.sbt中的模块版本会被替换为标签对应的版本,无需修改仓库中的build.sbt文件。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:31:04