前提条件是 SVN 工作正常,没有的先安装VisualSVN和tortoisesvn 并且配置好。
svn相关命令行
svn commit -m “测试命令行上传” taa.txt (-m 后面跟双引号,里面是上传log 后面在跟上传的文件或者目录)
svn commit -m “测试命令行上传全部文件” * (上传全部文件)
svn commit -m “测试命令行上传” 测试目录/* (上传目录下面所有文件)
svn add * (添加所有文件)
svn add 文件夹名(添加文件)
svn update (当前目录下所有文件及文件夹更新)
svn update taa.txt (更新单个文件)
svn update -r 3 taa.txt (更新到某个版本)
svn cleanup (解锁)
svn revert taa.txt(还原单个文件)
svn revert * (还原所有文件)
在Jenkins中调用unity函数进行Win打包
按照之前设置,新增一个PC打包任务,改动的地方主要是 高级选项中的 使用自定义工作空间,将SVN拉下来的路径填入。
在Build 中 输入批处理命令:
svn cleanup %one% 取值:路径,或者直接填工程目录路径也行
svn revert %one%
svn update %one% --username xxx --password xxx
调用unity内方法:
unity中类BuildEditor定义了一个静态函数BuildWin
在build 内新添加unity3dEditor(没下载的需要下载插件),将下列代码填入Editor command line arguments
-projectpath %one% -quit -batchmode -executeMethod BuildEditor.BuildWin -logFile "D:\log.txt"
-projectpath: 工程路径
-quit: 执行完毕后退出unity编辑器
-batchmode: 执行时不会出现unity编辑器的界面
-executeMethod: 方法
在bat中单独执行的方法:
unity.exe 路径假设为xxx
工程路径为 g:sss
unity中类TestEditor定义了一个静态函数JenkinsTest
cd xxx Unity.exe -projectpath g:sss -quit -batchmode -executeMethod TestEditor.JenkinsTest -logFile "D:\log.txt"
归档压缩
打包完成后,要打包压缩,用winRAR软件压缩
把g盘下的aa文件夹,压缩,压缩文件叫aa.rar (进入rar 安装目录下执行)
Winrar.exe a -r -ep1 "g:aa.rar" "g:aa"
执行压缩时,要知道打包后的文件夹名字,这个可以通过bat 得到。
设置归档后,会自动把压缩文件 复制一份到jenkins 安装目录的builds加下某处。这点需注意。不建议使用这个功能,自己在bat里写不香吗
Jenkins 参数传入unity
例如上图所示,将本次打包版本号传入。
unity拿到参数:
修改上述 命令:
-projectpath %one% -quit -batchmode -executeMethod BuildEditor.BuildWin Version=$Version -logFile "D:\log.txt"
Version=$Version
Unity 获取到命令行内参数:
string[] paremeters = Environment.GetCommandLineArgs();
foreach (var item in paremeters)
{
if (item.StartsWith("Version"))
{
var info = item.Split(new string[] { "="},StringSplitOptions.RemoveEmptyEntries);
string Version = info[1]; //拿到版本信息
}
}
拿到参数 进行设置,具体百度。
Jenkins 安装目录简介: