写在前面
折腾了几天,终于把jenkins持续集成Android应用的环境部署好了。一开始用Tomcat+war包的方式部署,期间遇到很多莫名奇妙的问题,尝试了很多方法,换过版本,重启过服务器都不行。后来换了jenkins的安装程序,然后莫名又好了。
所以,这里就记录下安装包的部署方式。其实配置都是一样的...[捂脸]
环境准备
操作系统
系统: Windows Server
内存: 8G
系统类型: 64位操纵系统
安装准备
- Jenkins
- JDK (配置环境变量)
- SDK (配置环境变量 ANDROID_HOME)
- Git
- Gradle
Jenkins的安装
进入jenkins官网下载页 , 点击“Download Jenkins”按钮。
下载完成后点击安装。
这样就已经完成安装了,so easy。
启动服务
java -jar jenkins.war
配置
接下来就是最关键的地方了。
登录
首次打开,使用Admin登录,密码在安装目录下:/secrets/initialAdminPassword
插件安装
首次打开会推荐你安装一些插件,选中自己需要的插件安装下就好;如果全部安装的话,比特别慢(也有可能是我们网络的问题 Orz..)
我们所需要的插件:
- git plugin (从GitLab上拉取版本)
- Android Lint plugin (Android代码静态分析)
- gradle plugin (编译打包)
- Email Extension Plugin (邮件通知,默认的邮件通知只能在构建失败时发送邮件,这个插件可以选择各个结果发送给不同的人)
如果在首次进入系统时,没有选择安装插件,或者安装不全,也可以在进入系统之后,点击 管理插件 然后在可选插件中搜索需要安装的插件。
工具配置
点击 Global Tool Configuration
配置JDK
配置Git
gradle配置 (这里用的自动安装,没有用本地的,无差别)
新建项目
做好以上配置后,就可以新建项目来构建了。以下,通过创建一个Test项目为例:
点击新建;输入Job的名称,选择一个自由风格的软件项目
源码管理
填写Repository URL,选择一个拥有权限的Credentials,填写需要拉取的分支。
如果需要添加Credentials的话,则点击Add
默认情况下,如果repository URL 没有写Scheme的话是SSH的协议方式,因此添加Credentials的时候:
- Kind 选择 SSH Username with private key
- 1的地方填写git的用户名
- 2的地方填写git的SSH的私钥
构建触发器
选择Poll SCM,设置如下:
图里的设置表示:每三个小时check一次git版本,如果版本有更新,则构建,否则不构建。
这里的五个参数分别代表着:MINUTE HOUR DOM MONTH DOW;具体的解释,以及如何配置可以点击右侧的问号来查看文档。不再详述。
构建
选择 Invoke Gradle script
选择Gradle的版本(即刚在Global Tool中添加的Gradle);Task的地方设置如下clean build --stacktrace --debug
点击保存,新建构建项目就已经完成了。
在My View的页面,点击对应项目的构建计划,即可构建。
项目源码会被下载到C:\Users\Administrator\.jenkins\jobs\Test\workspace
中,APK打包在项目对应的build中。
权限通知
当我们存在多个项目的时候,出于对项目安全的考虑,同时也避免不相关的项目出现在自己的View中,可以对测试人员的操作权限,项目的权限进行设置。
点击Configure Global Security ,在访问控制里面的授权策略中选取项目矩阵授权策略
- Overall:全局的权限,包括管理员(最大权限);全局配置权限,升级插件权限,读权限
- Credentials:凭证管理权限
- Job:构建项目权限
一般情况下,我们给到测试只要勾选Overall 中的Read即可
特别注意!特别注意!特别注意!如果使用项目矩阵授权策略,请一定要把当前的Admin权限添加进去,并选择Administer权限
全局权限配置之后,还需要到相应的项目中配置权限。否则是看不到相应的项目的。
选择我们刚刚新建的Test项目,进入到配置中:选择启动项目安全;根据需求添加相应的人员,并勾选相应的权限。
邮件通知
默认的邮件通知只能在构建失败的时候发送邮件给相应的人员。还记得在开始的时候安装的Email Extension Plugin 插件么?这个插件可以根据我们的需求发送邮件给对应的开发or测试。
首先需要在系统设置中,配置一些基本信息:
然后配置下收件人,邮件模版:
系统配置完成之后,其实还是收不到邮件的,还需要到相应的项目中设置。
在相应项目的配置中增加构建后操作步骤,选择Editable Email Notification
已有的字段就用默认的设置,不需要修改;点击 Advanced Settings,在Triggers中进行设置。
这里需要说明下:按照图中的描述,这里是说构建失败发送给开发,那么开发是指谁呢?是指此次构建与上次构建之间提交代码的人 ,邮箱地址会通过git的提交记录中获取。
点击Add,选择Recipient List ,这里的Recipient List 是我们在系统设置中填写的收件人,如果除了默认的收件人还需要增加其他收件人怎么办?
就是刚进入Editable Email Notification的时候里有默认的参数设置Project Recipient List,在这个里面继续添加需要通知的人员邮件地址,用逗号隔开。
然后点击Add Trigger,增加触发邮件通知条件。
其他,增加收件人配置与上面一致。
到这里,Jenkins的所有的配置都已经完成了。