本次Jenkins主要为了实现安卓开发的自动化编译与自动化测试。
编译方面由于一直在windows环境下使用Android Studio开发,为了减少搭建编译环境工作量,所以选用了windows jenkins节点进行编译,没有选用docker编译。
自动化测试方面由于有安卓APK只编译了ARM平台,在X86平台上运行ARM的安卓虚拟机非常慢,所以选择了在物理安卓手机上运行测试脚本。
在代码库上,由于jenkinsfile放在git库中方便统一管理,便于开发和运维的一体化,所以选用了在gitlab中存放jenkins 的脚本。
在容器平台上,由于服务器有限,主要在PC和docker desktop上测试了K8S的minikube, ip 地址映射实在是麻烦,最后转向了直接在Docker上运行Jenkins,这样维护的工作量最小。
在python 测试脚本上选择了pytest,因为pytest可以生成junit格式测试报告,可以直接进入jenkins的网页显示测试报告。unittest 虽然也可以借助html publisher插件实现报告,但是在windows主机节点上出现了一直没有解决的文件传输的bug。