利用 Travis CI 让你在 GitHub 上的 Xcode 项目持续构建

Travis-CI 是一个专门为开源项目打造的持续集成环境(付费能够支持私有项目),目前已经支持绝大部分主流语言,它的配置文件采用 yaml 格式,简洁清新独树一帜。git

前言

当咱们在 GitHub 上的代码仓库发生 Commit 或 PR 等事件后,会通知 Travis CI 执行构建操做,并在 GitHub 对应的 Commit 后显示构建状态或结果,如图所示:github

持续构建效果预览

本文以 EFResume(一个使用 Swift 做为开发语言的简历模板) 为例,简述怎样为本身的开源项目添加持续构建功能。objective-c

0. 指定 Swift 版本

若是项目(所有或者部分)是用 Swift 进行开发的话,须要声明使用的 Swift 语言版本,若是不包含 Swift 代码能够忽略这一步。swift

在根目录下添加一个 .swift-version 文件,在其中填写 Swift 版本号,例如这里 EFQRCode 库使用 Swift 4.0 进行开发,因此这里填写的是:xcode

4.0
复制代码

具体可参考 EFResume 工程中的对应文件bash

须要注意的是,以 . 开头的文件在 macOS 下默认为隐藏文件,在 Finder 中使用快捷键 Command + Shift + . 能够打开 / 关闭隐藏文件的可见性。post

1. 添加 Travis-CI 配置文件

在根目录下添加一个 .travis.yml 文件,在其中填写配置信息:测试

osx_image: xcode9
language: objective-c

env:
  global:
    - LANG=en_US.UTF-8
    - LC_ALL=en_US.UTF-8
    - XCODE_PROJECT=core/EFResume.xcodeproj
  matrix:
    - SCHEME="EFResume"

before_install:
  - gem install xcpretty --no-rdoc --no-ri --no-document --quiet

script:
  - set -o pipefail
  - xcodebuild -project "$XCODE_PROJECT" -scheme "$SCHEME" -configuration Debug clean build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO | xcpretty -c

after_success:
  - sleep 3
复制代码

解释一下这段配置的要点:ui

  • osx_image:Xcode 大版本,这里咱们填写最新的 xcode9 就能够了;
  • language:Xcode 工程的话,默认写 objective-c 就好了,即便是纯 Swift 项目;
  • env:环境变量,XCODE_PROJECT 为 Xcode 工程文件路径;SCHEME 就是须要执行的 Scheme,没啥好解释的,不过须要注意的是这里的 Scheme 必须是已经勾选了 Shared 的,以下图所示;

Manage Schemes...

  • before_install:这里能够填写一些自定义命令来安装须要的依赖,官方解释以下;
In a before_install step, you can install additional dependencies required by your project such as Ubuntu packages or custom services.
复制代码
  • script:这里是须要执行的构建脚本,通常在此处执行 build 之类的命令便可,CocoaPods 库的话能够额外加一句;
  • after_success:这里能够存放构建经过后的自定义命令,这里放了一个休眠 3 秒是为了规避一个 Travis-CI 的 Bug。

唔,CocoaPods 库的 .travis.yml 配置文件能够参考:EFCountingLabel,iOS App 能够参考:VSCAM,还有一个比较完整的项目是一个 CocoaPods 库包含了 iOS / macOS / tvOS 三个 Demo 而且附带测试的:EFQRCodespa

2. 注册 Travis-CI 帐号

打开 travis-ci.org/ 注册一个 Travis-CI 帐号,也能够经过 GitHub 帐户直接登录。Travis-CI 服务对开源项目是免费的,因此你的私有项目没法享受到免费的持续构建服务。

3. 从 GitHub 同步项目

第一次进入时会自动从 GitHub 同步项目数据,可能须要等待一段的时间进行同步,同步完成后能够看到以下的项目列表:

项目列表

通常状况下每隔必定的时间 Travis-CI 都会从 GitHub 自动同步数据,若是新添加的项目想要马上同步到 Travis-CI 的话,能够手动点击右上角的 Sync account 同步按钮,如图所示:

同步按钮

4. 开启持续集成

而后接下来就是开启对应项目的持续构建,你们应该已经猜到该怎么作了吧...将对应项目以前的 Switch 按钮设为启用绿色勾选状态便可,如图所示:

勾选状态

唔,细心的同窗可能会发现,这一步操做完成后咱们在 GitHub 项目 Setting 中的 Integrations & services 已经添加了一个名为 Travis CI 的服务,感兴趣的同窗能够点击该服务名称查看一下 Travis CI 具体干了啥:

Integrations & services

5. 观察错误日志

若发生构建失败,可经过查看错误日志的方式来定位具体问题缘由,可点击工程名,选择出错的那一次构建便可:

构建日志

这里须要注意的是,偶然会发生 Travis-CI 因为自身的未知缘由致使的构建失败,若是排查问题时发现本身的配置没啥问题,那么能够试试 Restart build 可否解决问题:

Restart build

没了

本文只提供了针对 Xcode 项目的操做步骤,Travis-CI 具体到每种语言/项目的构建配置各不相同,参数各异,有的时候还须要根据本身的项目特性作一些个性化的调整,须要咱们多思考,多调试,多尝试,总之不要轻易放弃哇。别问我是怎么知道的,😂 :

坑


再读一篇相似文章?

利用 CodeBeat 为你在 GitHub 上的项目进行代码质量管理


若有任何知识产权、版权问题或理论错误,还请指正。 https://juejin.im/post/5a32154e51882503dc53b976 转载请注明原做者及以上信息。

相关文章
相关标签/搜索