Mac中jenkins的使用——自动构建

Mac中jenkins的使用
jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。

一、jenkins工具的安装、卸载、启用
注意:安装jenkins必须先安装Java sdk,同时安装好brew工具
1、安装、卸载
(1)安装
在终端使用命令进行安装

// 方法1 终端命令安装
brew install jenkins

下载dmg格式文件进行安装


jenkins-2.17.png

介绍.png

许可.png

阅读许可.png

目的宗卷.png

安装类型.png

安装类型-帐户密码.png

安装.png

摘要.png

安装好的目录位置,如下图所示:


安装目录.png

(2)卸载
brew uninstall jenkins  

2、启用

// 终端命令启动(仅对终端命令安装有效)
jenkins  
// 或者设置成开机自动启动
ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents  

启动设置.png

3、登录
使用本机作为服务地址:http://localhost:8080

4、设置(首次使用时需要进行设置)
设置项目:unlock Jenkins(administrator password)—>Customize Jenkins(install suggested plugins)—>Create First Admin User(用户名、密码、确认密码、全名、电子邮件地址)—>Jenkins is ready

注意:Administrator password的设置区分是脚本安装,还是dmg文件安装。如果是脚本安装的话,可以从终端直接查阅password;如果是dmg文件安装的话,必须从文件查看(安装目录—>secrets—>鼠标右击—>显示属性—>共享与权限—>修改成读与写—>initialAdminPassword—>鼠标右击—>显示属性—>共享与权限—>修改成读与写—>双击打开initialAdminPassword)

AdminPassword设置.png

(1)脚本安装jenkins时的password查看


AdminPassword查看01.png

(2)dmg文件安装jenkins时的password查看


AdminPassword查看021.png

AdminPassword查看022.png
自定义jenkins插件.png

jenkins插件选择.png

jenkins插件安装.png

创建管理用户.png

使用.png

二、jenkins的插件

  • 常用插件
    • Git plugin
    • git client plugin
    • Subversion Plug-in
    • Subversion Release Manager plugin
    • Subversion Tagging Plugin
    • SVN Publisher plugin
    • SSH Credentials Plugin
    • Gradle plugin: Android专用
    • Xcode integration:iOS专用
  • 插件安装方法
    jenkins首页—>系统管理—>管理插件—>可选插件—>过滤搜索—>直接安装


    插件管理.png

    插件安装.png

三、jenkins项目的配置使用
1、新建项目:Jenkins首页—>新建
(1)General:根据需要选择
a)项目名称(Enter an itemname;类型:构建一个自由网格的软件项目)
b)项目描述
c)丢弃旧的构建


创建新任务.png

构建一个自由风格的软件项目.png

项目信息.png

(2)源码管理:根据需要设置
情况1:Git(路径、帐号、密码)
情况2:Subversion(路径、帐号、密码)
情况3:None(使用本地项目)


源码管理.png

(3)构建触发器:根据需要选择(可不选)
构建触发器.png

(4)构建环境:根据需要选择(可不选)
构建环境.png

5)构建:根据需要设置
情况1:脚本Excute shell
根据实际情况配置参数,如果源码管理选择的是None,则使用svn下载最新源码脚本,否则屏蔽掉不使用。
#<------------------------------------------------------->  
# 删除旧源码目录->新建源码目录->从svn导出最新代码->清理旧文件->清除旧项目->打包->上传  
   
pwd  
   
# 名称配置  
checkout_name="checkout"  
project_name="zsyDemo"  
# 配置项目版本  
#targetProject_sdk="iphoneos8.0"  
targetProject_destination="generic/platform=iOS"  
configuration="Release"  
scheme="$project_name"  
workspace_name="${project_name}.xcworkspace"  
# 目录配置  
save_path="/Users/zhangshaoyu/Desktop/uploadIPA"  
archive_path="$save_path/${project_name}.xcarchive"  
ipa_path="$save_path/${project_name}.ipa"  
log_path="$save_path/log.txt"  
# svn配置  
svn_path="http://192.168.11.11:8011/svn/zsyDemo/trunk/iOS/zsyDemo"  
checkout_path="$save_path/$checkout_name"  
svn_name="zhangshaoyu"  
svn_password="123456"  
# 配置签名证书、描述文件  
codeSignIdentity="iPhoneDeveloper: shaoyu zhang (5AB779CDEF)"  
provision_UUID="06a7492b-083c-4313-d633-15ef685929g4"  
provisoning_profile="zsyDemoDevelopProfile"  
# 配置蒲公英  
upload_path="$save_path/${project_name}.ipa"  
pgy_userKey="a512b58c56285d23456e011fgh706509"  
pgy_apiKey="ab9c240d2efg9hi17j9642k3l5mnop5q"  
   
echo "正在删除旧源码"  
# 删除旧源码目录  
rm -rf "$checkout_path" >> $log_path  
   
echo "正在创建新的源码目录"  
# 新建源码目录  
cd "$save_path" >> $log_path  
pwd  
mkdir "$checkout_name" >> $log_path  
   
echo "正在从svn下载最新的源码"  
# 从svn导出最新代码  
svn checkout "$svn_path" "$checkout_path" --username "$svn_name" --password "$svn_password" >> $log_path  
   
echo "正在删除旧文件"  
# 删除旧文件  
rm -rf "$log_path" >> $log_path  
rm -rf "$archive_path" >> $log_path  
rm -rf "$ipa_path" >> $log_path  
   
echo "正在清除构建项目缓存"  
# 重要,执行xcodebuild命令时,必须进入项目目录  
cd "$checkout_path" >> $log_path  
pwd  
# 清理构建目录  
xcodebuild clean -configuration "$configuration" -alltargets >> $log_path  
   
echo "正在打包"  
# 归档(其他参数不指定的话,默认用的是.xcworkspace或.xcodeproj文件里的配置)  
xcodebuild archive -workspace "$workspace_name" -scheme "$scheme" -destination "$targetProject_destination" -configuration "$configuration" -archivePath "$archive_path" CODE_SIGN_IDENTITY="$codeSignIdentity" PROVISIONING_PROFILE="$provision_UUID" >> $log_path  
   
echo "正在导出ipa包"  
# 导出IPA  
xcodebuild -exportArchive -exportFormat IPA -archivePath "$archive_path" -exportPath "$ipa_path" -exportProvisioningProfile "$provisoning_profile" >> $log_path  
   
echo "正在上传ipa到蒲公英"  
# 上传IPA到蒲公英  
curl -F "file=@$upload_path" -F "uKey=$pgy_userKey" -F "_api_key=$pgy_apiKey" https://www.pgyer.com/apiv1/app/upload  
#<------------------------------------------------------->  
构建01.png

构建02.png

情况2:Xcode


Xcode构建.png

构建版本信息设置01.png

构建版本信息设置02.png

构建版本信息设置03.png

(6)构建后操作:根据需要设置(可不设置)


存储路径.png

2、配置项目
与新建时相同的操作,即General、源码管理、构建触发器、构建环境、构建、构建后操作。

3、删除项目
Jenkins首页—>点击项目—>删除Project


项目删除.png

四、jenkins使用注意事项
1、安装java sdk

2、安装brew

3、项目构建
(1)使用同步svn代码时,执行脚本中的路径指向jenkins相关目录
(2)未使用同步svn代码时,执行脚本中的路径指向自定义项目目录;同时也可以自定义脚本去下载svn代码
(3)构建成功的ipa包可通过执行脚本上传到内测平台,如蒲公英平台

4、查看证书描述文件信息、项目信息
(1)证书名称:Launchpad->其他->钥匙串访问->选择证书->鼠标右击->显示简介->细节->常用名称->复制
(2)描述文件UUID:打开Xcode->菜单栏->Preferences->Accounts->Apple IDs->帐号->showDetails->Provisioning Profiles->选择项目中使用的描述文件->
鼠标右击->show in Finder
(3)描述文件名称:直接查看描述文件名称
(4)target name、scheme:打开终端—>通过cd 命令进入项目目录—>通过命令”xcodebuild -list”查看

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

推荐阅读更多精彩内容

  • 一、Jenkins的作用 我要这Jenkins有何用?结合使用经验,简单总结如下: 1.一旦在Jenkins服务器...
    莫小风阅读 10,375评论 1 51
  • 软件的持续集成工具之一,易上手,功能强大,话不多说,干货奉上。我的博客地址:http://blog.lzoro.c...
    格子Lin阅读 12,104评论 10 41
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,569评论 25 707
  • 女孩五六岁时 还没有名字 学校里的先生 取了个名字叫彩云 她是程老汉 用一只公羊换的 18岁那年 招了女婿建中 2...
    关中陈镜阅读 194评论 0 0
  • 当一个人不断懂得去运用种子法则,一切好的事都会发生在你的身上。 我的目标:本月业绩12500,已经完成5400,继...
    生活就该甜甜蜜蜜阅读 176评论 0 0