我对Bitbucket Pipelines很新,我遇到了一个问题 . 我正在创建一个管道,将我们的Spring Boot应用程序的新版本(在Kubernetes集群中运行)部署到我们的测试环境中 . 我遇到的问题是我们的docker构建版本 . 我们的版本控制设置如下:
alpha_0.1
alpha_0.2
beta_1.0
gamma_1.0
gamma_1.1
因此,每次次要更新/错误修复都会使内部版本号增加0.1,并且主要更新会将版本增加1.0,每次主要更新都会获得新版本名称 .
目前我有下一个设置:
image: java:8
options:
docker: true
branches:
master:
- step:
caches:
- gradle
script:
- ./gradlew test
- ./gradlew build
- docker build -t <application_name>/<version_name>_<version_number>
在bitbucket管道中包含version_name和version_number的最佳方法是什么?到目前为止,我们运行了ruby脚本,允许用户输入版本编号,但bitbucket管道不是交互式的 .
2 回答
假设
alpha_0.1
等是标记,并且如果标记了提交,则管道运行,您可以获取当前提交的标记,如下所示:然后,您可以使用自己喜欢的语言或命令行工具从标记中创建
<version_name>
和<version_number>
.export
标签作为shell变量可以在脚本中使用它 .这是我拥有的
shippable.yml
文件之一,随意将其改编为Atlassian
的pipelines.yml
和Gradle
:我的项目版本(在
pom.xml
中)设置为0-SNAPSHOPT
这也使用
Spotify
的Maven
插件来构建Docker镜像而不是docker build -t ...