Jenkins的很多功能如果直接按照界面菜单的简单介绍,可能会让人很迷茫无从下手。
所以,我打算根据实际情况。一点点的丰富对于JenKins的了解。
而本篇就是介绍:如果有一个Android 项目。是通过gitlab进行代码管理。
那么如何采用Jenkins将项目从GitLab上拉取。并进行构造打包成apk。
先从最基本简单的方法来实现。
我们都知道如果要打包Android 。那么肯定是需要AndroidSDK的。
所以,我们要先配置AndroidSDK 到JenKins之中。
Manage JenKins -> Configure System 进入到系统全局配置界面
然后滑动列表,在全局属性项目上,勾选:Environment variables(环境变量配置)。
会自动弹出键值对列表。让我们填写
效果图如上,键:ANDROID_HOME 。然后值就是填写我们SDK的根目录即可。
例如我们的D盘AndroidSDK 路径下的截图所示。
扩展一下知识:我们如果其他编译插件等也可以在这里配置路径。这样jenkins就能够找到相关的sdk库了。在构造的时候也能使用得上
我们先创建一个任务 Freestyle Project。
这个任务名称是可以随意定义的。根据你这个项目的实际情况出发。
不止是字母和下划线。我们还可以输入中文任务名称。
我们创建完任务之后,将会自动进入配置界面
这个界面,我们之后可以随时进行访问操作。而JenKins之中每个任务的脚本和执行规则,构造规则等全部是在这个界面中进行配置的。
在General中我们配置的是通用信息,所有任务都有的配置项。
描述:介绍这个任务的功能任务。让其他人使用的时候了解这个任务的主要作用。
填写个描述就可以了。下面的这些选项我们可以保持默认,并不影响我们的构建任务。
之后深入学习的时候再介绍。
JenKins 默认安装插件的时候就有了Git的插件。所以通常默认情况下有两个选择:无,Git。
我们选择Git,然后在Repository URL
中配置我们的Git仓库地址,这个地址格式可以是HTTPS也可以是SSH的。
我们把路径拷贝上去之后,会提示下面的错误:code 128错误
Failed to connect to repository : Command "git.exe ls-remote -h -- https:我们的git 路径地址 HEAD" returned status code 128: stdout: stderr: fatal: Cannot prompt because user interactivity has been disabled. remote: HTTP Basic: Access denied fatal: Authentication failed for 'https:我们的git 路径地址'。
这个错误很简单,因为Git 访问上面的路径后,没有权限。我们需要在Credentials
下面选择或者添加我们Git的账户密码。
通常这一步不用我们自己配置。公司环境搭建完毕后。应该给JenKins 分配一个Git超级账户。然后后面大家只需要关注Repository URL。然后这个凭证选择就可以了。
我们需要添加一个Domain:全局凭证(unresricted),类型为 Username with password的凭证。
然后输入我们的git用户名以及密码。
然后点击保存,其他的ID和描述等可以省略掉。
然后Credentials 下拉。选择我们刚才配置的账户。这个时候 code 128错误 就没有了。
我们如果Git 上有很多的分支,那么任务肯定是要打不同的分支的。
这个时候我们就要在上面标注我们需要打哪个分支。
例如我的Git上有两个分支,一个是默认的master分支,一个是我新开的v2.0分支
那么我们可以如下配置:
其他的配置项,我们可以暂时不用理会。
顾名思义,就是我们可以配置各种脚本或者触发条件。当条件满足的情况下JenKins自动帮我们进行构建项目。
可以减少我们自己手动点击的过程。
构建触发器暂时用不上。我们可以省略掉,之后等我们熟悉之后或者进阶情况下,我们可以使用构建触发器。
本次我们就省略掉这一步骤。
构建环境,我们其实也可以保持默认的状态即可。
因为构建过程中,JenKins会从本地拉取各种信息和配置数据,如果你的配置数据要进行每次的修改替换。
你可以选择第一项:Delete workspace before build starts : 在开始构建之前删除工作区。
这个工作区就是我们任务下面的:工作空间。
本次我们也省略这一步的配置。
保持默认即可。
现在就进入核心关键点了。我们要进行构建脚本的配置,告诉JenKins 如何进行任务的构建了,也就是所谓的Build。
首先:Invoke Gradle scropt 调用Gradle 脚本。android sdk打包,现在都是使用的Gradle脚本进行打包的。
如果我们本地有安装很多Gradle 插件,那么可以在下拉列表中选择。如果没有的话。
就会显示Default。我们在编译后,就会出现Gradle.bat 文件找不到的错误了。建议进行安装之后,再进行选择
例如:
(PS:如果不知道安装可以参考我的这篇文章:Jenkins 构造失败,控制台输出:gradle.bat 不是内部或者外部命令 -解决方法 (zinyan.com))
选择完毕后,我们要配置Tasks。其实脚本命令和我们在Android Studio 中的Gradle 面板中的Task是一样的。
只是原先是在Android Studio中调用。而这次是通过Jenkins调用。
效果如下:
在tasks 中输入:
app:clean
app:assembleRelease
就可以了。
我们配置完毕后,就要配置构建后的存储路径了。
这个路径,不是说JenKins帮我们存储的路径。而是告诉jenkins 从哪个目录下获取构造结果。
然后jenkins再根据这个路径在网页中提供一个访问链接。
配置方法:示例
全部配置完毕后,我们只要点击构建等待结果即可。
按照上述操作,配置完毕后。点击右侧这个按钮。
注意:构建页面在你点击之后不会立马有反应。你点击之后等个几秒到十几秒。看看有没有构建状态在执行。
之后就等待构建状态了。你可以在构建状态上看到信息。
在JenKins中你看到的Build Now 功能菜单也是用来构建的。点击也是将指定的任务进行构建操作。
如果成功就是绿色的成功提示符,如果是失败就是红色的警告符。
例如:
上面的就是成功了,下面的就是失败了。
然后成功后的效果如下图:
我们上面的最后一次成功的构建结果。