【技术实现步骤摘要】
一种持续集成方法和装置
[0001]本专利技术涉及互联网
,特别涉及一种持续集成方法和装置。
技术介绍
[0002]React Native是现在使用较为普遍的跨平台移动应用开发框架。框架开发完成后的编译部署方式是通过ReactNativeCli提供的bundle命令工具在开发计算机本地进行打包,编译成jsbundle代码文件以及相关资源等文件,然后通过在app内集成者通过热更新的方式部署到苹果移动设备操作系统(ios)或安卓(android)客户端。
[0003]但是使用开发计算机编译的方式是有缺陷的,不同计算机环境配置、平台的不同会导致不同的编译结果,带来较大的集成风险。
[0004]目前一般开发团队会选择在一台稳定可靠的服务器上部署一个持续集成环境,用于编译测试、正式jsbundle包和资源文件。
[0005]现有使用较为流行的是基于java平台的jenkins持续集成工具,可以通过配置用于React Native编译。
[0006]在实现本申请的过程中,专利技术人发现Jenkin ...
【技术保护点】
【技术特征摘要】
1.一种持续集成方法,其特征在于,所述方法包括:当接收到集成请求时,将所述集成请求中携带的请求内容组装成集成对象并存入集成队列;当从所述集成队列中读取一个集成对象时,使用所述集成对象中的下载地址下载代码包,并解压缩N个文件夹到集成工作目录中;其中,所述N为配置的React Native版本的个数;获取软件开发工具包sdk压缩包,并根据sdk的版本号将所述sdk压缩包对应解压到所述N个文件夹中;对所述N个文件夹分别集成并压缩指定的平台文件;按照所述集成对象中的上传地址将压缩后的平台文件上传。2.根据权利要求1所述的方法,其特征在于,获取sdk压缩包,包括:若确定已存储所述sdk压缩包,则直接获取存储的所述sdk压缩包;否则,通过服务器提供的接口下载所述sdk压缩包,并存储。3.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:通过主线程将所述集成请求中携带的请求内容组装成集成对象并存入集成队列;通过主线程确定所述工作任务workTask数组中正在进行的集成事务的个数是否小于M,如果是,创建子线程,从所述集成队列取出一个集成对象,并与所述子线程的信息作为一个集成事务增加到所述workTask数组,通过所述子线程执行使用所述集成对象中的下载地址下载代码包,并解压缩N个文件夹到集成工作目录步骤;否则,继续等待;其中,M为设置的同时进行的集成事务的个数。4.根据权利要求3所述的方法,其特征在于,所述方法进一步包括:通过子线程确定发生下述任一情况时,通知主线程,关闭子线程;通过所述主线程清除所述集成对象对应的代码包、在集成工作目录中对应的文件和所述子线程的信息,并从所述集成队列中取出下一个集成对象:使用所述集成对象中的下载地址下载代码包失败、解压代码包失败、解压sdk压缩包失败、Sdk文件不完整、集成平台文件失败、压缩平台文件失败、上传压缩后的平台文件失败、成功上传压缩后的平台文件。5.根据权利要求3所述的方法,其特征在于,所述方法进一步包括:在workTask数组中,通过主线程记录集成事务开始的时间戳以及子线程的PID;确定正在集成的子线程集成的时间,若确定所述子线程集成的时间超过预设阈值,通过主线程使用所述子线程的PID关闭所述子线程,清除所述集成对象对应的代码包、在集成工作目录中对应的文件和所述子线程的信息,并从所述集成队列中取出下一个集成对象。6.根据权...
【专利技术属性】
技术研发人员:唐超,
申请(专利权)人:北京京东世纪贸易有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。