轻松释放Bulding,结合Jira和Git
Braumeister的Python项目详细描述
[![pypi](https://img.shields.io/pypi/v/braumeister.svg)(https://pypi.python.org/pypi/braumeister/)
[![构建状态](https://travis-ci.org/talentsconnect/braumeister.svg?branch=master)(https://travis ci.org/talentsconnect/braumeister)
``无
,--。,---。-。-。-。,---。,-。--- ---____,---。,---。
.-.\.-.\//\\/.-'(.-..-.\
`-'//(_)(_)`-。|`-'/
--。\| ( | __ || | | |(_)\/ | | .-' | | _ \ \ (_) | | .-' | (
| |`-' /| |\ \ | | |)|| `-')|| \ / | | `--.| |( `-' ) | | | `--.| |\ \
/( `--' |_| \)\|_| (_)`---(_)| |\/| | /( __.'`-' `----' `-' /( __.'|_| \)\
(__) (__) '-' '-'(_)()是git和jira用户的候选发布准备工具。
给定一个修复版本,它会收集jira问题中提到的针对该修复版本的git分支,并将它们合并到一个候选发布分支中。
```
配置
您可以在git存储库的根目录中初始化"braumeister",如下:
``sh
`braumeister init
````
`braumeister`将在当前目录中创建一个".braumeister"配置文件。配置可能如下:
``ini
[常规]
详细=false
[jira]
url=https://jira.dev
用户名=my user
密码=secret
目的地转换=merged
分支自定义字段=custom field
```
用户的密码
jira目的地转换无梅金之后票证的工作流转换名称g,如果使用"-u`
jira branch_u custom_field_u id none jira custom field,我们将在以下位置查找配置文件要将以下文件添加到您的`.gitignore`**
```gitignore
.braumeister
release懔state.json
````
jira configuration
jira configuration
`>;`text field(单行)`>;`next`
``
name:branch
description:git branch
```
在下一个屏幕中,您需要将创建的字段分配给一个或多个屏幕。
`branch\u custom\u field\u id`是`customfield\u[id]`而`id`是'c后面url中的数字ustomfieldid=`.
例如:
```无
https://jira.dev/secure/admin/configurecustomfield!default.jspa?custom field id=57111
```
这里,jira自定义字段id是'5711`,因此'branch自定义字段id'的'braumeister'配置是'custom field'u5711`。
我们将搜索包含git分支的已配置自定义字段(例如branch)。
将按如下方式创建释放分支:
````
release/[已清理的释放名称]\u rc`[最新的rc+1]
```
如果"braumeister"发现了同名分支,我们将增加` rc`part带1(带前导零)。第一个发布分支将具有rc`001`.
对于每个这些分支,将执行以下命令:
``sh
$git checkout$branch
$git pull
$git merge origin/master
$git push origin$branch
$git checkout$release戡branch
$git merge origin/$branch
$git branch-d$branch
```
将所有分支合并到release分支后,该分支将被推送到"origin"。
将当前状态转换为"release\u state.json"文件。输出可能是这样的:
```sh
$braumeister-n"吠狗"候选
[*]使用fixversion请求所有问题:吠狗
[+]请求问题:https://jira.dev/rest/api/2/issue/5711
[+]请求问题:https://jira.dev/rest/api/2/issue/5712
[+]请求问题:https://jira.dev/rest/api/2/issue/5713
[+]rc barking dog的最后一个分支是:release/barking_rc_002
[+]从master创建新分支'release/barking_rc_003',设置为从'origin'跟踪远程分支'master'。
h'feature-2'合并
[]合并feature-1…
写入状态json!
将功能合并到release/barking_-dog_rc_003时发生合并错误
请执行以下步骤:
*解决冲突
*提交更改
*使用选项-r
```
再次调用脚本以解决冲突。冲突解决后,您可以使用"-r"重新运行"braumeister",以恢复我们停止的位置。
``sh
$braumeister-n"barking dog"-r candidate
读取状态json!
继续使用feature-1
[]合并feature-1…
[]合并分支"feature-1"
[]合并aff…
[]合并分支"aff"
删除状态json!
[]全部完成。抢占一个
````
[+]从master设置为从"origin"跟踪远程分支"master"。
切换到新分支"release/barking-dog-rc-001"
[\127867;]合并aff…
[\127867;]分支"aff"合并
[\127867;]全部完成。抓取一个
``
sue:https://jira.dev/rest/api/2/issue/5711
[+]rc barking dog的最后一个分支是:release/barking-dog-rc-001
[+]从master创建新分支'release/barking-dog-rc-002'
branch'release/barking-dog-rc-002'设置为从'origin'跟踪远程分支'master'。
切换到新分支'release/barking-dog-rc-002'
[]合并aff…
[]分支'aff'合并
[]全部完成。抓取一个
```
````u`执行'braumeister`也将在所有相关问题上执行配置的转换。
``sh
$braumeister-n"barking dog"-u candidate
[*]使用fixversion请求所有问题:barking dog
[+]请求问题:https://jira.dev/rest/api/2/issue/31300
[+]请求问题:https://jira.dev/rest/api/2/issue/30209
[+]rc barking dog的最后一个分支是:release/barking_rc_004
[+]从master创建新分支'release/barking_rc_005'
branch'release/barking_rc_005'设置为从'origin'跟踪远程分支'master'。
切换到新分支'release/b阿尔金犬_ rc_005'
[]合并功能-1…
[]合并分支"功能-1"
[]合并aff…
[]合并分支"aff"
删除状态json!
在所有相关的JIRA问题上更新合并状态!
---------------------------
请求所有转换:dev-1
将dev-1上的jira状态更新为所需的暂存
---------------------------
请求所有转换:dev-2
将dev-2上的jira状态更新为所需的暂存
[\127867;]全部完成。抢占一个
````
\\\\\\\\\\\\\\\\\\\发布新版本
```sh
$braumeister-n"吠狗"发布
[*]请求所有问题的修复版本:吠狗
[+]请求发布:https://jira.dev/rest/api/2/res/api/2/issue/5711
[+]创建新的分支发布发布新分支发布新版本:创建新的分支发布发布版本:新的分支发布发布版本:https://jira.dev/jira.dev/dev/rest/rest//狗吠声OM MASTER设置为从"原点"跟踪远程分支"MASTER"。
切换到新分支"RELEASE/BARKING U DOG U GA"
[[127867;]合并AFE…
[[127867;]合并分支"AFE"
[[127867;]全部完成。抓取一个
``
这会更改远程存储库,请小心处理!
``sh
$braumeister-n"吠狗"完成
[+]合并分支"释放/吠狗"到源/主
[[127867;]合并释放/吠狗…
[[127867;]分支"释放/吠狗"合并
[[127867;]全部完成。获取一个"cleanup"操作执行"braumeister"时,它将删除"fixversion"中与票据相关的所有分支。
``` sh
$braumeister-n"吠狗"清理
[+]释放吠狗后清理
[[127867;]删除原点/特征俏皮…
[[127867;]删除原点/特征七…
[[127867;]删除原点/特征十一…
[[127867;]再次使用全部清理。抓住一个
```
[![构建状态](https://travis-ci.org/talentsconnect/braumeister.svg?branch=master)(https://travis ci.org/talentsconnect/braumeister)
``无
,--。,---。-。-。-。,---。,-。--- ---____,---。,---。
.-.\.-.\//\\/.-'(.-..-.\
`-'//(_)(_)`-。|`-'/
--。\| ( | __ || | | |(_)\/ | | .-' | | _ \ \ (_) | | .-' | (
| |`-' /| |\ \ | | |)|| `-')|| \ / | | `--.| |( `-' ) | | | `--.| |\ \
/( `--' |_| \)\|_| (_)`---(_)| |\/| | /( __.'`-' `----' `-' /( __.'|_| \)\
(__) (__) '-' '-'(_)()是git和jira用户的候选发布准备工具。
给定一个修复版本,它会收集jira问题中提到的针对该修复版本的git分支,并将它们合并到一个候选发布分支中。
```
配置
您可以在git存储库的根目录中初始化"braumeister",如下:
``sh
`braumeister init
````
`braumeister`将在当前目录中创建一个".braumeister"配置文件。配置可能如下:
``ini
[常规]
详细=false
[jira]
url=https://jira.dev
用户名=my user
密码=secret
目的地转换=merged
分支自定义字段=custom field
```
用户的密码
jira目的地转换无梅金之后票证的工作流转换名称g,如果使用"-u`
jira branch_u custom_field_u id none jira custom field,我们将在以下位置查找配置文件要将以下文件添加到您的`.gitignore`**
```gitignore
.braumeister
release懔state.json
````
jira configuration
jira configuration
`>;`text field(单行)`>;`next`
``
name:branch
description:git branch
```
在下一个屏幕中,您需要将创建的字段分配给一个或多个屏幕。
`branch\u custom\u field\u id`是`customfield\u[id]`而`id`是'c后面url中的数字ustomfieldid=`.
例如:
```无
https://jira.dev/secure/admin/configurecustomfield!default.jspa?custom field id=57111
```
这里,jira自定义字段id是'5711`,因此'branch自定义字段id'的'braumeister'配置是'custom field'u5711`。
我们将搜索包含git分支的已配置自定义字段(例如branch)。
将按如下方式创建释放分支:
````
release/[已清理的释放名称]\u rc`[最新的rc+1]
```
如果"braumeister"发现了同名分支,我们将增加` rc`part带1(带前导零)。第一个发布分支将具有rc`001`.
对于每个这些分支,将执行以下命令:
``sh
$git checkout$branch
$git pull
$git merge origin/master
$git push origin$branch
$git checkout$release戡branch
$git merge origin/$branch
$git branch-d$branch
```
将所有分支合并到release分支后,该分支将被推送到"origin"。
将当前状态转换为"release\u state.json"文件。输出可能是这样的:
```sh
$braumeister-n"吠狗"候选
[*]使用fixversion请求所有问题:吠狗
[+]请求问题:https://jira.dev/rest/api/2/issue/5711
[+]请求问题:https://jira.dev/rest/api/2/issue/5712
[+]请求问题:https://jira.dev/rest/api/2/issue/5713
[+]rc barking dog的最后一个分支是:release/barking_rc_002
[+]从master创建新分支'release/barking_rc_003',设置为从'origin'跟踪远程分支'master'。
h'feature-2'合并
[]合并feature-1…
写入状态json!
将功能合并到release/barking_-dog_rc_003时发生合并错误
请执行以下步骤:
*解决冲突
*提交更改
*使用选项-r
```
再次调用脚本以解决冲突。冲突解决后,您可以使用"-r"重新运行"braumeister",以恢复我们停止的位置。
``sh
$braumeister-n"barking dog"-r candidate
读取状态json!
继续使用feature-1
[]合并feature-1…
[]合并分支"feature-1"
[]合并aff…
[]合并分支"aff"
删除状态json!
[]全部完成。抢占一个
````
[+]从master设置为从"origin"跟踪远程分支"master"。
切换到新分支"release/barking-dog-rc-001"
[\127867;]合并aff…
[\127867;]分支"aff"合并
[\127867;]全部完成。抓取一个
``
sue:https://jira.dev/rest/api/2/issue/5711
[+]rc barking dog的最后一个分支是:release/barking-dog-rc-001
[+]从master创建新分支'release/barking-dog-rc-002'
branch'release/barking-dog-rc-002'设置为从'origin'跟踪远程分支'master'。
切换到新分支'release/barking-dog-rc-002'
[]合并aff…
[]分支'aff'合并
[]全部完成。抓取一个
```
````u`执行'braumeister`也将在所有相关问题上执行配置的转换。
``sh
$braumeister-n"barking dog"-u candidate
[*]使用fixversion请求所有问题:barking dog
[+]请求问题:https://jira.dev/rest/api/2/issue/31300
[+]请求问题:https://jira.dev/rest/api/2/issue/30209
[+]rc barking dog的最后一个分支是:release/barking_rc_004
[+]从master创建新分支'release/barking_rc_005'
branch'release/barking_rc_005'设置为从'origin'跟踪远程分支'master'。
切换到新分支'release/b阿尔金犬_ rc_005'
[]合并功能-1…
[]合并分支"功能-1"
[]合并aff…
[]合并分支"aff"
删除状态json!
在所有相关的JIRA问题上更新合并状态!
---------------------------
请求所有转换:dev-1
将dev-1上的jira状态更新为所需的暂存
---------------------------
请求所有转换:dev-2
将dev-2上的jira状态更新为所需的暂存
[\127867;]全部完成。抢占一个
````
\\\\\\\\\\\\\\\\\\\发布新版本
```sh
$braumeister-n"吠狗"发布
[*]请求所有问题的修复版本:吠狗
[+]请求发布:https://jira.dev/rest/api/2/res/api/2/issue/5711
[+]创建新的分支发布发布新分支发布新版本:创建新的分支发布发布版本:新的分支发布发布版本:https://jira.dev/jira.dev/dev/rest/rest//狗吠声OM MASTER设置为从"原点"跟踪远程分支"MASTER"。
切换到新分支"RELEASE/BARKING U DOG U GA"
[[127867;]合并AFE…
[[127867;]合并分支"AFE"
[[127867;]全部完成。抓取一个
``
这会更改远程存储库,请小心处理!
``sh
$braumeister-n"吠狗"完成
[+]合并分支"释放/吠狗"到源/主
[[127867;]合并释放/吠狗…
[[127867;]分支"释放/吠狗"合并
[[127867;]全部完成。获取一个"cleanup"操作执行"braumeister"时,它将删除"fixversion"中与票据相关的所有分支。
``` sh
$braumeister-n"吠狗"清理
[+]释放吠狗后清理
[[127867;]删除原点/特征俏皮…
[[127867;]删除原点/特征七…
[[127867;]删除原点/特征十一…
[[127867;]再次使用全部清理。抓住一个
```