介绍
通过与许多流行的版本控制服务的集成,您可以使用它来构建,测试和自动交付软件,每次您的代码被更新。
在本教程中,我们将构建一个例子GitHub存储库,并使用无人机来构建和测试该项目。
前提条件
在开始本教程之前,您将需要安装,配置和链接到您的GitHub帐户的无人机。
- 如何在 Ubuntu 16.04 上安装和使用 Docker:使用 Step 1和 Step 2使用安装 Docker。
- How To Install Docker Compose on Ubuntu 16.04:使用 Step 1
- How To Install Nginx on Ubuntu 16.04安装 Nginx在服务器上使用 Step 1和 Step 2
- How To Secure Nginx with Let's Encrypt on Ubuntu 16.04:使用 SSL 证书
- How To Install and Configure Drone on Ubuntu 16.04):安装无人机并将其链接到您的 GitHub 帐户
完成后,您应该登录到 Drone,在一个类似于以下的屏幕:
这是无人机的仪表板. 它显示我们已登录,但没有在无人机上设置的存储库. 让我们现在创建一个存储库。
模型存储库的破坏
您可以使用 Drone 与许多不同的版本控制仓库,但在前提条件下,我们将 Drone 与 GitHub 帐户联系起来,所以我们将在本教程中使用它。
1https://github.com/do-community/hello_hapi
点击右上角的 **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
这是一个定义 pipeline 的 YAML文件. 管道是一个连续的集成过程,运行多个步骤,一个接一个。
第一步,称为构建
,将使用node:latest
Docker 图像在我们的存储库中运行npm install
。
下一步被称为测试
。它使用相同的Docker图像来运行我们的测试套件. 通常,您会在一个步骤中运行构建
和测试
命令,但我们已经将它们分开,以便更好地展示管道。
请注意,管道中的步骤都有相同的工作空间,所以在第一个步骤中创建的文件将在以后的步骤中可用。
- 矩阵构建,您可以构建和测试图书馆或运行时间的多个版本,以检查兼容性
- 通过电子邮件或消息服务的通知
- 发布 build 产品到 npm、容器注册表或静态网站主机
接下来,我们会告诉无人机监控我们的存储库的更改,然后触发构建。
开启持续一体化之路
登录 Drone,如果您还没有登录,主页将看起来相当稀缺,直到我们设置它。
点击 ** 激活** 链接以显示您的所有 GitHub 存储库的列表:
查找 hello_hapi的重复,然后点击右侧列的灰色转换来激活它。 转换将转换并变绿色。 幕后,Drone将使用GitHub的API来确保每当我们的代码发生变化时,它都会收到通知。
返回主页仪表板,点击屏幕的左上角的 Drone 标志,或使用用户图标旁边的右上角的菜单:
仪表板现在将有我们的新存储库列在左列中. 尚无状态信息,因为我们还没有运行构建:
点击 hello_hapi存储库名称以输入存储库的详细视图. 它将有几个选项卡,我们可以更新设置,添加代币和密码等秘密,并获得嵌入式构建状态标签。
让我们现在启动一个构建。
让您的 Drone 页面打开,并在另一个页面或窗口中导航到 hello_hapi GitHub 存储库. 我们将添加一个文件到项目中,以启动构建。
选择任何文件名. 在这种情况下,我们选择了‘trigger-file’。输入任何内容:
然后,滚到内容编辑器的底部,然后单击 Commit new file 按钮:
在承诺时,GitHub将通知我们的无人机安装的变化。 无人机将开始新的构建。 返回您的无人机浏览器窗口。 接口应该相当快地更新,一个旋转的箭头将表明正在进行构建。
它可能已经完成了,如果你花了几分钟来重新切换到无人机. 让我们看看下面的构建细节。
查看 CI/CD 结果
如果构建仍在进行中,您将能够实时观察每个管道步骤。
您可以点击每个构建步骤的披露箭头,以显示更多细节。
如果步骤仍在进行中,点击 ** Follow ** 按钮将显示结果。
请注意,我们没有在我们的 .drone.yml
文件中定义一个 **克隆 ** 阶段。
结论
在本教程中,我们构建了一个演示仓库,探索了.drone.yml 配置文件,并使用 Drone 构建和测试了我们的仓库。
有关如何配置无人机来构建、测试和部署您的项目的更多信息,请参阅 无人机文档。