Android自动化构建打包上传
ZPECarla
8年前
<p>jenkins+ <strong>Gradle</strong> 是一种集群自动打包的工具,测试人员不需要依赖于相应的开发人员进行打包,可以自己方便的构建测试包进行测试。以下是 <strong>Jenkins</strong> 的相关配置和使用。</p> <p>注意:以下所有的安装和配置目录都尽量不要出现中文,以免有错误</p> <h2><strong>第一部分 Jenkins的安装</strong></h2> <p>安装Jenkins之前需要安装一些辅助软件,如 <strong>JDK 、 Gradle</strong> 等软件。</p> <p>1:JDK的安装</p> <p>(1) 下载网址: <a href="/misc/goto?guid=4958853469137977951" rel="nofollow,noindex">http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html</a></p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/ac6b3a1dc2f48093ca49ce75acc68687.png"></p> <p>我是Windows+64位的,请根据自己电脑的操作系统下载对应的版本。</p> <p>(2) <strong>JDK</strong> 的安装和配置</p> <p>这里直接给出安装和配置的链接,不在进行说明。</p> <p>安装和配置的网址: <a href="/misc/goto?guid=4959723102120092003" rel="nofollow,noindex">http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html</a></p> <p>(3) <strong>JDK</strong> 安装验证</p> <p>在cmd中输入:java -version</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/b3621a7f18a770b48856af2e386e2d17.png"></p> <h3><strong>2:Gradle的安装</strong></h3> <p>(1)下载网址: <a href="/misc/goto?guid=4959720710411438311" rel="nofollow,noindex">http://services.gradle.org/distributions</a></p> <p>官网网址: <a href="/misc/goto?guid=4959723102238324014" rel="nofollow,noindex">https://gradle.org/gradle-download/</a></p> <p>尽量选择 <strong>-all.zip</strong> 进行下载</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/7196a0842f65bdb692d45a356194f531.png"></p> <p>(2) <strong>Gradle</strong> 的安装和配置</p> <p>这里直接给出安装和配置的链接。不在进行说明</p> <p>Gradle的安装和配置: <a href="/misc/goto?guid=4959723102317953312" rel="nofollow,noindex">http://jingyan.baidu.com/article/4d58d541167bc69dd4e9c009.html</a></p> <p>(3) <strong>Gradle</strong> 安装验证</p> <p>在cmd中输入:gradle -version</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/4f326ec2491477725060d6b92cc31169.png"></p> <h3><strong>3:Jenkins 安装</strong></h3> <p>(1) 下载网址: <a href="/misc/goto?guid=4959723102397923405" rel="nofollow,noindex">https://jenkins.io/index.html</a></p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/1ee8b0e35a04200150229a12fdec649a.png"></p> <p>(2) <strong>jenkins</strong> 安装和配置</p> <p>(2.1)直接安装:直接解压压缩包,双击 <strong>.exe</strong> 文件,进行安装</p> <p>(2.2)命令行安装:在cmd中输入: <strong>java -jar jenkins.war</strong></p> <p>注意要到 <strong>jenkins</strong> 目录的文件夹,不然会找不到相应文件</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/d0974b1edf75bf14856cc0fe155db7c8.png"></p> <p>(3) <strong>Jenkins</strong> 安装验证</p> <p>在浏览器中输入: <a href="/misc/goto?guid=4958965640789895086" rel="nofollow,noindex">http://localhost:8080</a> 如果能正常跳转,说明安装成功</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/a827595947a8c2029ca276644b0f336d.png"></p> <p>此处的端口 <strong>8080</strong> 可以根据自己的需要进行修改,找到安装主目录下的 <strong>jenkins.xml</strong> 文件中的这段代码</p> <pre> <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war"</arguments></pre> <p>找到其中 <strong>8080</strong> 端口进行修改,然后保存文件,重新输入网址</p> <p>到此, <strong>Jenkins</strong> 的安装就已经完成了,接下来是 <strong>Jenkins</strong> 的使用</p> <h2><strong>第二部分 Jenkins的使用</strong></h2> <p>Jenkins的功能非常强大,可以对用户进行管理、下载相应插件,对Android、Web、IOS、JAVA等都适用,下面就Android打包进行说明,其他功能请自行研究。</p> <h3><strong>1:用户注册</strong></h3> <p>Jenkins成功安装之后,会进入到上面的锁定界面。根据页面上的提示找到安装目录下的 <strong>initialAdminPassword</strong> 文件打开,复制里面的内容,输入到下面的方框内,点击下一步会进入到插件的安装界面,主要有:默认安装和选择安装。请自己进行选择,我选择的是默认安装,会比较慢。</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/33c6b0abd5a6ee9da64f2ada6e13ba5b.png"></p> <p>插件安装之后,会进入到用户注册界面。此处可能插件不一定能够全部安装成功,会卡主安装界面。</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/0eb6b64572218d4e735ebc64cd7f9967.png"></p> <p>不用担心。我的解决方式是,关闭浏览器,重新打开Jenkins。会进入到下面界面</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/21c80100d01fcac24f118881a6e28533.png"></p> <p>注意一定要点击 <strong>continue</strong> ,才会进入到用户注册界面,点击Retry又会回到插件下载界面</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/a43b6f83a3e0cb1e0cd9aa3593b8690c.png"></p> <p>注册信息填写好之后,选择 <strong>Save and Finish</strong> 就会进入到Jenkins的主界面。旁边有个 <strong>Continue as admin</strong> 这个是以管理员的身份进入的。</p> <h3><strong>2:插件下载</strong></h3> <p>进入到jenkins首先要进行相应的插件下载,不然后期工作无法展开。进入到Jenkins主界面选择 <strong>系统管理</strong></p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/e0c98789096ffe58b8cf4abdc89a52e7.png"></p> <p>进入之后选择 <strong>管理插件</strong> ,进入到插件下载界面,进行相应插件下载。Android打包需要的插件主要有: <strong>Git Plugin</strong> 和 <strong>Gradle Plugin</strong> 。</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/85a81f41b5a5c3a3986a69fa7b43a28c.png"></p> <p>如果用到SSHKey的话需要下载: <strong>SSH Credentials Plugin</strong> 。其他插件下载,请读者自己进行研究。</p> <h3><strong>3:构建项目</strong></h3> <p>到此插件就安装成功了,所有的准备工作都做好了,接下来就是构建Android项目了</p> <p><strong>3.1 新建项目和配置</strong></p> <p>进入到 <strong>Jenkins</strong> 主界面选择 <strong>新建</strong> ,然后选择 <strong>自由风格</strong> 输入项目名称,然后点击 <strong>OK</strong></p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/f9520b963a66d6d6d03a13daf4dbe218.png"></p> <p>之后会进入到配置界面,主要有:源码管理(远程代码服务器)、构建触发器(何时构建项目)、构建环境、构建(采用何种构建方式)、构建后操作(可以定制APK的输出路径)</p> <p>(1) 源码管理</p> <p>源码管理主要有何种代码版本控制,如:SVN、Git等。我用的是Git,所以选择Git进行代码拉取,代码拉取有两种方式:http和ssh。根据自己需要请自己进行选择。如果远程代码是私有,需要添加认证信息:用户名密码和SSH等方式。下面分别进行介绍</p> <p>http + 用户名和密码</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/3031f99c5e8de5536c83db3d0da19371.png"></p> <p>添加认证信息</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/e587b032c98822c45d4222edce1d9c55.png"></p> <p>SSH方式 需要修改URL和认证信息</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/e8f79639382cbc3f3e12a3d147740947.png"></p> <p>(2) 构建触发器(可选操作)</p> <p>此处的功能主要是定时构建项目</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/d757aa76f2bba018af91ccaab2dc3c90.png"></p> <p>这个可以根据自己需要进行相应设置,主要功能就是定时拉取代码和构建项目。如果不进行配置,就是手动构建时才会进行代码的拉取和项目的构建。具体配置请读者自己进行研究</p> <p>(3) 构建环境(可选操作)</p> <p>此处请读者自己进行研究</p> <p>(4) 构建</p> <p>Android用的是Gradle进行打包,所以此处选择 <strong>Invoke Gradle script</strong></p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/4c103c8e8259d8195902d01878c30123.png"></p> <p>(5) 构建后操作(可选操作)</p> <p>可以对构建后的项目进行相应控制,如用于输出的文件</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/1183719e7c49654dd3e58bc44805fdcf.png"></p> <p>所有配置好之后,点击 <strong>保存</strong> 。接下来就是构建项目了</p> <p><strong>3.2 项目构建</strong></p> <p>回到 <strong>MyView</strong> 界面,选择要构建的项目,右键选择 <strong>立即构建</strong></p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/e2ab5a54fd347eec7bec84823ca6fd69.png"></p> <p>在构建的同时,可以选择 <strong>控制台</strong> 输出,查看构建的过程,并且可以发现构建失败的原因。</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/b479def48ff13156a03e462e750650ca.png"></p> <p>注意Android构建时有可能会出错,因为在第一次构建的时候,有个 <strong>local.properties</strong> 文件不存在会导致失败,只要将此文件拷贝到项目目录下,重新构建就可以了。构建成功后会出现下面界面。</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/e08967071d25441176d78ee21a0a2b97.png"></p> <p>到此,Jenkins+Android+Gradle进行自动化打包就圆满成功了!下面主要介绍APK如何发布到内测平台——蒲公英</p> <h2><strong>第三部分 APK发布到内测平台</strong></h2> <p>这里主要介绍Jenkins上传APK到蒲公英内测平台。首先需要到 <strong>蒲公英官网</strong> 上注册用户,具体注册流程请自己参考蒲公英官网文档,这里不再说明。</p> <p>注册好之后,进入到账号设置,可以看到生成的API信息。这里需要用到的是: <strong>API key</strong> 和 <strong>user key</strong></p> <p>进入到Jenkins的项目配置界面,在 <strong>构建</strong> 里面点击 <strong>增加构建步骤</strong> 选择 <strong>Excute Shell</strong> 然后输入:</p> <pre> curl -F "file=@/apk文件路径" -F "uKey=蒲公英API中的UserKey" -F "_api_key=蒲公英API中的API Key" http://www.pgyer.com/apiv1/app/upload</pre> <p style="text-align: center;"><img src="https://simg.open-open.com/show/a90858f5768d9a9de668a283daaceee1.png"></p> <p>增加之后,点击保存,然后重新构建项目,会发现项目上传到蒲公英平台了。如果在蒲公英上使用过邮箱注册,那么上传成功之后,会收到蒲公英系统所发的邮件。</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/f1142a3673f69d8130c340403565f064.png"></p> <p>到此APK上传蒲公英平台就可以了。其他关于Jenkins的具体使用请读者自己进行研究。</p> <p> </p> <p>来自:http://chausson.github.io/2016/10/31/Android自动化构建打包上传/</p> <p> </p>