如何轻松为iOS项目设置GitLab持续集成

从未使用过它时,如何使Gitlab-CI / CD Fastlane集成?

我们最近在Lodoss团队面对了这一挑战。 在本初学者指南中,我将分享我们的分步过程,最初的期望和最终结果。 因此,您将能够轻松地自行配置GitLab-CI / CD和Fastlane。

我们为什么要持续集成?

一切都应有目的地完成。 我们考虑了自动化的以下必要要点:

  • 自动运行Swiftlint
  • 提高代码质量
  • 减少体力劳动
  • 自动运行UI和单元测试作业

这不是我们需要的全部清单,但是,这是一个很好的起点。 在我们的工作中,我们通常使用以下GitFlow ,并且还使用它来自动化CI / CD流程。

这是描述我们想要获得的成功案例的序列图:

此外,如果有必要(例如,从功能分支进行紧急构建以向管理人员显示新功能) ,则可以通过使用标签来使用所有这些序列。

为什么选择GitLab-CI?

我们有GitLab,但找不到使用其他东西的任何理由。 因此,我们决定使用它,为什么不使用😎? 对我而言,GitLab-CI / CD比Jenkins更面向开发人员。 至少因为它是针对管道,标签和分支的,而不像詹金斯那样有工作。 而且我们必须使用这些东西来获得必要的工作,而不是不用代码进行配置。 GitLab-CI / CD似乎是一种用于在远程计算机上运行脚本的工具。 没有更多,但足够了。

一段时间后,我们意识到使用Fastlane并没有关系。 因为它能够满足我们的所有需求。 结果,我们摆脱了其他工具的束缚。 因此,我强烈建议您使用Fastlane代替手动脚本或其他方法。

为什么选择Fastlane?

Fastlane是自动化iOS和Android应用程序Beta部署和发布的最简单方法。 🚀它可以处理所有繁琐的任务,例如生成屏幕截图,处理代码签名以及发布应用程序。

我们决定使用Fastlane,因为它:

  • 让生活更美好
  • 减少自动化时间
  • 拥有清晰的文档

提到的原因还意味着团队中的其他开发人员将很容易学习。 当然,简单的过程比复杂的过程要好。

设置GitLab-CI和Fastlane

设置您的Xcode项目

  1. 在Xcode中创建一个新项目。
  2. 为项目命名。
  3. 转到项目方案,然后如下图所示打开共享标志:

4.将其推入您的GitLab存储库。

因此,第一阶段已经过去,我们可以继续。

安装和注册GitLab Runner

GitLab Runner是一个开源项目,用于运行您的作业并将结果发送回GitLab。 它与GitLab CI结合使用,GitLab CI是GitLab随附的用于协调作业的开源持续集成服务。

manbetx客户端打不开有很好的文档,您可以轻松地自己调查所有问题。 只需按照以下步骤操作:

  1. 创建一个新用户 Cocoapods 不能以root用户身份运行,您应该以指定的身份启动运行器)
  2. 根据安装说明安装流道。
  3. 根据说明注册跑步者。
  4. /Users/gitlab-runner一样,将/Users/gitlab-runner/.gitlab-runner/config.toml文件中的working_directory设置为/Users/gitlab-runner/.gitlab-runner/config.toml程序用户的根路径。
  5. 再次停止并启动跑步者。

或按照以下osx的说明进行操作:

  1. 下载适用于您系统的二进制文件:
 sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64 

2.授予其执行权限:

 sudo chmod +x /usr/local/bin/gitlab-runner 

3.在此处按照以下说明进行注册。 并选择了执行者作为shell 并向其中添加ios标签(这些标签是可选的,但是,本文中的代码使用 ios 标签来确定将选择哪个跑步者来执行一项工作,但您可以跳过它)

4.将流道作为服务安装并启动它:

 gitlab-runner install 
gitlab-runner start

config.toml文件的示例:

 并发= 2 
  [[跑步者]] 
name =“跑步者名称”
url =“您的gitlab url”
令牌=“跑步者令牌”
执行者=“壳”
working_directory =“用户主目录的路径”

如果操作正确,则跑步者应查看GitLab页面,如下图所示:

安装和设置Fastlane

您可以按照官方说明自行调查过程(因为真正的工程师更愿意自己找到正确的方法😂)。 在这里,我只分享了fastlane配置文件的源代码,用于在develop分支上进行合并提交:

上面的脚本使用swiftlint。 因此,请不要忘记将其安装到所有装有转轮的机器上。

顺便说一句,您可以使用Gemfile文件安装一些很棒的工具,例如cocoapods等。 我们使用以下内容:

 来源“ https://rubygems.org” 
 宝石“ fastlane” 
 宝石“ cocoapods” 

这种方法使您不必担心二手计算机上缺少必要的应用程序。

添加.gitlab-ci.yml

您可以按照官方说明自行调查该过程(您知道为什么,不是吗?😉)。 在这里,我只是共享fastlane配置文件的源代码,以进行develop分支上的合并提交:

让我们来看一下这些工作的描述:

  • lint在任何分支上通过push commit根据fastlane配置文件中的规则运行快速
  • 测试在任何分支上通过push commit根据fastlane配置文件中的规则运行测试
  • 通过仅在开发分支上推送提交/合并/标记,develop根据fastlane配置文件中的规则运行构建

在测试所有这些之前,我们应该解决有关代码签名的下一个问题……我建议您在此处阅读有关该问题的下一篇文章,并确定哪种方法对您更好。 但是,第一次您可以使用手动方式进行代码签名,并且在运行者数量超过一个之后,最好选择其他方式。

另外,如果希望将SLACK_URL FL_SLACK_CHANNEL作业的通知发送到Slack中,则可以将SLACK_URLFL_SLACK_CHANNEL添加到CI / CD Pipelines变量。 因此,至此,我们的工作已经完成,您可以通过在开发分支上执行push commit来检查其结果。

结论

我们为自动化需求构建了出色的解决方案。 综上所述,使用Fastlane作为主要工具是一个不错的选择。 因此,我们得到:

  • 更好的代码质量
  • 自动运行Swiftlint检查
  • 自动运行UI和单元测试作业
  • 减少体力劳动
  • 自动构建并交付给质量检查小组和客户小组

感谢您的阅读。 希望本文对您有所帮助。 请随时问我是否有任何问题🙂

参考文献

亚搏体育app持续集成与开发 部署方式
GitLab CI / CD是GitLab的一部分,GitLab是具有API的Web应用程序,该API将其状态存储在数据库中。 它管理着… about.gitlab.com fastlane –应用程序自动化正确完成
自动执行最耗时的Beta分发步骤,包括增加构建版本,代码签名… fastlane.tools 领域/ SwiftLint
SwiftLint –一种用于实施Swift样式和约定的工具。 github.com