jenkins自动编译成测试版本及发布版本使用说明
1. 设置Jenkins
Ø http://192.168.2.121:8081/view/x51---%E5%86%85%E9%83%A8%E7%BC%96%E8%AF%91%E5%8F%8A%E5%8F%91%E5%B8%83/job/x51_auto_build/左边点击设置,
Ø 在右侧的项目名称下面的描述中加上工具名称及ab上传目录,如图:
Ø 在choice下面添加工具名称,如图:
Ø 在构建下面的命令中加入:
2. 创建上面的py脚本文件,路径:E:\engeneer\x51_8188\Code\InternalUse\JenkinsJobScript
(1)二进制目录输出路径:
(2)版本文件,这里没有引擎版本,所以如图设置即可:
(3)依赖文件,这里没有,所以[]中没有东西:
(4) 需打包的目录,这里不需要resources,所以,只写bin_path
(5)ab上路径,在x51_test分支下,路径alienbrain://H3D-AB02/QQX5_Mainland/exe/其他工具/美术配置工具
(6) 发布时,获取的包存放位置
其中,最后一个改为“美术配置工具”即可
(7)buildConfig中加入所有需要编译的工程,这里只有一个:
(8)pre_name = "51_xmlExporter"与E:\engeneer\x51_8188\exe\jenkins\pack_check中文件名称有联系,截取’51_’后面的名称,再加上’_dirtree.txt’:
(9)发布路径,alienbrain://H3D-AB02/X51_SourceBase/engine_release/2016年/其他工具/策划工具/周配置工具:
(10)修改版本号,这里没有引擎版本号,所以这样写就可以了:
3. 创建上面所说的E:\engeneer\x51_8188\exe\jenkins\pack_check里的文件xmlExporter_dirtree.txt,内容包含最后发布的包里的需要的文件,去除掉不需要的文件,如下所示。里面的路径都是相对于E:\engeneer\x51_8188\exe\目录,所以工程文件及上面的输出文件都应该设为该目录。
4. 测试
(1)打开链接http://192.168.2.121:8081/view/x51---%E5%86%85%E9%83%A8%E7%BC%96%E8%AF%91%E5%8F%8A%E5%8F%91%E5%B8%83/job/x51_auto_build/build?delay=0sec,
(2)在右侧选择svn分支为8188和所要编译的项目为x51美术配置工具,与步骤1中配置的名称一致,点击“开始构建”按钮即开始构建。
(3)左侧如下所示:
,点击(4)向下箭头,选择console output,在右侧就会看到编译的信息,如图所示
(5)编译完成后,出现success提示:
jenkins自动编译成测试版本及发布版本使用说明
1. 设置Jenkins
Ø http://192.168.2.121:8081/view/x51---%E5%86%85%E9%83%A8%E7%BC%96%E8%AF%91%E5%8F%8A%E5%8F%91%E5%B8%83/job/x51_auto_build/左边点击设置,
Ø 在右侧的项目名称下面的描述中加上工具名称及ab上传目录,如图:
Ø 在choice下面添加工具名称,如图:
Ø 在构建下面的命令中加入:
2. 创建上面的py脚本文件,路径:E:\engeneer\x51_8188\Code\InternalUse\JenkinsJobScript
(1)二进制目录输出路径:
(2)版本文件,这里没有引擎版本,所以如图设置即可:
(3)依赖文件,这里没有,所以[]中没有东西:
(4) 需打包的目录,这里不需要resources,所以,只写bin_path
(5)ab上路径,在x51_test分支下,路径alienbrain://H3D-AB02/QQX5_Mainland/exe/其他工具/美术配置工具
(6) 发布时,获取的包存放位置
其中,最后一个改为“美术配置工具”即可
(7)buildConfig中加入所有需要编译的工程,这里只有一个:
(8)pre_name = "51_xmlExporter"与E:\engeneer\x51_8188\exe\jenkins\pack_check中文件名称有联系,截取’51_’后面的名称,再加上’_dirtree.txt’:
(9)发布路径,alienbrain://H3D-AB02/X51_SourceBase/engine_release/2016年/其他工具/策划工具/周配置工具:
(10)修改版本号,这里没有引擎版本号,所以这样写就可以了:
3. 创建上面所说的E:\engeneer\x51_8188\exe\jenkins\pack_check里的文件xmlExporter_dirtree.txt,内容包含最后发布的包里的需要的文件,去除掉不需要的文件,如下所示。里面的路径都是相对于E:\engeneer\x51_8188\exe\目录,所以工程文件及上面的输出文件都应该设为该目录。
4. 测试
(1)打开链接http://192.168.2.121:8081/view/x51---%E5%86%85%E9%83%A8%E7%BC%96%E8%AF%91%E5%8F%8A%E5%8F%91%E5%B8%83/job/x51_auto_build/build?delay=0sec,
(2)在右侧选择svn分支为8188和所要编译的项目为x51美术配置工具,与步骤1中配置的名称一致,点击“开始构建”按钮即开始构建。
(3)左侧如下所示:
,点击(4)向下箭头,选择console output,在右侧就会看到编译的信息,如图所示
(5)编译完成后,出现success提示:
build_scrpt_for_weekly_tool.py
#!python.exe
#coding=gbk
import os
import sys
import time
from exec_units import *
# begin ------------------------------ 项目相关配置 ---------------------------------------
#编辑器版本号
version = [1,3, 0 if svn_branch else versionId, revisionId]
# 引擎版本号
eng_version = version[0:]
eng_version[1] = 2
# 二进制目录
bin_path = os.path.join(root_dir, r'exe\周配置工具')
# 版本文件(修改版本号使用)
# ------- 1. 该版本文件
version_files = map(lambda x: os.path.join(root_dir, x),
[
r'Code\AssistTool\PlanerTools\AtfWeeklyConfigTool\AtfWeeklyConfigTool\Properties\AssemblyInfo.cs']
)
# 依赖文件(拷贝依赖文件时使用)
# --------- 2. 依赖文件的路径
dependece_files = map(lambda x: os.path.join(root_dir, x),
[]
)
# 需打包的目录
need_packet_dirs = [bin_path]
db_path = '/exe/其他工具/周配置工具'
# 发布时,获取的包存放位置
# ---6
packet_path = r'D:\code_hudson\编辑器打包\压缩包\周配置工具'
editor_build_config = {
"sln_path":map(lambda x: os.path.join(root_dir, x), [r'Code\AssistTool\PlanerTools\AtfWeeklyConfigTool\AtfWeeklyConfigTool.sln',
]),
"build_type":["rebuild", "rebuild /maxcpus=8", "rebuild"],
"build_cfg": ['Release|Mixed Platforms']
}
pre_name = "51_WeeklyConfigTool"
publish_ab_path = '/engine_release/' + time.strftime('%Y') + '年/' + "其他工具/策划工具/周配置工具/" + time.strftime('%Y.%m.%d')
# end ------------------------------ 项目相关配置 ---------------------------------------
def build():
# 修改版本号
ChangeVersion(version_files, version)
# 清除二进制目录只读属性
ClearReadOnlyAttrib(bin_path)
# 编译编辑器
Compile(editor_build_config)
# 拷贝依赖
CopyDependFile(map(lambda x:(x, bin_path), dependece_files))
# 打包
Packet(need_packet_dirs, bin_path, pre_name, version)
# 上传Ab
LogAB(user, passwd or "", ab_test_server, ab_test_proj, ab_test_branch)
CommitToAB(db_path, bin_path, GetPackFileName(pre_name, version), comment)
LogoffAB()
def publish():
# 上传符号文件, 删除符号文件
DumpSymbols(bin_path)
# 登陆ab
LogAB(user, passwd or "", ab_test_server, ab_test_proj, ab_test_branch)
# 获取包
GetPackFromAb(db_path + "/" + GetPackFileName(pre_name, version), packet_path + "/" + GetPackFileName(pre_name, version))
LogoffAB()
# 登陆发布ab
LogAB(user, passwd or "", ab_publish_server, ab_public_proj)
# 创建ab目录
EnsureFolderOnAB(publish_ab_path)
# 发布至ab
CommitToAB(publish_ab_path, packet_path, GetPackFileName(pre_name, version), comment)
# 删除本地包
DelPack(packet_path)
LogoffAB()
# 写入上传位置
RecordUpLoadPlace(record_upload_file_name, publish_ab_path)
if __name__ == "__main__":
build_type = os.getenv("build_type")
if(build_type == "compile"):
try:
build()
except:
info=sys.exc_info()
print info[0],":",info[1]
raise
finally:
# 回滚版本文件
RevertFile(version_files)
# 删除本地包
DelPack(bin_path)
else:
publish()
WeeklyConfigTool_dirtree.txt只包含最简包中的必须的文件,用来发布
\周配置工具\Aspose.Cells.dll
\周配置工具\Atf.Core.dll
\周配置工具\Atf.Gui.dll
\周配置工具\Atf.Gui.WinForms.dll
\周配置工具\SharpDX.Direct2D1.dll
\周配置工具\SharpDX.dll
\周配置工具\SharpDX.DXGI.dll
\周配置工具\WeifenLuo.WinFormsUI.Docking.dll
\周配置工具\AtfWeeklyConfigTool.exe
\周配置工具\AtfWeeklyConfigTool.exe.config
\周配置工具\AtfWeeklyConfigTool.vshost.exe