jenkins的配置和部署

Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:持续的软件版本发布/测试项目;监控外部调用执行的工作。

本文为基于mac系统的jenkins配置和部署。

1.安装前准备

1.1 下载安装包jenkins (mac版)

官网地址

1.2配置jenkins安装环境

检查你的mac 是否已经安装jdk,没有的话请安装。
检查你的apachectl是否已经开启,浏览器输入“http://localhost:80”, 出现“ it works” 表示apachectl已经启用,未启用的请安装。

1.3 开始安装

点击jenkins安装包,一路默认就好。

1.4 启动jenkins 并自启动

(1)终端启动

在终端中到达jenkins.war的目录下,输入

java -  jar jenkins.war --httpPort ==8888

//注 :通过端口8888,访问http://localhost:8888

(2)自启动

设置默认端口

  sudo defaults write /Library/Preferences/org.jenkins-ci httpPort '   9999'

读取设置

    defaults read /Library/Preferences/org.jenkins-ci

自启动

   sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

取消自启动

   sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

(如果自启动不成功,请用终端启动jenkins.war的方法)

浏览器出现以下画面,安装完成

2. jenkins的配置

2.1 增加Xcode插件

在jenkins的系统管理中,找到管理插件,可选插件的tab下搜索 xcode,勾选安装,点击直接安装。这样重启jenkins的话,就会在job 的构建中下拉选择处看到xcode的支持选项。

2.2 点击左侧的系统管理—>系统设置进入如下界面:

2.3 JDK配置

配置JDK,请在每一节下面单击Add(新增) 按钮,这里将添加实例的名称 和绝对地址。下图描述了这两个部分。

JDK别名:给你看的,随便你自己,叫阿猫阿狗都可以
JAVA_HOME:这个是本机JDK的安装路径(错误的路径会有红字提示你的)

自动安装:不推荐这个选项

Ps:每个文本框后面都有个问号,点击问号就会出现帮助信息

2.4配置发件人地址

2.5 subVwesion配置

Subversion Workspace Version:Subversion 的版本号,选择你对应的版 本号就行了。

接着,点击”应用””保存”。

2.6 Configure Global Security(安全设置)

在已运行的Jenkins主页中,点击左侧的系统管理— >Configure Global Security进 入如下界面:

设置如上图,保存后系统管理中就出现管理用户的选项。页面右上角也会出现 登录/注册的选项。

2.7 管理用户设置

在右上角点击注册

点击sign up按钮,提示你现在已经登录.返回首页.

登录后和匿名账号看到的首页有几点不同,如下图红框所示:

2.8 向jenkins导入开发所需证书

  1. 先将iOS的开发所需证书导入你的Mac上(放在系统中)
  2. 将“/System/Library/Keychains/”下的文件复制到“~/Library/Keychains/*”
  3. 将“/System/Library/MobileDevice/Provisioning\Profiles”下的文件 复制到“~/Library/MobileDevice/Provisioning\Profiles/*”

(注:~/Library/下没有的后两个目录的自己创建即可)

3 创建打包项目

3.1新建自由风格构建任务

在已运行的Jenkins主页中,点击左侧的新建Job进入如下界面:

这时,需要为新的构建任务指定一个名称。(这里输入的任务名称为:Ant_test) 这里有几种的任务类型可供选择,鉴于初步介绍,先选择构建一个自由风格的软件项目。对于其他的类型,经常使用的是拷贝已存在任务;这主要为了能在现有的任务基础上新建任务。点击OK按钮,

3.2 源码管理配置

演示是使用Subversion的链接,在Repository URL中输入你的项目链接,如果没有权限则会提示如下图:

点击 enter credential 输入SVN用户名和密码

SVN地址:例如 https://192.168.50.7/svn/Personal/mobile/trunk/iOS/ iOS_Mobileclient/Platform/SafeClient

3.3 构建触发器

在其他项目构建完成后才执行构建:指定的项目完成构建后,触发此项目的构 建。

Poll SCM:这是CI系统中常见的选项。当你选择此选项,你可以指定一个定时作业表达式来定义Jenkins每隔多久检查一下您源代码仓库的变化。如果发现变化,就执行一次构建。

  • 第一个参数代表的是分钟minute,取值 0~59;
  • 第二个参数代表的是小时 hour,取值0~23;
  • 第三个参数代表的是天 day,取值1~31;
  • 第四个参数代表的是月 month,取值1~12;
  • 最后一个参数代表的是星期 week,取值0~7,0 和 7 都是表示星期天。
    如H/5 * * * * 表示的就是每5分钟检查一次源码变化。
    如:H/2 * * * * 每两分钟进行一次检查

Build periodically :此选项仅仅通知Jenkins按指定的频率对项目进行构建,而不管SCM是否有变化。如果想在这个Job中运行一些测试用例的话,它就很 有帮助。

3.4 构建配置

因为我的项目是用Mac 下脚本实现的打包,所以我选择的是Execute shell, 在出现的方框中写下你的批处理命令行(如:本项目就是自动打包、发送命令行)即可

打包脚本命令:(将项目打包并发送到当前目录的上一目录内,以当前日期为 名的文件夹内)在jenkibs的日志输出中能查到路径
参考脚本我放文件夹里了(文件名:脚本)
点击“应用”“保存”就可以了。

3.5 立即构建

点击左侧菜单中的“立即构建”,进行一次新的构建,如下图

一旦构建完成后,完成后的任务将会下图。

无标题14.png

在上面展示的截图中,您将注意到有两个图标描述当前作业的状态。S栏目代 表“最新构建状态”,W栏目代表着“构建稳定性”。Jenkins使用这两个概念来 介绍作业的总体状况:
构建状态:下图中分级符号概述了一个Job新近一次构建会产生的四种可能的状态:

  • Successful:完成构建,且被认为是稳定的。
  • Unstable:完成构建,但被认为不稳定。
  • Failed:构建失败。
  • Disabled:构建已禁用。

构建稳定性: 当一个Job中构建已完成并生成了一个未发布的目标构件,如果您准备评估此次构建的稳定性,Jenkins会基于一些后处理器任务为构建发布 一个稳健指数(从0-100 ),这些任务一般以插件的方式实现。它们可能包括单元测试(JUnit)、覆中分级符号概述了稳定性的评分范围。任何构建作业的状态(总分100)低于80分就是不稳定的。

3.6 调试

如果构建失败,通过点击构建历史(Build History)中某个具体的构建链接, 您就能跳转到Jenkins为这个构建实例而创建的构建主页上。如下图

单击Console Output(控制台输出)。如果工作已完成,这将显示构建脚本产生的静态输出;如果作业仍然在运行中,Jenkins将不断刷新网页的内容,以便您可以看到它运行时的输出。如下图:

(有利于快速的找到你的问题所在,并不停的调试)

注:图中第二行就是你的打包后文件输出的路径。

你可以直接前往打包后的输出路径获取.ipa 文件。打包iOS项目就完成了。

Q&A:

  • Jenkins Xcode 证书设置错误 Code Sign error: No matching codesigning identity found: No codesigning identities

Jenkins 集成Xcode 项目的时候在证书上遇到了问题。实际上如果在本地的话。只要Xcode工程里选择了项目就不需要重新设置证书了。jenkins会自动找到这个证书,只要在build setting 里设置的是正常的。并且在xcode 里能正常编译。

  • Check dependencies
    Code Sign error: No codesigning identities found: No codesigning identities (i.e. certificate and private key pairs) that match the provisioning profile specified in your build settings (“qingyunDeveloper”) were found.

如果遇到类似的错误 解决办法:
首先打开keychain keys 找到apple 的开发者证书。然后复制。 再选择左边的系统(system)把刚复制的证书放进去。
如果这个还没有解决。
接下来第二步:
找到你用户下的Provisioning Profiles 文件。目录为 /Users/xxx/Library/MobileDevice/Provisioning Profiles
xxx表示你自己的用户名,把这里面所有的证书复制到/Users/Shared/Jenkins/Library/MobileDevice/Provisioning Profile 这个文件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容