相信大家对Travis Ci已经不再陌生了,Github上已经有大部分的项目已经采用了它。

Travis Ci是一个基于晕的持续集成项目,目前已经支持大部分主流语言了,如:C、PHP、Ruby、Python、Nodejs、Java、Objective-C等等,Travis Ci与Github集成非常紧密,官方的集成测试托管只支持Github项目,不过你也可以通过Travis Ci开源项目搭建一套属于自己的方案。

如果你是Github的爱好者,那么Travis绝对值得一试,目前我已经把托管在Github上的部分项目使用了Travis Ci来做集成测试了。

如下图:

 

那么问题来了,Travis Ci的中文文档太少了,于是我硬着头皮写了一篇简洁的教程,如有不足之处,请勿吐槽!

首先我们的要有一个Github账号,接下来就打开Travis Ci的官网,通过Github进行授权登录,一系列的验证过后。

 

我们得把Github的项目同步到Travis Ci的管理后台,然后针对某个项目打开开关。

 

例如:MessageDisplayKit已经打开了开关,进行持续继承项目了。

 

接下来我们就一一详细讲解怎样加入Travis Ci持续集成工具的过程。

步骤:

1.先创建.travis.yml文件(使用VIM也可以,你爱怎么来就怎么来吧!)

2.编辑.travis.yml文件

language: objective-c #语言种类

xcode_project: MyNewProject.xcodeproj # 项目文件相对于.travis.yml文件的路径

xcode_scheme: MyNewProjectTests #你需要集成测试的scheme

3.保存.travis.yml文件

到此你已经完成Travis Ci测试的基本配置了。

然后你就会想,逗比,不同项目类型处理方法呢?

来了嘛!我们不急哈!

不同项目类型,具体有以下几种:

1、单独只有project的项目

2、依赖CocoaPods管理第三方库的项目

3、依赖workspace管理的项目(可能你需要操作build的顺序、修改自动构建命令等等)

首先仅仅单独Project工程文件的项目,使用基本配置就ok了,下面主要讲依赖于workspace的项目。(CocoaPods也是使用workspace,这点我应该比较好理解)

如果你是依赖CocoaPods进行管理第三方管理的项目时,那么你需要把xcode_project这个key改为xcode_workspace。

那么问题又来了,Podfile管理的第三方库怎么来编写构建代码呢?让以下步骤来帮你吧!


就以PopMenu这个开源项目来讲。

1.打开你的项目。

 

2.选择项目的Manage Schemes

 

3.把你需要构建的Target勾上shared选项

 

4.选中你需要管理的scheme,点击左下角的Editi按钮

 

5.选择Build选项,点击左下角的+号按钮,添加你需要依赖的CocoaPods管理的第三方静态库的名字,下图是已经添加后的截图。

 

6.拖动你需要首先构建的Target(这里需要注意一下,有一些依赖库需要先编译某些Target才可以往下继续编译的情况,所以这里可以帮你解决)

如果你还没学会的话,温馨提醒,这里还提供了Travis Ci官网提供的教程,让你的项目加入持续集成测试没有任何障碍。

文/曾宪华(简书作者)
原文链接:http://www.jianshu.com/p/8308b8f08de9
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

[转]Travis Ci的最接底气的中文使用教程的更多相关文章

  1. Travis CI用来持续集成你的项目

    这里持续集成基于GitHub搭建的博客为项目 工具: zqz@ubuntu:~$ node --version v4.2.6 zqz@ubuntu:~$ git --version git versi ...

  2. 利用Travis CI 让你的github项目持续构建

    Travis CI 是目前新兴的开源持续集成构建项目,它与jenkins,GO的很明显的特别在于采用yaml格式,简洁清新独树一帜.目前大多数的github项目都已经移入到Travis CI的构建队列 ...

  3. github Travis CI 持续集成

    一个项目如何保证代码质量是开发中非常重要的环节,对于开源项目来说更是如此,因为开源项目要面对的是来自不同水平开发者提交的代码.所以围绕开源做持续集成(Continuous Integration)变得 ...

  4. 使用Travis CI自动部署Hexo博客

    自从使用GitHub Pages和Hexo来发布博客之后,不得不说方便了许多,只需要几个简单的命令博客就发布了.但在不断的使用中发现每次的发布操作也挺耗时的. 我一般的操作是将平时整理好的md文件放到 ...

  5. .NET Core+Selenium+Github+Travis CI => SiteHistory

    前言 总是三分钟热度的我折腾了一个可以每天自动截取指定网站页面并保存到Github的项目SiteHistory,感觉挺好(每次都这样). 想知道YouTube今天的首页长啥样么?点此查看 想知道You ...

  6. 使用Travis CI自动部署Hexo到GitHub

    原文链接(转载请注明出处):使用Travis CI自动部署Hexo到GitHub 前言 使用 hexo + gitPages 搭建个人博客的人都知道,每当要发表一篇博文,第一步得手动使用 hexo g ...

  7. Travis CI实现持续部署

    安装Ruby 2.0以上版本并安装travis的命令行工具 可以看出我的已经是安装好的(Ubuntu 16.04.3 LTS 系统) ruby -v ruby --) [x86_64-linux-gn ...

  8. gradlew在Travis CI没可执行权限 permission denied

    问题的来源 我给一个gradlew项目添加Travis CI的时候遇到一个问题,gradlew没有可执行权限.具体错误如下: /home/travis/build.sh: line 45: ./gra ...

  9. iOS中 为 iOS 建立 Travis CI 韩俊强的博客

    每日更新关注:http://weibo.com/hanjunqiang  新浪微博! 你是否曾经试着为 iOS 项目搭建一台支持持续集成的服务器,从我的个人经验而言,这可不是一个轻松的活.首先需要准备 ...

随机推荐

  1. (转)理解MySQL——索引与优化

    参考资料:http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html ———————————— 全文: 写在前面:索引对查询的速度有着 ...

  2. Daily Build

    Daily Build 是一件非常有意义的事情,也是敏捷开发中关于 “持续集成” 的一个实践.Daily Build 对于开发来说有如下好处: 保证了每次 check in 的代码可用,不会造成整个工 ...

  3. Tomcat端口被占用错误

    所报错误: 严重: Error initializing endpointjava.lang.Exception: Socket bind failed: [730013] ????????????? ...

  4. java8入门 错误:找不到或者无法加载主类

    如果你也遇上的这个问题,但是如果你的Java版本不是6以上,这个解决方案可能就不适合你... 最近在跟着李兴华老湿的视频<<编程开发入门Java 8>>的学习Java... 但 ...

  5. codevs1316 文化之旅

    题目描述 Description 有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文化的国家).不同的国家可 ...

  6. 手动封装js原生XMLHttprequest异步请求

    Code Object.extend =function(targetObj,fnJson){ //扩展方法,类似于jQuery的$.extend,可以扩展类的方法,也可以合并对象 for(var f ...

  7. python之路七

    静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量 ...

  8. Is there a difference between `==` and `is` in Python?

    There is a simple rule of thumb to tell you when to use == or is. == is for value equality. Use it w ...

  9. Qt:正则表达式语法:

         正则表达式是验证输入.从输入中提取数据以及对输入进行搜索和替换的强大工具,所谓正则表达式,regexp是一种利用模式匹配语言来描述字符串组成限制条件的方式;        Qt 提供了一个Q ...

  10. java 深入技术三(List)

    List ArrayList List接口 List接口的父接口-Collection List接口的重要子类- ArrayList -LikedList List接口不重要子类-Vector jav ...