运维开发网

使用Jenkins构建Android应用程序

运维开发网 https://www.qedev.com 2020-05-10 10:56 出处:网络 作者:运维开发网整理
我已经按照以下步骤设置了Jenkins作业来构建我的 android项目: > SSH连接到ubuntu机器.我用sdk,java,gradle等设置它. >克隆我的源代码 >使用“./gradlew assembleRelease”构建apk >部署或通过电子邮件发送给我(apk构建后的一步,可自定义) 但是,在构建android过程的某些步骤中,SSH隧道会关闭到我的远程计算机,就像以下模块构
我已经按照以下步骤设置了Jenkins作业来构建我的 android项目:

> SSH连接到ubuntu机器.我用sdk,java,gradle等设置它.

>克隆我的源代码

>使用“./gradlew assembleRelease”构建apk

>部署或通过电子邮件发送给我(apk构建后的一步,可自定义)

但是,在构建android过程的某些步骤中,SSH隧道会关闭到我的远程计算机,就像以下模块构建时一样:

:应用:transformClassesWithDexForDevRelease

我正在寻找一种方法来保持SSH隧道开启,以便建筑命令不会退出.我尝试使用nohup运行命令但仍然执行相同操作.

任何帮助或建议将不胜感激.

编辑:

通过添加,我可以通过改变小型登录机器来传递ssh问题

主办*

    ServerAliveInterval 600

但是,之后我添加了–stacktrace标志,这会给我以下响应:

org.gradle.launcher.daemon.client.DaemonDisappearedException: Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed) at
org.gradle.launcher.daemon.client.DaemonClient.handleDaemonDisappearance(DaemonC‌​lient.java:222)

看起来很奇怪,因为当我通过直接登录远程机器构建时,这个错误永远不会出现.只有在使用jenkins触发构建时才会发生.似乎有些东西正在杀死gradle守护进程,因为jvm设置看起来很好.也许ssh支队仍然在发生,但是在这个过程的不同点上,而不是我之前看到的那个.

尝试手动打开与ubuntu slave的ssh连接,然后尝试通过配置keep alive参数来增加ssh服务器配置的连接超时(/ etc / ssh / ssh_config),如下例所示:

# activates the keep alive verification (default is Yes)
# you could just set this to No but it would risk keeping ghost ssh sessions
TCPKeepAlive Yes
# sets the keep alive interval (in seconds) - this will send one keep alive per minute
ClientAliveInterval 60
# Sets the number of client alive messages which may be sent without sshd receiving any messages back
ClientAliveCountMax 10

这意味着sshd将每分钟发送一个客户端,并在关闭ssh会话之前等待10分钟以获得客户端响应.

假设你的整个jenkins构建(checkout安装东西gradle构建)花费不到10分钟它应该工作正常.

0

精彩评论

暂无评论...
验证码 换一张
取 消