在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