我们维护了一个叫做api-parent的项目,作用类似于spring-boot-parent,用于存放并控制各个jar包的版本.原先每次版本升级都是开发同学手动去维护,因为版本多/人多等原因,这里经常冲突出问题,所以就想把升版本的操作写进jenkinsfile里面,让脚本去维护.
increment_version (){
declare -a part=( ${1//\./ } )
declare new
declare -i carry=1
for (( CNTR=${#part[@]}-1; CNTR>=0; CNTR-=1 )); do
len=${#part[CNTR]}
new=$((part[CNTR]+carry))
[ ${#new} -gt $len ] && carry=1 || carry=0
[ $CNTR -gt 0 ] && part[CNTR]=${new: -len} || part[CNTR]=${new}
done
new="${part[*]}"
new_version=${new// /.}
echo "${new_version}"
}
increment_version $1