美文网首页
Jenkins进行iOS与Android持续集成环境配置

Jenkins进行iOS与Android持续集成环境配置

作者: Tolecen | 来源:发表于2018-01-07 17:05 被阅读193次

    首先,安装 Jenkins,安装 Jenkins 的方法可以自行去往上搜索,但建议直接运行 war 包,在命令行使用 java -jar jenkins.war 运行 war 包进行安装和后面的启动操作就可以。Jenkins 官方下载地址:https://jenkins.io/download/

    然后,Android 的开发环境和 iOS 的开发环境要在电脑装好。

    1. Jenkins 基本环境配置

    首先需要安装必要的插件,可运行 Jenkins 之后,在 Jenkins 的“系统管理-管理插件”中安装和更新所需要的插件。

    安装 GitHub 插件

    可以搜索 GitHub API Plugin 和 GitHub Authentication plugin 插件进行安装,安装过程中也会进行其他必要插件的自动安装。

    安装 Gradle 插件

    可以搜索 Gradle Plugin 进行安装,也会自动安装几个其他必要插件。

    安装 Xcode integration 插件

    搜索 Xcode integration 安装即可,这个插件可以装,但我后面的介绍是用命令行直接进行 iOS 的项目编译,如果是命令行编译的话,这个插件可以不装。

    2.  Android 编译环境配置

    首先新建一个 Android 项目,进入配置填写的页面。

    Git 信息配置

    下面填写 Git 信息,如下图:

    在源码管理那一栏选择 Git,填写对应的仓库 URL 地址,在 Credentials 处 Add 你要在本机对仓库进行 pull 的用户,填写 Github 的用户名和密码即可。Branch Specifier 处填写要编译的分支名字,比如这里要编译的是主干,就写了 master,其他的填写对应名字即可。

    Git 信息下面,有一个 Additional Behaviours,可以点击右面的 Add 添加额外配置。

    比如我在下面添加了如下图的两个

    上图里的 120 指的是,checkout 和 clone 的超时时间为120分钟,单位是分钟,因为新项目第一次 clone 可能会遇到很久的情况,这里保证不超时,后面不需要时也可以删除。

    构建触发器配置

    构建触发器主要用来配置编译条件,就是在什么条件下进行编译,我使用的是自动检测是否有更新,如果有的话就进行编译,构建触发器的配置和选择如下图:

    这里选择了 Poll SCM,就是定时检测 Github 远程仓库是否有更新,有的话就编译,没有就忽略。这里的设置写的是 H/5 * * * * ,就是每 5 分钟检查一次,有代码更新就进行编译。

    下面的几行有助于理解这里的语句规则

    每15分钟构建一次:H/15 * * * * 或*/5 * * * * 

    每天8点构建一次:0 8 * * * 

    每天8点~17点,两小时构建一次:0 8-17/2 * * * 

    周一到周五,8点~17点,两小时构建一次:0 8-17/2 * * 1-5 

    每月1号、15号各构建一次,除12月:H H 1,15 1-11 * 

    */5 * * * * (每5分钟检查一次源码变化) 

    0 2 * * * (每天2:00 必须build一次源码)

    Gradle 配置

    下面就是 Android 环境的 Gradle 配置,首先确保 Gradle 已经在本机安装。所有的 Gradle 的配置就如下面两个图:

    Invoke Gradle script 选择 Use Gradle Wrapper,Tasks 就是指要 Gradle 执行的任务,这里填写了 clean 和 build,就是先 clean 再 build。后面其实都可以不用填,Pass all job parameters as System properties 打上勾,都是默认就可以。

    接下来如上图,要指定这个待编译项目的 build.gradle 文件在哪,比如上面写的是 ${workspace}/app/ 即再项目根目录下的 app 文件夹里。

    这样,Gradle 的配置就完成了,保存配置之后,点击“立即构建”就可以进行编译了。

    分发编译后的 apk 包

    如果编译之后要对生成 APK 进行上传,填写相关命令或者安装相关插件就行,我这里是安装之后上传蒲公英,如下图:

    在 Gradle 步骤之后增加构建步骤,选择 Excute shell,指的就是在这里写命令行就可以了,上传蒲公英的命令如下:

    curl -F "file=@/Users/Tolecen/.jenkins/workspace/QiubangAndroid/app/build/outputs/apk/qiubang_debug.apk" -F "uKey=c8xxxxxxxxxxxxxx679f133b3" -F "_api_key=f204xxxxxxxxxxxxxx0dd54" https://qiniu-storage.pgyer.com/apiv1/app/upload

    上面的 file 就是项目里 build.gradle 定义的打包路径。

    如果要操作一个 release 和 一个 debug 的,那就在 build.gradle 里定义好两个的路径,这里写两个命令就可以。

    至此, Android 的持续集成环境就配置好了。

    3. iOS 编译的环境配置

    首先,iOS 本身的编译环境要在电脑装好,装好 Command Line Tools,因为我们要使用其自身的命令完成编译。

    Git 的配置和构建触发器的配置与 Android 中的配置方法一样。

    下面就增加构建步骤,在此我们使用的命令行构建,所以直接添加 Excute shell 步骤就可以了,我这里的构建命令没有定义 provisioning profile,都是手动在 Xcode 里选好了的,相关的证书也要在电脑装好,provisioning profile 在电脑装好。

    构建命令截图如下:

    详细命令如下,一共两个命令。

    首先是打包的命令:

    xcodebuild -archivePath "/Users/Tolecen/.jenkins/workspace/QiubangiOS/build/Debug-iphoneos/BasketballLeague.xcarchive" -project BasketballLeague.xcodeproj -sdk iphoneos -scheme "BasketballLeague" -configuration "Debug" archive

     -project BasketballLeague.xcodeproj 这里就是 project 的名字,如果是 workspace,那这里对应改成 workspace 和对应的名字就行。-scheme "BasketballLeague" 是 scheme 名字,-configuration "Debug" archive,这里就表示以 Debug 模式打包,如果要打包 Release,这里将 Debug 改成 Release 就好。

    然后是导出 ipa 命令:

    xcodebuild -exportArchive -archivePath "/Users/Tolecen/.jenkins/workspace/QiubangiOS/build/Debug-iphoneos/BasketballLeague.xcarchive" -exportPath "/Users/Tolecen/.jenkins/workspace/QiubangiOS/build/qiubangios_debug" -exportOptionsPlist '/Users/Tolecen/.jenkins/workspace/QiubangiOS/build/ExportOptions.plist' -allowProvisioningUpdates

    这里其他命令应该都好懂,有一个 exportOptionsPlist ,对应一个 ExportOptions.plist 文件,导出的时候需要这个文件,可以新建一个文件,放到一个目录下,命令行里指定这个文件路径就可以,它是下面这个样子。

    里面的有 Bundle Id, ProvisioningProfiles 和 teamID 的信息,对应填写上即可,如果不确定,那就先用 Xcode 9 手动打包你的项目,然后导出,导出的文件夹里会有这个文件,直接复制到你持续集成需要的路径中即可。

    这样,iOS 的持续集成也就可以了,点击“立即构建”就可以进行编译打包了,如果要打包 Debug 、Release 或者更多的坏境,可以写对应几遍上面的命令,只不过把 Debug 改成对应的环境即可。

    剩下的分发方法和上面 Android 一样就可以。

    4. 其他配置

    如果想构建完成发一个 Email 通知,可以安装 Email 插件,在插件里搜索 Email 就可以安装,如下图:

    也可以选择 JUnit 作自动化测试,生成测试报告。

    文末推荐一下自己的App,一款非常方便的拍照取字软件 - 白描

    相关文章

      网友评论

          本文标题:Jenkins进行iOS与Android持续集成环境配置

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