#!/bin/sh FILE="Cargo.toml" # 检查 pyproject.toml 是否被修改 VERSION_CHANGED=$(git diff --cached "$FILE" | grep -E '^\+version =') if [ -n "$VERSION_CHANGED" ]; then echo "Cargo.toml 文件中的版本号已被修改,无需手动更新版本号。" exit 0 fi LOCK_FILE="Cargo.lock" # 读取当前版本号 CURRENT_VERSION=$(grep -E '^version' $FILE | awk -F'"' '{print $2}') echo "current version: $CURRENT_VERSION" # 检查是否找到版本号 if [ -z "$CURRENT_VERSION" ]; then echo "Error: version field not found in $FILE." exit 1 fi # 将版本号分解为主版本号、次版本号和修订号 MAJOR=$(echo $CURRENT_VERSION | cut -d '.' -f1) MINOR=$(echo $CURRENT_VERSION | cut -d '.' -f2) PATCH=$(echo $CURRENT_VERSION | cut -d '.' -f3) # 自动加一修订号 PATCH=$((PATCH + 1)) # 构造新的版本号 NEW_VERSION="$MAJOR.$MINOR.$PATCH" echo "new version: $NEW_VERSION" # 使用 sed 命令更新版本号 sed -i.bak "s/\(^version = \"\)[^\"]*\(\"\)/\1$NEW_VERSION\2/" "$FILE" rm "${FILE}.bak" cargo update # 将修改添加到暂存区 git add "$FILE" git add "$LOCK_FILE" # 提醒用户版本号已更新 echo "Version incremented to $NEW_VERSION" # img build -t hub.airpig.cn/library/sched_task:$NEW_VERSION . # img push hub.airpig.cn/library/sched_task:$NEW_VERSION # img rmi hub.airpig.cn/library/sched_task:$NEW_VERSION # echo "镜像已更新"