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,您需要做一些事情:

  1. 您的Flutter应用经过了一些测试。
  2. 该应用程序应托管在GitHub,GitLab或Bitbucket上。
  3. 如果您想发布到App Store或Play商店,请进行代码签名的详细信息,例如证书和配置文件。
  4. 可选的Slack工作空间,用于发送构建报告和工件。

就这样! 如果您有上述物品,现在可以将CI / CD添加到Flutter应用程序中。 现在,让我们看一下来自实际应用程序的一些基本示例。

注册Codemagic

前往codemagic.io并使用您的GitHub,Bitbucket或GitLab帐户进行注册。 您可以使用一个Codemagic帐户连接所有这些存储库,因此可以将所有应用程序放在一个位置。

创建您的第一个版本

登录后会看到的第一件事是带有应用程序存储库的仪表板,您可以在其中过滤或搜索应用程序以找到Flutter应用程序。 现在,您可以通过单击“开始您的第一个构建”按钮开始。

默认构建工作流程

一旦开始构建,Codemagic将为Flutter项目创建工作流程。 如果需要,可以对其进行自定义以满足您的需求。 默认工作流程将通过以下步骤开始构建。

这些步骤包括准备构建机器,签出源代码,安装Flutter依赖项,运行测试,构建应用程序以及发布工件。

建立报告

构建完成后,您将能够看到所有详细信息的概述。 看起来像这样:

您还将收到包含所有这些详细信息的电子邮件。 如果您希望在Slack频道中拥有构建报告,也可以这样做。

那很容易,不是吗?

构建失败

不幸的是,并非所有构建都成功。 在这种情况下会发生什么? Codemagic提供每个步骤的非常详细的日志,无论该步骤是否通过。 在这里,我们可以看到失败的单元测试,并且所有详细信息都记录在构建失败中。

如我们所见,集成测试和小部件测试通过了,但是单元测试失败了。 您可以解决问题以修复构建。 如果测试失败,您还将收到有关测试失败的电子邮件,其中包含指向构建日志的链接。

自定义工作流程与默认工作流程

Default流程将涵盖CI / CD所需的所有基础知识,但通常您会希望在构建过程中添加一些自定义内容。 您可能希望将构建状态发送到某个第三方通信渠道,例如Slack。 现在,让我们看看如何自定义工作流程。

建立阶段

Codemagic中Flutter应用程序的构建阶段提供了各种选项来定义构建过程。 首先选择要构建的分支,然后选择触发构建的方式。

您还可以选择:

  1. 颤振版本;
  2. 构建用于构建应用程序的配置,例如调试或发布;
  3. iOS或Android等平台;
  4. Xcode版本;
  5. 自定义构建参数。

默认工作流程选择以下设置作为构建的一部分。

但是,您始终可以通过更改默认行为来自定义构建过程。 另外,您可以在每个阶段之前添加自定义脚本。 要进行设置,只需单击每个阶段顶部的+号即可。 您可以在下面的照片中看到它的外观。

测试阶段

在测试阶段,您可以启用或禁用执行。 测试阶段本身包含两个部分,一个部分用于单元和小部件测试,另一部分用于集成测试。 Codemagic将自动识别小部件,单元和集成测试,并将默认启用它们,如下所示。

Codemagic中的测试部分

您始终可以通过禁用默认设置来使用自定义测试命令。 例如,如果您仅想从命令行运行UI测试,则可以使用以下命令添加预测试阶段:

$ flutter驱动器— target = test_driver / main.dart

这将触发此命令,而不是默认命令。

发布阶段

默认情况下,在发布阶段,仅配置了您提供的电子邮件,如果要发布构建报告和工件,则需要配置其他详细信息。 您应该配置发布阶段的任何其他方面,包括:

  1. 上载Android和iOS的代码签名资产
  2. 设置松弛
  3. 提供Google Play和App Store Connect详细信息以进行发布

Codemagic中的“发布”部分

您可以编写自定义脚本,以将工件部署到类似的第三方服务。 在这些之上,我们还可以编写一些自定义脚本,以将工件部署到Fabric或App Centar等第三方服务。

多个工作流程

使用Codemagic,您可以创建多个工作流,以满足各种配置和软件版本的不同要求。 通过复制现有工作流程并将其重命名来创建新的工作流程。 为此,请按照以下简单步骤操作:

  1. 转到应用设置。
  2. 在“工作流程设置”部分中,单击“重复的工作流程”。 选择工作流程并重命名。

结论

Codemagic是唯一专门针对Flutter应用程序的专用CI / CD解决方案,它允许您以零配置构建,测试和发布Flutter应用程序。 并且不要忘记,您还可以使用自定义工作流在受控环境中运行构建。