如何在Ubuntu16.04上使用Drone设置持续集成管道
介绍
Drone 是一个用 Go 语言编写的持续集成和交付平台。 通过与许多流行的版本控制服务集成,您可以在代码更新时使用它来自动构建、测试和交付软件。
在本教程中,我们将 fork 一个示例 GitHub 存储库,并使用 Drone 构建和测试项目。
先决条件
在开始本教程之前,您需要安装、配置 Drone 并将其链接到您的 GitHub 帐户。 以下教程将带您到达那里:
- 如何在 Ubuntu 16.04 上安装和使用 Docker:使用 Step 1 和 Step 2 安装 Docker。
- 如何在 Ubuntu 16.04 上安装 Docker Compose:使用 Step 1 安装 Docker Compose
- 如何在 Ubuntu 16.04 上安装 Nginx:使用 Step 1 和 Step 2 在服务器上安装 Nginx
- 如何在 Ubuntu 16.04 上使用 Let's Encrypt 保护 Nginx :使用 SSL 证书保护 Nginx
- 如何在 Ubuntu 16.04 上安装和配置 Drone:安装 Drone 并将其链接到您的 GitHub 帐户
完成后,您应该在类似于以下的屏幕上登录 Drone:
这是 Drone 的仪表板。 它显示我们已登录,但在 Drone 中没有设置存储库。 现在让我们创建一个存储库。
分叉示例存储库
首先,我们需要一个 GitHub 存储库,其中包含一些用于构建和测试的代码。 您可以将 Drone 与许多不同的版本控制存储库一起使用,但在先决条件中,我们将 Drone 与 GitHub 帐户相关联,因此我们将在整个教程中使用它。 登录 GitHub 并导航到以下存储库:
https://github.com/do-community/hello_hapi
点击右上角的 Fork 按钮,将这个仓库复制到自己的账户中。 如果您有权访问多个 GitHub 组织,则可能会要求您选择将存储库分叉到的位置。 选择您的普通用户帐户。 片刻之后,您将被带到已复制到您帐户的 hello_hapi 存储库。
接下来,我们将看看我们如何配置 Drone 来构建和测试我们的代码。
了解 .drone.yml 文件
Drone 在您的存储库中查找名为 .drone.yml
的配置文件,以确定它应该如何处理您的代码。 该文件已经包含在我们刚刚 fork 的存储库中:
.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。 在我们设置它之前,主页看起来相当稀疏。 空白的侧边栏提示我们激活您的存储库以开始。
单击 Activate 链接以显示所有 GitHub 存储库的列表:
找到 hello_hapi 存储库并单击右侧列中的灰色切换按钮以激活它。 切换开关将翻转并变为绿色。 在幕后,Drone 将使用 GitHub 的 API 来确保它在我们的代码更改时收到通知。
通过单击屏幕左上角的 Drone 徽标或使用用户图标旁边右上角的菜单返回主页仪表板:
仪表板现在将在左侧列中列出我们的新存储库。 还没有状态信息,因为我们还没有运行构建:
单击 hello_hapi 存储库名称以进入存储库的详细视图。 它将有一些选项卡,我们可以在其中更新设置,添加令牌和密码等秘密,并获得可嵌入的构建状态徽章。 默认情况下,我们位于 Builds 选项卡上,尚未列出任何构建。
现在让我们触发构建。
让您的 Drone 页面保持打开状态,然后在另一个选项卡或窗口中导航到 hello_hapi GitHub 存储库。 我们将向项目添加一个文件以触发构建。 任何文件都可以。 单击 repo 中文件列表顶部的 创建新文件 按钮:
选择任何文件名。 在这种情况下,我们选择了 trigger-file
。 输入任何内容:
然后,向下滚动到内容编辑器的底部并单击 Commit new file 按钮:
提交后,GitHub 将通知我们的 Drone 安装更改。 然后无人机将开始一个新的构建。 切换回 Drone 浏览器窗口。 界面应该更新得相当快,并且旋转箭头将指示正在构建。
如果您花一些时间切换回 Drone,它可能已经完成。 接下来让我们看看构建细节。
查看 CI/CD 结果
单击构建以进入详细视图。 如果构建仍在进行中,您将能够实时观察每个管道步骤。
您可以单击每个构建步骤的披露箭头以显示更多详细信息。 这是我们的 test 步骤的输出:
如果该步骤仍在进行中,单击 Follow 按钮将在发生时显示输出。
请注意,我们没有在 .drone.yml
文件中定义的 clone 阶段。 这始终存在,并详细说明 Drone 在构建之前如何获取您的源代码。
结论
在本教程中,我们创建了一个演示存储库,探索了 .drone.yml
配置文件,并使用 Drone 构建和测试了我们的存储库。
有关配置 Drone 以构建、测试和部署项目的更多信息,请参阅 Drone 文档 。