构建工具一体化的实现

项目开发笔记(十一)

终于又可以继续我的项目开发笔记了,经过大半年的沉淀,我分别捣鼓了很多东西,大多数都应该整理笔记记录下来。构建工具一体化的实现我打算形成一个系列,把我的思路和部分实现记录一下。这里主要是针对Unity项目,在我实现整个流程之后 发现针对其他任何项目应该也类似,不管是需每次编译整个源码的cocos项目 还是AS项目Android原生项目。

相关涉猎

运行环境

Win10,OSX,Web

技术栈

SVN(or Git),应用在项目版本和源码管理

BAT批处理,SHELL脚本,应用在本地编译和打包

Jenkins,应用在控制远程执行打包,控制构建前后事件和任务

具体项目本身的适应,我准备拿Unity项目作为例子,这里如何把Unity的打包流程一键化是keypoint

最终效果

拿我目前项目的自动化而言,可以做到:

  • 自动checkout项目
  • 自动调用本地bat 或者 shell执行编译
  • 自动调用本地bat 或者 shell执行打包
  • 自动群发构建成功邮件
  • 自动在构建成功后上传应用包
  • 自动单独对开发者发送构建失败的LOG邮件和反馈
  • 定时(每天的那个时间 那几个时间)打包

举个栗子

《构建工具一体化的实现》有5个想法

  1. IDE绑定SVN,GIT
    SVN,GIT绑定Jenkins
    Jenkins绑定AutoTest
    Jenkins绑定Jira
    Jira,Jenkins绑定Mail。

    SVN和Jenkins做计划。
    服务器的话,DB也做计划和ProfileTest。

    其实还有很多方法,但是……………………然并卵啊!小公司谁愿意让你搭这玩意儿……“快,入职两天了还没敲代码,想被扫地出门吧?骚年~”
    所以,知道就好,自己折腾一套差不多了。我就做了个类似NPS的源代码管理,自己也写了一堆CMake和bat,PowerShell了……

    1. 谢指点 , 前段时间招了一个五年经验的高级程序 , 我让他做个和项目上层功能无关的工具(类似 CocosCreator的新项目创建工具),结果他兴趣不大,一心只想写功能逻辑,求快把核心功能分给他……看来好多人都不想点这方面的技能啊

      1. 可能是视野,可能是思维方式导致他不愿意接那工作吧。嘛,不过,建议还是拥抱变化,Master都60:0虐人类了,自动化这东西必然是趋势。程序员的终极任务不就是干掉所有程序员嘛~哈哈

    2. 在公司里搭建自动化完毕,并正常运行一周。
      实现了 控制本地脚本打包,群发邮件提醒 ,定时打包, 上传服务器 ,打包Log附件发送给开发者
      内心在感慨:以后我再手动打包就是SB

  2. 编译打包部分如果是在用bat和shell脚本的话,有同一套逻辑写两遍的问题,应该还有优化空间。
    既然博主有安卓开发的经验,可以把平台无关的逻辑直接写在gradle脚本里。
    有gradlew,jenkins上也不用安装新程序,可以直接执行各种自定义task了。

发表评论

邮箱地址不会被公开。 必填项已用*标注