记录Jenkins使用的知识点和问题笔记

钉钉插件通知

之前Jenkins的版本是2.264,然后安装了dingdingtalk 插件后在全局设置中,无法正常显示,应该是安卓GUI界面显示不全导致的,然后去插件的Hub中查Q&A,有人提到过这个问题,目前只能用2.263版本以下的。所以只能回退到这个版本,正常使用了。

自动定时构建

H 8 * * * :为每日8点自动构建
每2小时构建一次:H H/2 * * *
在这里插入图片描述
Build periodically:任务周期性进行项目构建,这个是到指定的时间必须触发构建任务(无论SVN中数据有无变化,均执行定时化的构建)

Poll SCM:
1.Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作(定时轮询SVN,查看SVN中是否有数据变化,如果有变化,则执行构建任务)
2.如果我想每隔5分钟检查一次源码变化,有变化就执行

清理历史版本

在这里插入图片描述
每次构建时只保留最近10次的历史构建,历史构建默认会保存到C盘Jenkins的安装目录里面。

通过Jenkins打包流程记录

之前公司版本更新流程都是先转表,再编译打包ab,再手动将ab命名,之后手动上传至CDN。之后在通过修改在线参数配置来让用户接受增量。所以我想讲上传Ab这部分步骤进行自动化。以下是记录一下过程:

  • 首先是构建流程描述,
    在这里插入图片描述
    具体构建参数图
参数名称具体作用
ProjectPath项目工程目录
excelChannel具体为执行转表工具,具体逻辑是默认为工程目录上级目录下的表格目录,下面找到所有的文件名包含**<转表>**这两个字符的文件的文件名存数组返回,目的就是如果多渠道转表工具不同只需要下拉选择对应得转表工具即可
abVersionab资源版本号,控制打包出来的ab名称版本。
LogVerbose是否打印unity输出的日志
isUploadAB控制是否需要自动上传ab至CDN,为了可能只需要打ab出包,不需要上传至CDN这样的需求。
CDN_PATH[账号]:[密码]@[ip地址]:[端口] /[AB存放的目录] 示例:cdnftp:cdnftp#2019@118.25.75.131:6666/android/update 这个参数具体看使用何种上传工具,公司使用的是FileZilla,用命令行上传的话,需要带上的格式就是这样的。
isCopyCltSvrData是否copy客户端技能、关卡和战斗DLL至战斗服提交。

ProjectPath 参数具体逻辑如下:

def List = [];
List = ['D:/agame/trunk/android', 'D:/agame/jenkins_test/android'];
return List

excelChannel 参数具体逻辑如下:

File pathFile = new File(ProjectPath  + "/GameUnity/Build/path.bat");
def reg = ~/PRODUCT_DATA_PATH=(.*)"/
def path = ""

pathFile.text.eachLine({line->
    def matcher = reg.matcher(line);
    def result = matcher.find()

    if(result)
    {
        path = matcher.group(1)
    }
})

if(path == "")
{
     tmpPath = ProjectPath  + "/../data"
     File tmpDataDir = new File(tmpPath);
     if(tmpDataDir.exists())
          path = tmpPath;
      else
          return ["path.bat未配置PRODUCT_DATA_PATH"]
}

def dataPath = path
File dir = new File(dataPath);

def names = [];
def regExcel = ~/.*转表.*bat/

dir.eachFile({file-> 
    def matcher = regExcel.matcher(file.name);
    def result = matcher.find()
    if(result)
        //names << file.name;
        names << file.getName().split("\\.")[0]
});

return names

构建过程执行的命令行:

@echo OFF
@echo %ProjectPath%
%ProjectPath:~0,2%

set ext="/GameUnity/Build"
set build_path=%ProjectPath%%ext%

@echo %build_path%
cd %build_path%

call path.bat

python -u BuildJenkins.py
if %ERRORLEVEL% neq 0 exit

set buildType=0
REM echo packageType is:%packageType%
if "%packageType%"=="update" (
   set buildType=1
)

REM python -u BuildCore.py build %abVersion% %buildType%

if "%isCopyCltSvrData%"=="true" (
   python -u BuildCore.py copy_clt_svr_data
)

if "%isUploadAB%"=="true" (
   @echo 开始执行上传AB 
   cd uploadAB
   python -u UploadAb.py %abVersion%
)
  • 具体逻辑执行工程Build目录下的 BuildCore.py 核心逻辑。
  • 配置好Jenkin后只需根据具体需求输入参数开始构建即可。从打包ab资源到上传ab,都可实现自动化。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值