欢迎大家在Patreon上向我提供更多诸如此类的素材。
在本系列的这一章节,我们将简要介绍使用CircleCI与我们的其中一项服务建立持续集成。
CircleCI是一款不可思议的工具,它有一个非常实用的免费平台。这个平台就是SaaS, 因此与Jenkins不同的是,它是被完全管理的。同时它的配置和建立非常直截了当。此外,CircleCI也使用Docker图片,所以你可以在如何管理你的构建上有很多创意。
确保你已经注册并且创造了账户。首先让我们在Circle中新建一个工程。在左侧菜单中,点击“add project”。如果你已经将你的github账户连接到你的Circle账户,你应该可以看到你的微服务git仓库出现在列表中。点击“follow project”。
你会看到一个请求页面,你可以选择你
乐于使用的操作系统和语言。确保Linux和Go被选中。然后点击开始构建。
这将创造一些默认的配置,但是我们需要在我们的构建能开始正常工作之前,增加我们自己的配置到此代码仓库中。
所以在我们的服务中(我将为此使用我们的委托服务),在项目根目录新建一个文件夹.circleci,然后在此文件夹下新建一个文件config.yml。现在让我们开始增加我们的构建配置。
为了使之生效我们需要做一些事情,我在评论中已经谈到了这一点,但它是一个重要的步骤,所以我想重申这一部分。
我们需要谷歌云服务钥匙,正如我们在第七章创建的那个,然后我们需要将此钥匙加密成base64并作为我们构建工程设置中的一个环境变量来存储。
因此找到你的谷歌云服务钥匙,然后运行$ cat .json | base64,并复制得到的字符串。回到CircleCI你的项目来,点击右上方的齿轮,然后选择左边栏目中的环境变量。新建一个环境变量,命名为GCLOUD_SERVICE_KEY,然后粘贴前面得到的base64字符串作为其值,并保存。
上述操作可以在circleci内保存任何安全信息,且使代码仓库不熟任何敏感数据影响。它将这些访问密钥保存在操作团队的控制之下,而不仅限于任何可以访问代码仓库的人员。
现在我们的构建配置中,用来对我们组进行身份验证的变量,其内容被解码为一个文件。
大功告成,相当简单。我们拥有CI作为我们的一个服务。作为一个产品服务,在你执行部署步骤之前,你可能会首先运行你的测试用例。查看这篇文档然后看看你能用circle做哪些有趣的东西。由于circle使用Docker容器,你甚至可以加一个数据库容器,以便于你运行集成测试。发挥你的创造力,最大限度使用这些特性。
如果你觉得这一系列的文章对你有用,且你装了广告拦截器(没有人会责怪你),考虑打赏一下我撰写这些文章所付出的时间和努力吧!谢谢!
https://monzo.me/ewanvalentine
或者,在Patreon上向我提供更多诸如此类的素材。
原文地址:https://ewanvalentine.io/microservices-in-golang-part-9