使用我们的持续集成工具来持续集成我们的持续集成工具

在开发功能标记工具Bullet Train的过程中,我们到了实际上是在使用Bullet Train开发Bullet Train的地步,以便我们可以在不断集成的同时不断集成。

我们开发Bullet Train的信念是,持续集成是所有开发团队都应追求的目标。 功能标记和远程配置可以极大地帮助实现CI的目标,尤其是在生产环境中。 因此,遵循这种信念并避免过于虚伪,我们将其对CI的好处用于开发工具本身。

使用我们的持续集成工具来持续集成我们的持续集成工具

Bullet Train是一个开源项目,可让您从代码中分离发布和配置功能。 您可以在Web,移动和服务器端应用程序上跨多种语言管理功能标志和远程配置。

Using CI and Bullet Train is not all or nothing decision

开发人员经常考虑将持续集成作为一个全有或全无的决定,但这不是必须的。 CI可以在项目中的任何位置使用功能标记使用,以逐个功能地投入生产。

使用我们的持续集成工具来持续集成我们的持续集成工具

证明这一点的一个很好的例子是我们如何开始在其自身上使用Bullet Train。 我们在2018年6月推出了Beta版的初始版本。发布之后,我们立即开始使用忘记密码功能。

At this point the project was stable, we had End to End tests using Nightwatch that ran with every commit we pushed, so we were in a great place to start using continuous integration. These are the exact recorded steps we took to create a project and integrate the new forgot password feature with Bullet Train.

Step 1: Signed up

We created an account on https://bullet-train.io.
使用我们的持续集成工具来持续集成我们的持续集成工具

Step 2: Created a project

步骤1自动创建了一个名为Bullet Train的组织,并将我添加为成员。 下一步是创建一个项目。

使用我们的持续集成工具来持续集成我们的持续集成工具

Step 3: Created a feature flag for "forgot password"

Bullet Train为新创建的项目自动创建开发和生产环境。 我们创建了一个名为forgot_password的功能标志。

使用我们的持续集成工具来持续集成我们的持续集成工具

Step 4: Integration

至此,我们有了一个忘记密码功能,该功能在我们的开发和生产环境中均已禁用。 下一步是使用JavaScript SDK显示/隐藏我们的忘记密码功能。

创建该功能后,便会提供一些代码片段,以供安装和集成到我们的代码中。

使用我们的持续集成工具来持续集成我们的持续集成工具

Of course, how you integrate it is up to you. In our case, we had a React application and a Flux store which broadcasted when feature flags changed. Finally, our homepage would show the forgot password link depending on what Bullet Train returned. You can see the commit for this process here here

使用功能标志意味着我可以按原样将此功能发布到生产环境中,而无需进行其他开发。

Step 5: Enabling the feature

在生产中使用新的忘记密码功能后,我要做的就是启用它,以便将其部署到世界各地。 一旦启用了仪表板中的“忘记密码”功能,便可以在网站上看到它。

使用我们的持续集成工具来持续集成我们的持续集成工具

How does this help us?

不习惯持续集成的人们可能会想知道:为什么我不像往常那样发布该功能? 功能标记之所以如此好用的一些原因是:

  • 它使我能够继续进行生产的集成。 现在,每次推送到主节点的提交都会自动构建到生产环境。它引入了在生产中测试代码的能力,并针对特定用户逐步/有针对性地推出了产品。它使非技术团队成员能够管理功能发布。它可以根据最新的代码库及早测试功能。 CI表示我们正在以与生产中正在运行的产品非常接近的形式不断测试功能。它允许您引入Beta程序以获得早期的用户反馈。通过在紧急情况下远程关闭功能,它减少了回滚代码的需要。

愉快的发展!


使用我们的持续集成工具来持续集成我们的持续集成工具

from: https://dev.to//kylessg/using-our-continuous-integration-tool-to-continuously-integrate-our-continuous-integration-tool-412g