如何在Ubuntu 16.04上设置Drone的连续集成管道

0
81

介绍

Drone是Go中持续的整合和交付平台。 通过与许多流行版本控制服务的集成,您可以在代码更新时自动构建,测试和交付软件。

在本教程中,我们将分一个示例GitHub存储库,并使用Drone来构建和测试该项目。

先决条件

在开始本教程之前,您需要将Drone安装,配置并链接到您的GitHub帐户。 以下教程将会让您得到:

完成后,您应该登录到Drone,屏幕类似于以下内容:

Drone默认登录屏幕

这是Drone的仪表板。 它显示我们已经登录,但没有在Drone中设置存储库。 让我们现在创建一个存储库。

分支示例存储库

首先,我们需要一个GitHub存储库,并附带一些代码来构建和测试。 您可以使用Drone与许多不同的版本控制库,但在先决条件中,我们将Drone与GitHub帐户相关联,因此我们将在本教程中使用。 登录到GitHub并导航到以下repo:

https://github.com/do-community/hello_hapi

hello_hapi存储库页面

单击右上角的“ 叉”按钮将该存储库复制到您自己的帐户。 如果您有权访问多个GitHub组织,则可能会要求您选择将存储库分配到哪里。 选择您的普通用户帐户。 过了一会儿,您将被带到已经复制到您的帐户的hello_hapi资料库。

接下来,我们将看看我们如何配置Drone来构建和测试我们的代码。

了解.drone.yml文件

Drone在您的存储库中查找名为.drone.yml的配置文件,以确定如何处理您的代码。 该文件已经包含在我们刚才分配的存储库中:

.drone.yml
pipeline:
  build:
    image: node:latest
    commands: npm install
  test:
    image: node:latest
    commands: npm run test

这是一个定义管道YAML文件。 管道是一个连续的集成过程,一个接一个地运行多个步骤。 在我们的情况下,我们有一个两步的渠道。

第一步,称为build将使用node:latest Docker映像在我们的存储库中运行npm install 这将下载并安装运行测试所需的所有库。

下一步称为test 它使用相同的Docker映像来运行我们的测试套件。 通常,您将一步运行buildtest命令,但是我们将其拆分更好地演示了管道。

请注意,流水线中的步骤都共享相同的工作空间,因此在第一步中创建的文件将在以后的步骤中可用。 Drone有更多的选项可以配置.drone.yml ,您可以在Drone文档中阅读。 其中一些功能包括:

  • Matrix构建,您可以构建和测试多个版本的库或运行时,以检查兼容性
  • 通过电子邮件或短信服务通知
  • 向npm,容器注册表或静态站点主机发布构建产品

接下来,我们将告诉Drone来监视我们的存储库的更改,然后触发一个构建。

触发持续集成运行

登录Drone,如果还没有。 在我们设置之前,主页会显得相当稀疏。 空侧边栏提示我们激活您的存储库以开始使用

Drone默认登录屏幕

单击激活链接以显示所有GitHub存储库的列表:

Drone存储库列表

找到hello_hapi repo,然后单击右侧列中的灰色切换以激活它。 切换将翻转并变绿。 在幕后,Drone将使用GitHub的API来确保在代码更改时收到通知。

通过单击屏幕左上角的“Drone”徽标,或使用用户图标旁边右上角的菜单,返回主页信息板:

仪表板链接截图

仪表板现在将在左侧列中列出我们的新存储库。 还没有状态信息,因为我们没有运行构建:

仪表板与hello_hapi和没有构建信息

单击hello_hapi存储库名称以输入存储库的详细视图。 它将有一些选项卡,我们可以更新设置,添加秘密,如令牌和密码,并获得可嵌入的构建状态徽章。 默认情况下,我们在“ 构建”选项卡上,并且尚未列出任何构建。

没有builds的hello_hapi repo细节

现在让我们触发一个构建。

保持“Drone”页面打开,并导航到另一个选项卡或窗口中的hello_hapi GitHub存储库。 我们将为项目添加一个文件,以触发构建。 任何文件都会做。 点击创建新的文件按钮到文件列表的顶部在您的回购:

在GitHub屏幕截图上创建文件按钮

选择任何文件名 在这种情况下,我们选择了trigger-file 输入任何内容:

GitHub屏幕截图上的文件名和内容创建

然后,向下滚动到内容编辑器的底部,然后单击提交新文件按钮:

在GitHub屏幕截图上提交新文件

提交后,GitHub将通知我们的Drone安装更改。 Drone将会开始一个新的构建。 切换回Drone浏览器窗口。 界面应该相当快地更新,旋转的箭头将指示正在发生构建。

Drone仪表盘正在建设中

如果您花了一些时间切换回Drone,可能已经完成了。 接下来我们来看看构建细节。

查看CI / CD结果

单击构建以输入详细视图。 如果构建仍在进行中,您将能够实时观察每个管道步骤。

Drone构建细节

您可以单击每个构建步骤的公开箭头以显示更多详细信息。 以下是我们测试步骤的输出:

Drone构建步骤详细信息

如果步骤仍在进行中,单击“ 跟随”按钮会显示输出。

请注意,我们在.drone.yml文件中没有定义克隆级。 这是始终存在的,并提供了有关Drone如何在构建之前获取源代码的详细信息。

结论

在本教程中,我们分析了一个演示版本库,探讨了.drone.yml配置文件,并使用Drone构建并测试了我们的存储库。

有关配置Drone构建,测试和部署项目的更多信息,请参阅Drone文档

发表评论