美文网首页Android实战
Mac下使用Jenkins+Gradle+Git实现持续集成、a

Mac下使用Jenkins+Gradle+Git实现持续集成、a

作者: 黄宏发 | 来源:发表于2017-06-01 16:38 被阅读899次

    前言:
    记得刚到这家公司时,看到打包还是由开发人员进行打包,然后在把APK发给测试,当时就觉得这是一个占用猿子们的时间,因为在前东家那边都在使用Jenkins自动打包的。其实作为程序员,他们也是喜欢偷懒的,如果可以把打包工作做到自动化,这样就可以解决占用开发人员打包的时间了,当时也提过使用Jenkins自动化打包,然后被拒了,可能是由于刚到这家公司的原因吧,也是可以理解为什么会拒绝的,就在上周,当再一次提起后,居然就答应了,好了,口水都吐完了。接下来开始介绍如何通过借助Jenkins这个平台,进行自动化打包部署。

    接触一个新东西之前你总得知道它是什么,它能做什么吧,那什么是Jenkins呢,它能做什么呢。

    Jenkins简介

    Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时Jenkins能实现监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。Jenkins的前身是Hudson,是一个可扩展的持续集成引擎。ps:更详细的介绍请看官网 https://jenkins.io/

    进入正题

    这里用的环境是在Mac下面完成的,集成Jenkins有多种方式,这里讲解单独使用Jenkins集成的环境,
    单独使用Jenkins,https://jenkins.io/先到官网上面下载一个pkg的安装包,或者是用指令直接安装,下载完pkg安装包后,然后直接打开安装就可以了,过程中全部选择继续或者同意,安装成功后就会自动启动Jenkins啦,是不是觉得很方便呢,
    第一次会出现以下界面

    image.png
    这个界面的提示工作很到位啊,连到哪个路径下获取initialAdminPassword都告诉你了,好了,这个时候就到该路径下把initialAdminPassword生成的密码取出来后,输入就可以了,如果你不知道怎么进入该路径,有一个更简单的办法,下面告诉大家
    image.png
    当然啦,这个完整的路径你是无法进入的,因为secrets文件夹是没有权限,这个时候我们就进入到Home文件夹就好了,然后在把secrets文件拷贝到桌面或者其他地方,这样做事方便把initialAdminPassword取到,拷贝过程选择同意就可以了,
    image.png
    打开这个文件后,我们就可以看到一串由数字和字母组合而成的东西了,然后直接拷贝到刚才打开Jenkins的界面输入后点击Continue按钮,好了,我们离自动打包又近一步了,
    image.png
    这里可以选择安装插件,或者是安装Jenkins已经提供要安装的一些插件,这里我们选择Select plugins to install 就好了,因为我们只关心打包是否能用,其他一概不管,安装完成后会有这么一个界面展示在我们面前
    image.png
    填完后点击“Save and Finish”,至此,我们的第一步工作才算真正完成,
    2.下面给大家介绍需要使用到的一些插件,不多说了,上来就是干
    注意:列表中为主要插件,而Jenkins的插件是有依赖关系的,安装一个插件可能要先安装它依赖的插件,否则会安装失败。在可选插件勾选列表中的插件即可,依赖插件会自动下载,是不是很棒。
    Git plugin
    Gradle Plugin
    Email Extension Plugin
    description setter plugin
    build-name-setter
    user build vars plugin
    Post-Build Script Plug-in
    Branch API Plugin
    SSH plugin
    Scriptler
    Dynamic Parameter Plug-in
    Git Parameter Plug-In
    Git Changelog
    3.安装插件
    image.png
    点击管理插件进入到下一个页面 image.png

    然后选到可选插件,在过滤那搜索框搜索我们所需要的插件,


    image.png

    等待安装完成后,可以马上重启,但是最后就等所有的插件都安装完了,在做重启吧,这样就可以省去很多时间,提高我们的效率。
    完成之后,接下来就是配置环境的问题了,选到“Jenkins -- 系统管理 -- Global Tool Configuration”,有几个是我们需要安装的,如果没有就选择默认吧,

    分别是JDK ,Git ,Gradle,路径都是你自己电脑上面安装的路径,Name可随便定义,不过还是建议起一眼就能看懂的
    91f07921-d4ef-4bf4-bdf7-3b0a4e4a6c98.png
    Gradle的路径,这个是在我电脑上面的路径,把这个配上就可以了。
    image.png

    配置好这些环境后,我们离自动打包又近一步了,接下来就可以新建一个项目进行测试了。

    image.png image.png

    然后开始我们的一些打包配置


    image.png image.png

    Git代码仓库管理配置

    image.png

    如果没有可以选择的用户名和密码,就点击旁边的add按钮,在里面添加用户名和密码,然后直接add保存就好了。


    image.png

    构建环境的选择,下面就直接粘贴图片了,

    把Tasks里面的代码粘贴出来,方便拷贝

    clean assemble${PRODUCT_FLAVORS}${BUILD_TYPE}
    --stacktrace
    --debug
    
    image.png image.png

    想想如果打包编译完成后,直接在打包那边显示一个二维码出来,是不是觉得特别高大上,特别牛逼
    ,接下里就教大家去完成这个任务,其实这个也不难,因为Jenkins的插件已经帮我们做好了,我们只需要做些改动就可以了,首先我们需要下载一个插件“description setter plugin”然后做下面的配置,

    dir='/Users/admin/data/jenkins/workspace/APP/xxx/app/build/outputs/apk'
    domain='/Users/admin/data/jenkins/workspace/APP/xxx/app/build/outputs/apk'
    uri=`ls $dir`
    #type='0release'
    #if [ "$#${BUILD_TYPE}" != "$type" ]; then
    #curl -F "file=@$domain/$uri" -F "uKey=ukey" -F "_api_key=api_key" http://www.pgyer.com/apiv1/app/upload
    #fi
    RESULT=$(curl -F "file=@$domain/$uri" -F "uKey=ukey" -F "_api_key=api_key"  http://www.pgyer.com/apiv1/app/upload)
    appQRCodeURL=$(echo "$RESULT" | sed "s/.*\"appQRCodeURL\":\([^,}]*\).*/\1/g")
    merchantUrl=$(echo $appQRCodeURL | sed 's:\\\/:\/:g')
    
    echo Desc: $merchantUrl
    
    Set build description 的代码
    ^Desc: (.*)
    <img src=\1>
    
    image.png

    然后点击保存,

    image.png

    接下来就是等待结果的时候,哈哈,激动人心的时刻到了

    image.png

    至此,我们的整个Jenkins自动化打包工作就已经完成啦。

    PS:编译Android项目的过程,可能会出现查找local.profile文件的问题,然后我们需要在Jenkins -- 系统管理 -- 系统设置里面找到Environment variables,然后设置一下ANDROID_HOME就可以拉。

    image.png

    相关文章

      网友评论

        本文标题:Mac下使用Jenkins+Gradle+Git实现持续集成、a

        本文链接:https://www.haomeiwen.com/subject/kvzffxtx.html