Files
documents/release_stable.md

128 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Linx6.0.42.41发布方法说明文档 #
## 1 引言 ##
### 1.1 概述 ###
本文档为发布Linx6.0.42.41系统正式版的发布方法说明文档。主要介绍发布正式版的发布方法及发布方法的实现说明。以便实施人员执行发布正式版,及了解发布的实现流程。
### 1.2 适用范围 ###
本文档适用于Linx6.0.42.41系统的发布基于Linx6.0.42.41自动编译系统实现的发布方法。
此发布新版本的方法需在搭建好的自动编译环境中才可使用。
### 1.3 参考资料 ###
【1】《搭建4.2自动编译环境说明》V0.1,徐顺选
## 2 发布Linx6.0.42.41 ##
### 2.1 版本正式发布介绍 ###
Linx6.0.42.41自动编译系统通过每天零点检测4.2的各个git库主线是否有新提交来决定是否进行编译出盘。每次git库的merge都为修复bug、升级系统包版本或者添加系统包。故每过一段时间需要发布一版正式版本的系统。故编写相应的便于发布正式版的程序来实现此需求。
此发布程序的基本实现过程简介:
1.检测要发布日期版本的系统盘是否存在;
2.制作新版发布版与上一版发布的升级包集合留存;
3.添加发布目录到服务器的stable-iso中;
4.提交新发布日期的tag;
5.获取新版发布与上一版之间的log提交及log对应的bug摘要;
6.制作markdown文件并转为pdf文档和html文件;
7.发送邮件通知。
### 2.2 版本正式发布准备 ###
发布版本为dailybuild发布的其中一版。此次说明为以172.16.0.250服务器为示例说明服务器、以服务器上的虚拟机172.16.250.122为运行环境。用到的服务器中的内容为:所有包的集合/home/builder/x86_64以日期为分组制作光盘的取包池daily-build的发布版目录获取其中的发布盘及log等以服务器发送邮件通知。
#### 2.2.1 代码库准备 ####
此新版发布的程序需要在4.2自动编译环境中执行。release_stable相关的发布程序均已添加到autobuild-tools的git库中。此外还需debian8.0的最小环境用于使用pandoc完成markdown转换。
autobuild-tools工具集合库下载
```
git clone http://gitlab.rd.in.linx/linx6.0.42/autobuild-tools.git
```
debian8.0最小环境下载:
```
wget http://172.16.0.85/chroot-env/base-jessie_amd64.cow.xz
```
解压后的debian8.0最小环境中还需添加pandoc需要的转换工具,下载:
```
git clone git@gitlab.rd.in.linx:linx6.0.42/progit.git
```
关于debian8.0最小环境中的pandoc使用配置请参阅《搭建4.2自动编译环境说明》。
由于在debian8.0中除了pandoc处理文件还使用其对获取git log信息做处理故需要在debian8.0最小环境中添加安装包python-requests。可以通过python的此模块获取bugzilla中的信息。
```
apt-get install python-requests
```
#### 2.2.2 使用说明 ####
1.release_stable.sh发布新版。
根据日常检测编译中的日期,创建新发布版示例:
```
./release_stable.sh 2015-01-23-005001 2015-05-29-141155
```
(说明:后面的日期参数为日常检测目录中的日期/home/builser/x86_64:第一个日期为上次发布版的日期,第二个日期为本次发布的日期)
release_stable.sh中调用getupdate.sh,用于创建新发布版与上一版本之间的pkg升级包集合。生成的update包集合在home/builder/stable-iso/isoUpdates中。
2.getupdate.sh:获得/home/builder/x86_64目录下的两个时间检测点之间的升级包集合。若两个时间点之间同一个包有两个版本做过两次修改或升级则只将高版本的包取出。
使用示例:(后面的日期参数为日常检测目录中的日期/home/builser/x86_64)
```
./getupdate.sh 2015-01-23-005001 2015-05-19-092752
```
正常运行结果:在/home/builder/x86_64/isoUpdates中生成两个时间点间升级或修改的所有包的tar包。
## 3 新版发布实现说明 ##
### 3.1 实现流程 ###
运行发布脚本release_stable.sh后即会检测发布对应的两个日期对应的daily-build前一个日期对应的daily-build发布为前一次正式版发布的日期后一个日期对应的daily-build发布为此次新版发布的日期。检测发布日期的daily-build是否存在里面是否有*.iso文件等。
检测存在之后则会创建新版发布的目录。添加软链接指向daily-build中要发布的日期
接下来,则是对新版发布的界面、信息记录、升级包集合等的处理:
* 调用getupdate.sh处理/home/builder/x86_64目录中的发布日期之间的升级包获取各升级包的最高版本集成升级包集合存放到发布界面的同级目录isoUpdates中
* 提交新发布时的各个git库的tag;
* 获取自上次发布至本次发布之间的所有的git log通过集合两次日期之间的所有日期的每一次git提交信息获得在daily-build中均存在此记录
* 通过处理获得的git log集合获得符合markdown格式的发布说明文档
* 将markdown文档传送到debian8.0的最小环境中使用pandoc进行处理生成html文件及pdf文档发回到发布目录下
* 发布页面及发布文档等已完成调用send_mail在服务器上发送邮件说明通知。使用的发送邮件的包为heirloom-mailx配置发送邮件发件人/etc/nail.rc 最后添加set from=sxxu@linx-info.com
### 3.2 注意事项 ###
由于目前发布内容,文档等还需修改完善,故有时发布需要反复测试。测试注意:
关于提交git库的tag默认release_stable.sh脚本中是注掉的。由于多次测试发布内容及生成文档不能每次都提交相同日期的tag。
正式发布时需要将release_stable.sh中的main中关于调用提交tag的两行前面的“#”去掉。
## 4 结束 ##