持续集成(Continuous Integration)
编写代码只是软件开发的一小部分,更多的时间往往花在构建(build)和测试(test)。
为了提高软件开发的效率,构建和测试的自动化工具层出不穷
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
目前持续集成(CI)已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。
它是一种实践,旨在缓和和稳固软件的构建过程。
Jenkins 作为一款软件开发的神器,能帮团队很优雅地解决编译和发布等工作。支持超多的第三方系统软件,自定义 Shell 脚本,丰富的插件,可以让你游刃有余地完成很多自动化的工作。
一.下载Jenkins
Jenkins提供了Windows、Linux、OS X等各种安装程序,但是这些安装程序都没有war包好使
访问Jenkins官方网站 https://jenkins.io/ 下载最新的war包
只需要运行命令:
java -jar jenkins.war
我把war文件放到D盘下面,并执行命令
出现这行提示:Jenkins is fully up and running 表明成功了
二.访问Jenkins
Jenkins 已经启动并运行,可以从链接访问 Jenkins −http://localhost:8080
最开始会提示安装插件,配置管理员账号等,这里没有截图跳过了
新搭建的和截图显示不一样,因为我已经新建了Job
三.创建Job
点击New 任务会跳转到如下页面
输入item name 这里选择构建自由风格的软件
如果已经创建过Job,再次创建的时候可以选择copy from,重复利用配置参数
四.配置Job
点击configure 配置刚刚创建的Job
配置源码管理:Github仓库地址,账号密码
Build和Build后的操作
如果这里没有Gradle相关的选项,那是因为没有安装Gradle插件
Build Android使用的是Gradle 命令是:
clean
assembleRelease
构建后需要的是APK文件,所以这里是把APK文件输出
app/build/outputs/apk/release/*.apk
构建后的结果查看:
- Workspace可以看到我们的代码,是可以点击查看的
- 构建后的结果APK文件是可以下载的
- 构建历史可以看到之前的构建,并且可以看到本次的构建信息
如下:是我的构建结果
四.可能遇到问题
第一次搭建难免遇到问题:
具体的可以看报错信息
SDK路径没有配置
这是构建信息里面copy出来的
<pre class="console-output" style="box-sizing: border-box; white-space: pre-wrap; overflow-wrap: break-word; margin: 0px; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">[Gradle] - Launching build.
[My_github] $ cmd.exe /C "C:\Users\admin\.jenkins\workspace\My_github\gradlew.bat clean assembleRelease && exit %%ERRORLEVEL%%"
Starting a Gradle Daemon, 2 incompatible and 1 stopped Daemons could not be reused, use --status for details
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring project ':app'.
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
* Get more help at [https://help.gradle.org](https://help.gradle.org/)
</pre>
解决办法:
Gradle插件安装:
选择Available 搜索插件,安装并重启
Jenkins插件访问不了 SSL报错
将https替换成http http://updates.jenkins.io/update-center.json