TicketMaster移动团队始终是每周发布的目标。在今年的上半年,我们能够完成它,自2月以来每周提供Android和IOS应用程序的新版本。我们已经对粉丝看到了积极的影响,它比我们想象的更容易 - 使我们的整个应用程序开发过程更好。

但它没有以这种方式开始......

点评-2.更快,更一致的释放周期导致TicketMaster应用程序的用户更好的风扇体验。

There comes a time in every engineer’s career when a part of your tech stack no longer passes the “smell test." Usually, there is some sort of dramatic event where something that was generally accepted as “isn’t the best, but it works” changes to “this is now a problem.” For me and the Ticketmaster mobile team, this event happened with our Jenkins-based CI pipeline in February.

我们即将发布我们的Android应用程序的最新版本,但构建中存在错误。我们忘记了递增Android VersionCode,这意味着我们需要更新并创建一个新的二进制文件来上传到商店。这是一天结束,一个阳光明媚的下午迅速逐渐褪色为好莱坞的黑暗。到目前为止,它是下午6点PST,每个人都渴望离开。

“没问题,”我想。我可以在三分钟内在本地建立发布,向QA团队提供文件,我们都可以继续我们的方式。

“不会帮助我们,”回答我的高标准和特殊的QA团队。

“所有释放都需要来自CI的一致性。”他们是对的。本地构建不会安全生产。新利18骗如果我的机器配置介绍了一个问题,该怎么办?

“好的,那么通过我们的Jenkins CI管道创造了多长时间才能通过我们的jenkins ci管道创建?”我问道,讨论时间不能比30分钟更糟糕。

“需要两个小时,”回应。叹气......要成为深夜。

Sysiphus.

我们的旧CI管道

Gitlab CI拯救这一天(一天!)

两个......小时......进行次要变化。现在我不能把所有责任归咎于詹金斯。其中一些可能是我们自己的故障,生成太多的构建口味,强制在步骤之间进行干净的重建,并运行额外的测试以进行弃用功能。但是,很清楚我们需要在CI改变并变得更好。詹金斯过去几年总是有点笨拙。通过插件和多年的遗留开发权衡,我们也很难用新的SDK更新Jenkins机器,我们必须依靠其他团队来协助我们。我们显然需要一个新的开始。

我们在TicketMaster上使用Gitlab几年进行代码审查,并视觉浏览我们的Git历史,因此试图利用它是有道理的Gitlab的新CI工具值得拍摄。我开始了一个有用的Android新利18官方网站博客帖子用于从Greyson Parrelli设置Gitlab CI

但我很快就遇到了一个问题。在TicketMaster下,我们使用亚马逊ECR为我们Docker.容器注册表而不是Gitlab Repos,就像在教程中一样。在Kraig Amador,Tim Nichols和TicketMaster的其他人的帮助下,我学会了如何将我的Docker容器图像推向亚马逊ECR,并将其拉下来,为Gitlab CI中的每个Android构建。最终结果是显着的改善:

gitlab-ci.我们的Gitlab CI构建和测试需要8分钟,以建立,测试和发布工件。

总共不到八分钟,从承诺建立,测试和生成伪影。我们可以使用Gradle和Sonarqube插件来帮助我们使用CodeBase的每一个提交计算代码质量,除了通过失败的测试以评估所有合并请求,给我们提供更有价值的信息。这为我们的团队编号提供了衡量和实现目标。

我们可以在Gitlab看到一个地方的一切。iOS团队有一个更复杂的管道,但他们迅速遵循自己的,在本地跑步者上运行他们的测试。自2月以来,我们每周发布我们的移动应用程序,而Gitlab CI在过去几年的释放中一直是我们成功的大部分。

从Gitlab文物到每周版本

每周释放Gitlab CI帮助我们每周释放新版本更加一致。

在更快的周期时间和更快的版本中,我们已经看到了其他好处。由于每个版本具有较小的变化集,因此我们的崩溃速率和储存额定值提高了。我们有更少的时间等待构建并花费更多时间提高产品质量。新利18骗我们的粉丝更迅速地将功能迅速地从更高质量和始终如一的改进产品中获得功能。新利18骗Gitlab上可用的CI分析是我们团队的额外记分牌,以优化和改进未来。

现在,每当我们将新SDK集成到我们的移动应用程序中时,我们都会帮助其他团队在Gitlab CI中设置SDK,以将集成的构建推向我们的集成和功能测试作为我们进程的一部分。我们是更快地创新

几个月前,我们的CI管道看起来非常沮丧。现在它是一个完整的球场。如果您的团队正在寻找一种呼吸新鲜生活的方法,即可进入遗产CI管道,我建议看看Gitlab CI。它是我们在TicketMaster的移动团队的真实游戏更换者。

点评-1.点评-3.

关于作者

Jeff Kelsey是TicketMaster的Android开发团队的主要工程师。在推特上找到他@jeffkelsey

尝试所有Gitlab功能 - 免费30天

Gitlab不仅仅是源代码管理或CI / CD。它是一个完整的软件开发生命周期和Devops工具在一个应用程序中。

尝试Gitlab免费
18新利赢钱

尝试18luck mx 无风险30天。

不需要信用卡。有问题吗?联系我们。

gitlab x图标svg