如何最好地进行 bitbucket 管道自动版本控制?

How best to do bitbucket pipeline automatic versioning?

这几天在工作中,有人问我是否可以进行自动化管道版本控制。

经过研究,我发现了一些使用日期版本控制的示例,例如:2021.21.09.153507

执行版本控制的 sh:

git pull --rebase origin dev
npm install -g json

year=$(date +'%Y')
month=$(date +'%m')
day=$(date +'%d')
hours=$(date +'%H')$(date +'%M')$(date +'%S')

newVersion="$year.$month.$day.$hours"
json -I -f package.json -e "this.version=\"$newVersion\""

git add package.json
git commit -m "[skip ci]"
git push origin dev

这个解决方案一切顺利,但我们总是使用语义如下的版本控制手册:1.0.0

是否可以识别哪个分支正在合并,从而根据提交中的某些标记创造条件来增加版本?

查看 this doc

Bitbucket Pipelines 提供一组可用于构建的默认变量,并可在脚本中使用。值包括 BITBUCKET_BRANCH(源分支)、BITBUCKET_PR_DESTINATION_BRANCH(拉取请求目标分支)、 BITBUCKET_TAGBITBUCKET_COMMIT 和许多其他人。

此外,根据我自己的经验,我可以看出 link 提供的列表并不详尽 - 还有更多潜在的有趣变量可用于您的构建,但由于某种原因未记录在案。 运行 printenv 您管道中的某处会完整显示它们。