Hydra

Hydra,基于 Nix 的持续构建系统。「Hydra, the Nix-based continuous build system」

  • 所有者: NixOS/hydra
  • 平台: Linux, Mac
  • 許可證: GNU General Public License v3.0
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

Hydra

Hydra 是基于 Nix 项目的 持续集成 服务。

安装和设置

注意:下面提供的说明是为了让新用户能够进行简单的本地安装和运行。它们绝对不足以运行一个生产服务器,更不用说一个公共实例了。

启用服务

目前只支持在 NixOS 上运行 Hydra。hydra 模块 允许进行简单的设置。以下配置可用于简单的设置,即在 localhost 上执行所有的构建(请参考选项页面的所有可用选项)。

{
  services.hydra = {
    enable = true;
    hydraURL = "http://localhost:3000";
    notificationSender = "hydra@localhost";
    buildMachinesFiles = [];
    useSubstitutes = true;
  };
}

创建一个管理用户

一旦 Hydra 服务已按上述方式配置并激活,您应该已经能够通过指定的 URL 访问 UI 界面。但是有些操作需要先创建一个管理员用户。

$ su - hydra
$ hydra-create-user <USER> --full-name '<NAME>' \
    --email-address '<EMAIL>' --password <PASSWORD> --role admin

之后,您应该可以通过点击网页界面右上方的 "登录",使用 hydra-crate-user 指定的证书进行登录。登录后,您可以点击 "Admin -> Create Project" 来配置您的第一个项目。

创建一个简单的项目和任务集

为了评估和构建任何东西,你需要装箱包含作业集的项目。Hydra 支持命令式和声明式项目以及许多不同的配置。下面的步骤将指导您完成创建最小的命令式项目配置所需的步骤。

创建一个项目

以管理员身份登录,点击 "管理",选择 "创建项目"。填写如下表格。

  • Identifier: hello
  • Display name: hello
  • Description: hello project

创建一个工作集

创建项目后,你会被转到项目页面。点击 "操作",选择 "创建作业集"。在表格中填写以下数值。

  • Identifier: hello
  • Nix expression(Nix 表达式): examples/hello.nix in hydra
  • Check interval(检查间隔): 60
  • Scheduling shares: 1

我们必须为这个作业集添加两个输入。一个是 nixpkgs,一个是 hydra(我们在上面的 Nix 表达式中提到的)。

确保页面顶部的 State 被设置为 "Enabled",然后点击 "Create jobset"。这样就完成了每分钟评估一次 ./examples/hello.nix 的作业集的创建。点击 "Evaluations" 应该会在短暂的延迟后列出新创建的作业集的第一次评估。

构建 Hydra

你可以通过 nix-build 使用提供的 default.nix 来构建 Hydra。

$ nix-build

开发环境

你可以使用提供的 shell.nix 来获得一个工作的开发环境。

$ nix-shell
$ ./bootstrap
$ configurePhase # NOTE: not ./configure
$ make

在开发过程中执行 Hydra

在开发新功能或修复错误时,你需要能够从你的工作副本中运行 Hydra。这可以通过 foreman 来实现。

$ nix-shell
$ # hack hack
$ make
$ foreman start

如果你想知道进程是如何启动的,请查看 Procfile。为了避免与你的主机上可能运行的服务发生冲突,Hydra 和 postgress 是在自定义端口上启动的。

  • hydra-server: 63333 with the username "alice" and the password "foobar"
  • postgresql: 64444

请注意,这只是在开发过程中执行 Hydra 的一种临时方式。请使用 NixOS 模块在生产中实际运行 Hydra。

JSON API

你也可以通过 JSON API 与 Hydra 进行接口。该 API 定义在 hydra-api.yaml 中,你可以通过 swagger 编辑器 进行测试和探索。

其他资源

许可证

Hydra 是根据 GPL-3.0 授权的。

图标由 EmojiOne 免费提供。


(The first version translated by vz on 2020.10.13)

主要指標

概覽
名稱與所有者NixOS/hydra
主編程語言Perl
編程語言Shell (語言數: 10)
平台Linux, Mac
許可證GNU General Public License v3.0
所有者活动
創建於2011-10-29 02:06:57
推送於2025-04-16 16:55:03
最后一次提交2025-04-16 16:49:31
發布數0
用户参与
星數1.3k
關注者數45
派生數315
提交數4.4k
已啟用問題?
問題數683
打開的問題數316
拉請求數572
打開的拉請求數74
關閉的拉請求數125
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?

Hydra

Hydra is a continuous integration system based
on the Nix package manager. For more information, see the
manual.

For development see
hacking instructions.


Icons provided free by EmojiOne.