在iOS应用中使用CircleCI 2.0
我们已经在许多开源项目中使用CircleCI。 自2017年末以来,2.0版本开始问世,我们认为现在是与Swift 4.1和Xcode 9.3一起尝试的好时机
2.0版的问题在于它是如此强大,并且具有许多很酷的新功能,例如作业和工作流,但是这需要查阅有关如何迁移配置文件的文档,尤其是“搜索和替换不推荐使用的2.0键”
首先是在config.yml
文件夹中创建一个新的.circleci
将现有的circle.yml文件复制到项目存储库根目录中名为.circleci的新目录中。
接下来是声明版本和作业
将版本:2添加到.circleci / config.yml文件的顶部。
对于简单的情况,我们仅使用xcodebuild
来构建和测试项目,因此最好在本地进行尝试,以避免进行大量尝试提交来触发CircleCI。 你可以看一下这个PR hyperoslo / Cheers#20
在我们的1.0版配置文件看起来像这样之前
-设置-o pipefail && xcodebuild -project Cheers.xcodeproj -scheme“ Cheers-iOS” -sdk iphonesimulator -destination'platform = iOS Simulator,name = iPhone 8,OS = 11.0'-enableCodeCoverage是测试
现在我们应该将pipefail
放入shell
,按照CircleCI-Public / circleci-demo-ios:.circleci / config.yml @ master
shell:/ bin / bash —登录-o pipefail
现在是实际尝试的xcodebuild
,由于destination
参数而导致许多失败
xcodebuild:错误:找不到与提供的目标说明符匹配的目标:
{platform:iOS Simulator,OS:11.3}缺少必需的设备说明符选项。
设备类型“ iOS Simulator”要求指定“名称”或“ id”。
请提供“名称”或“ id”。xcodebuild:错误:选项“目标”至少需要一个参数,格式为“键=值”
我发现这可以正常工作,在与xcodeproj
相同的文件夹中运行
xcodebuild -project Cheers.xcodeproj -scheme“ Cheers-iOS” -sdk iphonesimulator-目标“ platform = iOS Simulator,OS = 11.3,name = iPhone X” -enableCodeCoverage是测试
2.0版引入了有助于组织工作的工作流程
工作流程是一组用于定义作业及其运行顺序的规则。 工作流使用一组简单的配置键来支持复杂的业务编排,以帮助您更快地解决故障。
对于我们的简单用例,我们添加此工作流程
工作流程:
版本:2
建立并测试:
工作:
-建立并测试
原始故事https://github.com/onmyway133/blog/issues/158