介绍
Drone是Go中持续的整合和交付平台。 通过与许多流行版本控制服务的集成,您可以在代码更新时自动构建,测试和交付软件。
在本教程中,我们将分一个示例GitHub存储库,并使用Drone来构建和测试该项目。
先决条件
在开始本教程之前,您需要将Drone安装,配置并链接到您的GitHub帐户。 以下教程将会让您得到:
- 如何在Ubuntu 16.04上安装和使用Docker :使用第1步和第2步安装Docker。
- 如何在Ubuntu 16.04上安装Docker Compose:使用第1步安装Docker Compose
- 如何在Ubuntu 16.04上安装Nginx:使用第1步和第2步在服务器上安装Nginx
- 如何保护Nginx,让我们加密Ubuntu 16.04 :使用SSL证书安全的Nginx
- 如何在Ubuntu 16.04上安装和配置Drone :安装Drone并将其链接到您的GitHub帐户
完成后,您应该登录到Drone,屏幕类似于以下内容:
这是Drone的仪表板。 它显示我们已经登录,但没有在Drone中设置存储库。 让我们现在创建一个存储库。
分支示例存储库
首先,我们需要一个GitHub存储库,并附带一些代码来构建和测试。 您可以使用Drone与许多不同的版本控制库,但在先决条件中,我们将Drone与GitHub帐户相关联,因此我们将在本教程中使用。 登录到GitHub并导航到以下repo:
https://github.com/do-community/hello_hapi
单击右上角的“ 叉”按钮将该存储库复制到您自己的帐户。 如果您有权访问多个GitHub组织,则可能会要求您选择将存储库分配到哪里。 选择您的普通用户帐户。 过了一会儿,您将被带到已经复制到您的帐户的hello_hapi资料库。
接下来,我们将看看我们如何配置Drone来构建和测试我们的代码。
了解.drone.yml文件
Drone在您的存储库中查找名为.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映像来运行我们的测试套件。 通常,您将一步运行build
和test
命令,但是我们将其拆分更好地演示了管道。
请注意,流水线中的步骤都共享相同的工作空间,因此在第一步中创建的文件将在以后的步骤中可用。 Drone有更多的选项可以配置.drone.yml
,您可以在Drone文档中阅读。 其中一些功能包括:
- Matrix构建,您可以构建和测试多个版本的库或运行时,以检查兼容性
- 通过电子邮件或短信服务通知
- 向npm,容器注册表或静态站点主机发布构建产品
接下来,我们将告诉Drone来监视我们的存储库的更改,然后触发一个构建。
触发持续集成运行
登录Drone,如果还没有。 在我们设置之前,主页会显得相当稀疏。 空侧边栏提示我们激活您的存储库以开始使用 。
单击激活链接以显示所有GitHub存储库的列表:
找到hello_hapi repo,然后单击右侧列中的灰色切换以激活它。 切换将翻转并变绿。 在幕后,Drone将使用GitHub的API来确保在代码更改时收到通知。
通过单击屏幕左上角的“Drone”徽标,或使用用户图标旁边右上角的菜单,返回主页信息板:
仪表板现在将在左侧列中列出我们的新存储库。 还没有状态信息,因为我们没有运行构建:
单击hello_hapi存储库名称以输入存储库的详细视图。 它将有一些选项卡,我们可以更新设置,添加秘密,如令牌和密码,并获得可嵌入的构建状态徽章。 默认情况下,我们在“ 构建”选项卡上,并且尚未列出任何构建。
现在让我们触发一个构建。
保持“Drone”页面打开,并导航到另一个选项卡或窗口中的hello_hapi GitHub存储库。 我们将为项目添加一个文件,以触发构建。 任何文件都会做。 点击创建新的文件按钮到文件列表的顶部在您的回购:
选择任何文件名 在这种情况下,我们选择了trigger-file
。 输入任何内容:
然后,向下滚动到内容编辑器的底部,然后单击提交新文件按钮:
提交后,GitHub将通知我们的Drone安装更改。 Drone将会开始一个新的构建。 切换回Drone浏览器窗口。 界面应该相当快地更新,旋转的箭头将指示正在发生构建。
如果您花了一些时间切换回Drone,可能已经完成了。 接下来我们来看看构建细节。
查看CI / CD结果
单击构建以输入详细视图。 如果构建仍在进行中,您将能够实时观察每个管道步骤。
您可以单击每个构建步骤的公开箭头以显示更多详细信息。 以下是我们测试步骤的输出:
如果步骤仍在进行中,单击“ 跟随”按钮会显示输出。
请注意,我们在.drone.yml
文件中没有定义克隆级。 这是始终存在的,并提供了有关Drone如何在构建之前获取源代码的详细信息。
结论
在本教程中,我们分析了一个演示版本库,探讨了.drone.yml
配置文件,并使用Drone构建并测试了我们的存储库。
有关配置Drone构建,测试和部署项目的更多信息,请参阅Drone文档 。