Travis-CI 是一个专门为开源项目打造的持续集成环境(付费可以支持私有项目),目前已经支持绝大部分主流语言,它的配置文件采用 yaml 格式,简洁清新独树一帜。
前言
当我们在 GitHub 上的代码仓库发生 Commit 或 PR 等事件后,会通知 Travis CI 执行构建操作,并在 GitHub 对应的 Commit 后显示构建状态或结果,如图所示:
本文以 EFResume(一个使用 Swift 作为开发语言的简历模板) 为例,简述怎样为自己的开源项目添加持续构建功能。
0. 指定 Swift 版本
如果项目(全部或者部分)是用 Swift 进行开发的话,需要声明使用的 Swift 语言版本,如果不包含 Swift 代码可以忽略这一步。
在根目录下添加一个 .swift-version 文件,在其中填写 Swift 版本号,例如这里 EFQRCode 库使用 Swift 4.0 进行开发,所以这里填写的是:
4.0
具体可参考 EFResume 工程中的对应文件。
需要注意的是,以 . 开头的文件在 macOS 下默认为隐藏文件,在 Finder 中使用快捷键 Command + Shift + . 可以打开 / 关闭隐藏文件的可见性。
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
解释一下这段配置的要点:
- osx_image:Xcode 大版本,这里我们填写最新的
xcode9就可以了; - language:Xcode 工程的话,默认写
objective-c就行了,即使是纯 Swift 项目; - env:环境变量,XCODE_PROJECT 为 Xcode 工程文件路径;SCHEME 就是需要执行的 Scheme,没啥好解释的,不过需要注意的是这里的 Scheme 必须是已经勾选了
Shared的,如下图所示;
- 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 并且附带测试的:EFQRCode。
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 具体干了啥:
5. 观察错误日志
若发生构建失败,可通过查看错误日志的方式来定位具体问题原因,可点击工程名,选择出错的那一次构建即可:
这里需要注意的是,偶然会发生 Travis-CI 由于自身的未知原因导致的构建失败,如果排查问题时发现自己的配置没啥问题,那么可以试试 Restart build 能否解决问题:
没了
本文只提供了针对 Xcode 项目的操作步骤,Travis-CI 具体到每种语言/项目的构建配置各不相同,参数各异,有的时候还需要根据自己的项目特性做一些个性化的调整,需要我们多思考,多调试,多尝试,总之不要轻易放弃哇。别问我是怎么知道的,😂 :
再读一篇类似文章?
利用 CodeBeat 为你在 GitHub 上的项目进行代码质量管理
如有任何知识产权、版权问题或理论错误,还请指正。
https://juejin.cn/post/6844903529623076871
转载请注明原作者及以上信息。