如何在 Ubuntu 16.04 上使用 Drone 设置持续集成管道

介绍

通过与许多流行的版本控制服务的集成,您可以使用它来构建,测试和自动交付软件,每次您的代码被更新。

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

前提条件

在开始本教程之前,您将需要安装,配置和链接到您的GitHub帐户的无人机。

完成后,您应该登录到 Drone,在一个类似于以下的屏幕:

Drone default logged in screen

这是无人机的仪表板. 它显示我们已登录,但没有在无人机上设置的存储库. 让我们现在创建一个存储库。

模型存储库的破坏

您可以使用 Drone 与许多不同的版本控制仓库,但在前提条件下,我们将 Drone 与 GitHub 帐户联系起来,所以我们将在本教程中使用它。

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

hello_hapi repository page

点击右上角的 **Fork ** 按钮将此存储库复制到自己的帐户. 如果您可以访问多个 GitHub 组织,您可能会被要求选择将该存储库复制到哪里。

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

了解.drone.yml 文件

无人机在您的存储库中寻找名为.drone.yml 的配置文件,以确定该文件应该如何处理您的代码。

1[label .drone.yml]
2pipeline:
3  build:
4    image: node:latest
5    commands: npm install
6  test:
7    image: node:latest
8    commands: npm run test

这是一个定义 pipelineYAML文件. 管道是一个连续的集成过程,运行多个步骤,一个接一个。

第一步,称为构建,将使用node:latest Docker 图像在我们的存储库中运行npm install

下一步被称为测试。它使用相同的Docker图像来运行我们的测试套件. 通常,您会在一个步骤中运行构建测试命令,但我们已经将它们分开,以便更好地展示管道。

请注意,管道中的步骤都有相同的工作空间,所以在第一个步骤中创建的文件将在以后的步骤中可用。

  • 矩阵构建,您可以构建和测试图书馆或运行时间的多个版本,以检查兼容性
  • 通过电子邮件或消息服务的通知
  • 发布 build 产品到 npm、容器注册表或静态网站主机

接下来,我们会告诉无人机监控我们的存储库的更改,然后触发构建。

开启持续一体化之路

登录 Drone,如果您还没有登录,主页将看起来相当稀缺,直到我们设置它。

Drone default logged in screen

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

Drone repository listing

查找 hello_hapi的重复,然后点击右侧列的灰色转换来激活它。 转换将转换并变绿色。 幕后,Drone将使用GitHub的API来确保每当我们的代码发生变化时,它都会收到通知。

返回主页仪表板,点击屏幕的左上角的 Drone 标志,或使用用户图标旁边的右上角的菜单:

dashboard link screenshot

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

dashboard with hello_hapi and no build info

点击 hello_hapi存储库名称以输入存储库的详细视图. 它将有几个选项卡,我们可以更新设置,添加代币和密码等秘密,并获得嵌入式构建状态标签。

hello_hapi repo details with no builds

让我们现在启动一个构建。

让您的 Drone 页面打开,并在另一个页面或窗口中导航到 hello_hapi GitHub 存储库. 我们将添加一个文件到项目中,以启动构建。

Create file button on GitHub screenshot

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

Filename and content creation on GitHub screenshot

然后,滚到内容编辑器的底部,然后单击 Commit new file 按钮:

Commit new file on GitHub screenshot

在承诺时,GitHub将通知我们的无人机安装的变化。 无人机将开始新的构建。 返回您的无人机浏览器窗口。 接口应该相当快地更新,一个旋转的箭头将表明正在进行构建。

Drone dashboard with build in progress

它可能已经完成了,如果你花了几分钟来重新切换到无人机. 让我们看看下面的构建细节。

查看 CI/CD 结果

如果构建仍在进行中,您将能够实时观察每个管道步骤。

Drone build details

您可以点击每个构建步骤的披露箭头,以显示更多细节。

Drone build step details

如果步骤仍在进行中,点击 ** Follow ** 按钮将显示结果。

请注意,我们没有在我们的 .drone.yml 文件中定义一个 **克隆 ** 阶段。

结论

在本教程中,我们构建了一个演示仓库,探索了.drone.yml 配置文件,并使用 Drone 构建和测试了我们的仓库。

有关如何配置无人机来构建、测试和部署您的项目的更多信息,请参阅 无人机文档

Published At
Categories with 技术
comments powered by Disqus