Android Jenkins 自动化部署

项目配置

首先下载Jenkins war包,
在这里
然后放在tomcat webapps中即可访问。
jenkins 通过war 包在tomcat 中运行。最终生成的有关build 的数据都在以下路径

cd /root/.jenkins/

遇到的问题

org.gradle.launcher.daemon.client.DaemonDisappearedException: Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)

在linux 直接gradle编译没有出现问题,但是在jenkins 出现了。很疑惑好在在starckoverflow 上面又同样的问题并有详细的描述,不得不说,除了问题一定要养成一个惯性,第一在stackoverflow里面找。

解决方法禁用deamon gradle properites
org.gradle.daemon=false

step 'Invoke Gradle script' changed build result to FAILUREBuild step 'Invoke Gradle script' marked build as failure

这一个问题也是很坑得,一直以为是jenkins配置问题,最终发现这只是异常的结果,问题出现在抛出异常的任务,所以这个任务是啥呢?

:app:lintVitalReleaseBuild

既然找到了问题所在,那就解决它吧,一番搜索发现果然有人遇到过这个问题,解决如下:

在对应的app 的build.gradle android{}中添加代码
   //添加如下配置就ok了
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

一个一个的问题真是让人深受打。。在windows 上分分钟完事儿。因为是用的github 上的项目,本来以为直接在服务器上更改build.gradle 其实是没用的,因为jenkins build的时候回从github拉取最新,所以是更改回被覆盖。所以修改直接修改仓库并且push到github,或者直接github修改

又来一问题 如下

app:transformClassesWithDexBuilderForReleaseBuild

stackoverflow 相关解释

damen 相关错误,目前不确定了

之前TinderSipe 一直卡在这里,但是再参考资源里面 配置tasks 配置gradlew 命令。一直没有配置--no-daemon 命令。也很正常如果启动daemon报错那么不使用就是了,一下完整命令

--no-daemon clean test assembleRelease --stacktrace --info
appt2 相关
java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.2.1-4818971-linux Daemon #0: Daemon startup failed
  This should not happen under normal circumstances, please file an issue if it does.
 

当看到上面错误,一直以为是appt2导致,或者 daemon导致。没想到通过添加--stacktrace才发现是 TinderSwipe项目的random.png 错误,可能是格式导致的,可能不是Png.这里其实还有问题,因为再linux直接编译是成功的,这也让我解决问题走向了错误的方向。然后试了纯净的HaloImageProgressView.才build 成功,所以发现aapt2相关,找res 错误,最重要的还是--stacktrace查找错误原因

Failed to read PNG signature: file does not start with PNG signature

图片导致aapt2 报错

windows jenkins 配置

相对Linxu wndiows 相对简单,需要注意的一点是,在开了tomcat之后如果没有设置本地ANDROID_HOME 环境变量。会提示找不到sdk,再设置之后还需要重启tomcat。否则不会生效

脚本化配置

angcyo script

二维码配置

Jenkins实现Android项目CI和二维码下载

上传到fir

jenkins 打包上传到fir.im

邮件通知

Jenkins 配置邮件通知

亲证版,很完整

具体步骤截图
image.png

![image.png](https://upload-images.jianshu.io/upload_images/1394860-d560632e9e36d15d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

image.png

image.png

image.png
jenkins 邮件发送
image.png

image.png

image.png

image.png

image.png

image.png

步骤

参考资料

Android Jenkins参数化配置

Android Jenkins+Git+Gradle持续集成-实在太详细

step 'Invoke Gradle script' changed build result to FAILUREBuild step 'Invoke Gradle script' marked build as failure 异常

app:lintVitalReleaseBuild导致的异常解决

Jenkins 配置邮件通知

配置Jenkins邮件通知

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    wgl0419阅读 6,370评论 1 9
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,601评论 2 45
  • 作为一名Android程序猿,能偷懒时是一定要偷懒的。大家在开发中一定遇到过:测试说:帮我打个包吧,产品说:帮我打...
    小朱v阅读 7,015评论 3 14
  • 如果你并不急于放到服务器上,只是想玩玩这个东西。你可以先下载好这两个下文用到的包。下载Tomcat9.0.zip下...
    橘子周二阅读 30,418评论 58 70
  • 今天吃饭时候发现,最近有点上火,嘴角裂开了,一张嘴就疼。 结婚已经五个月了。基本上告别了新婚的新鲜感。彼此...
    沁茗阅读 195评论 0 0