Flutter与Codemagic的持续集成
如果您甚至对移动应用程序开发不感兴趣,那么您就会知道一个陌生的孩子– Flutter。 Google的新移动应用SDK,允许开发人员使用相同的源代码和语言编写iOS和Android应用。
随着一些最大的公司开始为其应用程序选择Flutter,Flutter的受欢迎程度正在迅速提高。 例如,世界电子商务巨头阿里巴巴。
随着越来越多的应用程序,对于Flutter应用程序的持续集成和持续交付(CI / CD)需求也越来越大,以便可以对其进行定期测试和发布。 幸运的是,Google与Nevercode合作,开发了专门针对Flutter应用程序的Codemagic CI / CD解决方案。 在本文中,我们将说明如何为您正在开发或已经开发的Flutter应用设置Codemagic。
Codemagic — Flutter的第一个CI
Codemagic使您可以测试和发布Flutter应用程序,而不会出现问题且没有配置。 开发人员可以运行自定义脚本并为其应用创建自定义工作流。
开始吧!
要求
要开始使用Codemagic,您需要做一些事情:
- 您的Flutter应用经过了一些测试。
- 该应用程序应托管在GitHub,GitLab或Bitbucket上。
- 如果您想发布到App Store或Play商店,请进行代码签名的详细信息,例如证书和配置文件。
- 可选的Slack工作空间,用于发送构建报告和工件。
就这样! 如果您有上述物品,现在可以将CI / CD添加到Flutter应用程序中。 现在,让我们看一下来自实际应用程序的一些基本示例。
注册Codemagic
前往codemagic.io并使用您的GitHub,Bitbucket或GitLab帐户进行注册。 您可以使用一个Codemagic帐户连接所有这些存储库,因此可以将所有应用程序放在一个位置。
创建您的第一个版本
登录后会看到的第一件事是带有应用程序存储库的仪表板,您可以在其中过滤或搜索应用程序以找到Flutter应用程序。 现在,您可以通过单击“开始您的第一个构建”按钮开始。
默认构建工作流程
一旦开始构建,Codemagic将为Flutter项目创建工作流程。 如果需要,可以对其进行自定义以满足您的需求。 默认工作流程将通过以下步骤开始构建。
这些步骤包括准备构建机器,签出源代码,安装Flutter依赖项,运行测试,构建应用程序以及发布工件。
建立报告
构建完成后,您将能够看到所有详细信息的概述。 看起来像这样:
您还将收到包含所有这些详细信息的电子邮件。 如果您希望在Slack频道中拥有构建报告,也可以这样做。
那很容易,不是吗?
构建失败
不幸的是,并非所有构建都成功。 在这种情况下会发生什么? Codemagic提供每个步骤的非常详细的日志,无论该步骤是否通过。 在这里,我们可以看到失败的单元测试,并且所有详细信息都记录在构建失败中。
如我们所见,集成测试和小部件测试通过了,但是单元测试失败了。 您可以解决问题以修复构建。 如果测试失败,您还将收到有关测试失败的电子邮件,其中包含指向构建日志的链接。
自定义工作流程与默认工作流程
Default流程将涵盖CI / CD所需的所有基础知识,但通常您会希望在构建过程中添加一些自定义内容。 您可能希望将构建状态发送到某个第三方通信渠道,例如Slack。 现在,让我们看看如何自定义工作流程。
建立阶段
Codemagic中Flutter应用程序的构建阶段提供了各种选项来定义构建过程。 首先选择要构建的分支,然后选择触发构建的方式。
您还可以选择:
- 颤振版本;
- 构建用于构建应用程序的配置,例如调试或发布;
- iOS或Android等平台;
- Xcode版本;
- 自定义构建参数。
默认工作流程选择以下设置作为构建的一部分。
但是,您始终可以通过更改默认行为来自定义构建过程。 另外,您可以在每个阶段之前添加自定义脚本。 要进行设置,只需单击每个阶段顶部的+号即可。 您可以在下面的照片中看到它的外观。
测试阶段
在测试阶段,您可以启用或禁用执行。 测试阶段本身包含两个部分,一个部分用于单元和小部件测试,另一部分用于集成测试。 Codemagic将自动识别小部件,单元和集成测试,并将默认启用它们,如下所示。
Codemagic中的测试部分
您始终可以通过禁用默认设置来使用自定义测试命令。 例如,如果您仅想从命令行运行UI测试,则可以使用以下命令添加预测试阶段:
$ flutter驱动器— target = test_driver / main.dart
这将触发此命令,而不是默认命令。
发布阶段
默认情况下,在发布阶段,仅配置了您提供的电子邮件,如果要发布构建报告和工件,则需要配置其他详细信息。 您应该配置发布阶段的任何其他方面,包括:
- 上载Android和iOS的代码签名资产
- 设置松弛
- 提供Google Play和App Store Connect详细信息以进行发布
Codemagic中的“发布”部分
您可以编写自定义脚本,以将工件部署到类似的第三方服务。 在这些之上,我们还可以编写一些自定义脚本,以将工件部署到Fabric或App Centar等第三方服务。
多个工作流程
使用Codemagic,您可以创建多个工作流,以满足各种配置和软件版本的不同要求。 通过复制现有工作流程并将其重命名来创建新的工作流程。 为此,请按照以下简单步骤操作:
- 转到应用设置。
- 在“工作流程设置”部分中,单击“重复的工作流程”。 选择工作流程并重命名。
结论
Codemagic是唯一专门针对Flutter应用程序的专用CI / CD解决方案,它允许您以零配置构建,测试和发布Flutter应用程序。 并且不要忘记,您还可以使用自定义工作流在受控环境中运行构建。