• 自动化打包 Jenkins 持续集成 Git Gradle MD


    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱
    MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com

    自动化打包 Jenkins 持续集成 Git Gradle MD


    目录

    环境要求

    JDK
    打开cmd,输入java -version,可以看到打印的Java版本信息。如果没有,请配置java环境变量。

    Git
    打开cmd,输入git --version,可以看到打印的Git版本信息。如果没有,请配置Git环境变量。

    Gradle
    打开cmd,输入gradle -v,可以看到打印的Gradle版本信息。如果没有,请配置Gradle环境变量。

    配置方式:环境变量--系统变量--Path--将你自己的AS安装目录下的gradle目录复制过来贴上,例如:【C:AndroidAS_2.2.2gradlegradle-4.4in】

    Tomcat
    双击运行Tomcat的bin目录下的startup.bat脚本将Tomcat运行起来,日志中最后会提示服务开启成功:Server startup in 3475 ms
    Tomcat的conf目录下的server.xml文件可以配置端口号,默认是8080,如果跟其他项目有冲突可以自行修改。

    Jenkins 环境配置

    Jenkins是一个很受欢迎的CI持续集成工具,能够实现项目的自动构建、打包、测试、发布等。还可以在构建失败、构建不稳定等状态后发送邮件通知。

    Jenkins 安装

    Jenkins下载
    下载完之后,解压压缩包运行安装程序即可完成安装。

    在Jenkins安装目录下的jenkins.xml文件中可以配置编码格式、端口号等参数:

    <arguments>-Xrs -Xmx256m -Dfile.encoding=utf-8 -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%jenkins.war" --httpPort=8081 --webroot="%BASE%war"</arguments>

    war包下载
    将下载的war包放到Tomcat的webapps目录下,双击运行Tomcat的bin目录下的startup.bat脚本将Tomcat运行起来(若Tomcat已经启动,先关闭再重新启动),此时正常会提示:Jenkins is fully up and running

    然后在浏览器访问http://localhost:8080/jenkins/即可进入Jenkins页面。

    首次启动时会提示安装插件,则可能需要一点时间,一般我们安装推荐的插件即可,以后我们还可以在系统管理 -> 插件管理界面安装或卸载插件。

    然后,按照提示路径获取密码57f6b65f714348b7947c966d2378f9a0后输入。
    然后到用户名设置界面,这个界面你有两个选择可以操作:

    • 直接点击 Continue as Admin 安装,默认此时的超级管理员为admin
    • 输入用户名,密码,确认密码,全名,电子邮件地址。然后点击 Save and Finish

    至此,Jenkins算是初步安装成功了。

    全局工具配置

    在Jenkins主界面,点击进入系统管理 -> 全局工具配置界面。

    • JDK的配置:别名自取,取消选中自动安装,JAVA_HOME中输入自己电脑上jdk所在的路径,例如C:Androidjdk1.8.0_171
    • Git的配置,同样需要将自己电脑上git.exe所在的路径复制粘贴上来,例如C:AndroidGitingit.exe
    • Gradle的配置,例如C:AndroidAS_2.2.2gradlegradle-4.4

    一定要注意,这里和在Path中配置的路径不一样,这里的路径要为bin的上一级目录,因为这个事我被坑惨了。

    设置完以后保存即可。

    Android SDK 路径配置

    在Jenkins主界面,点击进入系统管理 -> 系统设置页面。点击全局属性 -> 环境变量,这里的和操作系统上配置的环境变量一致,通过勾选的名称也知道,指的就是系统环境变量。例如【ANDROID_HOME】【D:softwareandroid_sdk】
    mark

    邮件配置

    参考:邮件配置
    参考:邮件配置

    创建并配置打包任务

    接下来针对某个Android APP项目创建专门的打包任务。

    • 点击创建一个新任务 -> 输入任务名(不支持中文) -> 选择“构建一个自由风格的软件项目”
    • 如果想根据一个已经存在的任务创建,可以使用下面的复制选项。
    • 之后会进入到项目配置页,这些设置以后还可以更改:

    设置之后点击确定便进入了任务配置页面,这些配置在以后都可以进行修改。

    参数化构建

    在实际的项目开发过程中,可能会这对不同的环境、配置进行打包,比如选择不同的环境、渠道、签名或第三方工具的key,这些都有可能需要定制。参数化构建就是实现这种效果的。我们所要做的就是就是把选择提供出来,各种选择可以通过参数的形式传递给打包服务,然后根据打包时的选择,来对应出包。
    mark

    通过上图的下拉列表的选择,可以看到支持的各种参数类型,例如我们选择选项参数来提供指定环境的选择。
    mark

    PS:有些配置如果我们不知道怎么填,可以点击后面的蓝色问号按钮,可以显示提示,再点一下就会关闭提示。

    工作空间配置

    配置完上一步后,点击右下角的“高级”按钮,配置我们的工作空间。以后Android项目代码以及打出的包都会在这个路径下。
    mark

    源码管理

    这一步是配置我们的源码,我们的项目可以托管在SVN上也可以在Git上。
    如果安装了git插件,在源码管理会出现Git,我们选择以Git的方式管理,然后配置代码地址和要编译的分支。例如项目地址https://github.com/baiqiantao/LifecycleTest.git,分支使用默认的*/master
    mark

    然后点击Add添加Credentials(证书),有以下几种方式:
    mark

    我们一般选择用户名+密码SSH方式,配置后就可以自动验证了。

    构建触发器

    触发器是决定什么时候触发构建,可以设置为定时构建:
    mark

    还可以设置定时检查代码更新,有更新则编译,否则不编译:
    mark

    定时规则案例:

    • 每十五分钟【H/15 * * * *】
    • 每小时的0-29分钟内每十分钟一次【H(0-29)/10 * * * *】
    • 周一到周五9:00到16:00之间,每小时的第45分钟构建,每两小时构建一次【45 9-16/2 * * 1-5】
    • 周一到周五9:00到16:00之间,每两个小时一次【H H(9-16)/2 * * 1-5】
    • 除了12月之外,每个月的1日和15日每天一次【H H 1,15 1-11 *】

    构建

    点击构建中的增加构建步骤,可以在这里利用shell来修改源码中的配置文件,例如可以修改文件上传路径、访问地址或输出的包名等。

    如果安装Gradle插件成功的话,应该会出现下图的Invoke Gradle script,我们选择这个:
    mark

    然后选择Gradle Version,就是我们之前配置的Gradle的路径,直接下拉选择好版本就可以了。

    注意,这里有一个bug:

    为了在Jenkins中使用gradle,需要选择Invoke Gradle选项,然后还必须在Use gradle wrapper选项中配置你要跑的任务才能成功的利用gradle程序构建你的程序,但是你千万不能选择该选项,否则Jenkins会默认调用gradlew程序执行任务,但是一般你配置gradle后,没有该程序,就会报错。

    在Tasks可以配置【clean assembleDebug】或【clean build --stacktrace】等你想执行的命令。
    mark

    其他地方都不需要配置。

    注意:一般来说local.properties不会添加到版本库,所以可能需要你手动copy到相应的目录下。

    上传apk到蒲公英

    官方文档:curl上传插件上传

    如果没有蒲公英的账号,先 注册 一个,然后在“账户设置”中找到“API信息”,获取API Key【6f14e9f0420bcf9cb2ae45e29afd15db】和User Key【e9fbc97a0d37793aabf62bd629c9fb78】

    然后需要使用 curl 上传文件。下载后直接解压即可,不需要安装,然后像其他配置环境变量一样将curl目录加入Path即可,例如【C:_Webcurlcurl-7.61.1】,然后在cmd中输入【curl --version】,若能显示版本信息,说明安装成功了。

    点击构建中的增加构建步骤,添加执行shell,然后配置下面的上传命令:【curl -F "file=@app/build/outputs/apk/debug/app-debug.apk" -F "uKey=e9fbc97a0d37793aabf62bd629c9fb78" -F "_api_key=6f14e9f0420bcf9cb2ae45e29afd15db" http://www.pgyer.com/apiv1/app/upload

    配置完后,在下次构建后即可自动上传到蒲公英。

    构建后操作

    构建时可能会生成多个文件,我们可以设置只将自己需要的文件做存档。在存档文件中输入需要存档的文件路径,多个文件以逗号分割,存档文件默认路径为 WORKSPACE ,存档文件的相对路径既是 WORKSPACE 并且是以正则表达式路径去匹配需要存档的文件。
    mark

    如果是apk包,可填写【**/*.apk】【appuildoutputsapk*.apk】

    您可以使用module/dist/**/*.zip之类的通配符。请参阅Ant文件集的includes属性以获取确切的格式。基目录是workspace。 您只能归档workspace中的文件。

    在打包完成后,可以显示我们存档的文件:
    mark

    打包

    一切配置完成后,点击最右边的按钮即可通过jenkins进行打包:
    mark

    打包过程:
    mark

    至此,所有流程都走通了。

    遗留问题:

    • 邮件配置
    • 存档不是保存每次生成的apk吗?从目前的配置来看,因为没保存到指定路径,很容易被覆盖呀!
  • 相关阅读:
    性能测试常用业务模型分析
    性能常见模式
    C# 2第一个程序
    C# 1安装编译器
    eclipse安装maven错误总结
    Idea创建Maven项目
    Idea导入Eclipse项目
    软件需求与分析
    软件构造:完善口算题卡
    软件需求与分析
  • 原文地址:https://www.cnblogs.com/baiqiantao/p/9788432.html
Copyright © 2020-2023  润新知