使用使用Cocoapods的iOS项目设置GitLab CI
我们都为应用程序编写测试,并将其保留在版本控制的系统(如GitLab或GitHub)中。 但是,我们如何配置GitLab为我们运行单元和UI测试?
我找不到很多文档来解释如何在GitLab上为iOS设置持续集成,因此我正在写这篇文章。
Victor Peschenkov在他的文章中解释了如何在Fastlane中使用GitLab CI。 我的文章重点介绍如何自己运行所有内容。
要求
为了为iOS设置GitLab Runner,我们需要以下工具:
- 苹果电脑
- Xcode 10
- GitLab.com帐户(或一个自托管帐户)
- 家酿
- CocoaPods(使用自制软件:
brew install cocoapods
)
请先安装这些工具,然后再继续。
配置Xcode
确保从Mac App Store下载Xcode。 安装完成后,打开它并创建一个项目以确保它已完全安装并正在运行。
iOS专案
我创建了一个示例项目,以帮助您更快地入门。 随意分叉它或使用您自己的项目。 请使用以下方法验证您的安装:
-
git checkout git@gitlab.com:skofgar/ios-ci-sample.git
- 切换到项目文件夹并运行
pod install
- 在计算机上运行以下命令,以验证您可以成功构建并运行测试-这意味着没有“失败”或其他错误消息
xcodebuild测试
-workspace“ CI Sample.xcworkspace” \
-方案“ CI示例”-目标“平台= iOS模拟器,名称= iPhone XR,OS = 12.0” \
| xcpretty -s
安装GitLab Runner
iOS项目需要特殊的GitLab Runner。 通常,gitlab-runner可以托管在任何计算机上(虚拟机,Linux,Mac或Windows系统)。 但是,与iOS相关的项目需要GitLab Runner,它必须在Xcode的Mac上托管才能成功构建。
在Mac上安装GitLab Runner
请按照以下步骤在Mac上配置GitLab Runner:
- 使用命令
brew install gitlab-runner
- 转到您的GitLab实例,前往
Settings
>“CI/CD
- 禁用
shared runners
(或者,您可以使用标签仅将Mac用于构建iOS项目) - 转到
Specific Runners
并保存您的GitLab服务器url
和token
- 按照GitLabs文档中的说明注册跑步者
-
gitlab-runner register
1.出现提示时,从上方输入url
2.接下来,输入registration token
3.命名您的跑步者
4.将标签留空
5.使用shell
执行器 - 开始你的跑步者
光盘〜
gitlab-runner安装
gitlab-runner开始
请注意,如果重新启动计算机,则可能必须再次启动GitLab Runner。
重新加载CI / CD设置页面。 如果一切顺利,您应该可以在“ 特定跑步者”部分中看到跑步者 :
创建gitlab-ci.yaml
一旦有了用于iOS的GitLab运行程序和一个项目,就需要对其进行配置。 请添加gitlab-ci.yaml并插入:
阶段:
-建立
变量:
LC_ALL:“ en_US.UTF-8”#显然xcpretty否则将无法正常运行
before_script:
-宝石安装cocoapods
-吊舱安装
build_project:
阶段:建立
脚本:
-xcodebuild clean -workspace“ CI Sample.xcworkspace”-方案“ CI Sample” | xcpretty
-xcodebuild测试-workspace“ CI Sample.xcworkspace”-方案“ CI Sample”-目标'platform = iOS Simulator,name = iPhone XR,OS = 12.0'| xcpretty -s
提交该文件后,GitLab-CI应该立即启动并开始构建您的项目,然后运行测试。
就是这样,您已经完成了!
反馈
你怎么看? 如果您遇到任何问题或有改进建议,请告诉我。
资源资源
- https://about.gitlab.com/2016/03/10/setting-up-gitlab-ci-for-ios-projects/
- https://medium.com/flawless-app-stories/how-to-set-up-gitlab-continuous-integration-for-ios-projects-without-a-hustle-53c2b642c90f
- https://github.com/supermarin/xcpretty/issues/73
最初发表在 Skofgar的Blog上 。