企业客户工作队列

自定义队列让您的团队可以更细粒度地控制将作业路由到特定工作者。这在结合自定义 工作者配置 和/或修改后的 构建环境 时特别有用。

自定义队列需要两个 功能标志。设置这些标志后,您可以在 管理控制台设置 中定义队列的配置,以及 将工作者分配到新的队列

在平台上启用队列 #

为了允许您的 Travis CI 企业版平台实例将作业路由到自定义队列,请设置 template_selectionmulti_os 功能标志。为此,请 ssh 到您的平台服务器,然后运行 travis console。运行以下命令以启用所需的功能标志

Travis::Features.enable_for_all(:template_selection); Travis::Features.enable_for_all(:multi_os); exit

新的设置会立即生效,但作业路由会保持不变,直到定义新的队列。

在管理控制台中定义自定义队列 #

启用自定义队列的功能标志后,请在管理控制台中配置作业路由。这在 YAML 中定义,位于管理控制台 **设置** 页面底部的 **高级配置 YAML** 部分,例如 https://<your-travis-ci-enterprise-domain>:8800/settings

定义路由到自定义队列的规则使用许多选项/选择器。与自定义队列的所有选择器匹配的仓库将在该自定义队列上构建。我们建议使用以下选择器

  • language - 根据项目的选定语言定义构建环境†
  • group - 主要语义,用于定义环境的“组”†
  • owner - 组织或用户
  • slug - 存储库,格式为:org/repouser/repo

† 在 .travis.yml 中为作业指定 languagegroup。不要在配置中指定所有权类型选择器 (ownerslug)。有关更多详细信息,请参见 示例

注意:我们不建议使用 distos 作为这些选择器。这两个选择器都有一些内置的路由流程,可能无法完全按预期工作。

在“高级配置 YAML”中按以下格式定义选择器

production:
  queues:
  - queue: name
    selector: value
  - queue: another.queue
    selector: different_value
    selector: something_else

有关语法的详细信息,请参见 示例。准备就绪后,请在管理控制台设置中单击“保存”。Travis CI 企业版将使用新的队列设置重新启动。

高级配置 YAML 示例 #

高级配置 YAML 字段的语法非常重要。语法错误会导致构建被路由到默认值,通常为 builds.linux 队列,具体取决于您的安装是否进行了任何修改。以下是一个自定义队列定义的示例

production:
  queues:
  - queue: builds.ruby
    owner: travis-ci
    language: ruby
    group: enterprise
  - queue: builds.python
    owner: acnagy
    language: python
  - queue: dockercluster
    services:
    - docker
  - queue: legacy
    group: legacy
  - queue: docs
    slug: 'travis-ci/docs-travis-ci-com'

对于此示例,要构建由 travis-ci 组织拥有的 enterprise Ruby 项目,.travis.yml 需要如下所示

group: enterprise
language: ruby
# rest of the yaml, per standard spec

但是,构建 travis-ci/docs-travis-ci.com 存储库不需要任何特殊配置。

在工作者上定义自定义队列设置 #

要将工作者分配到特定队列,请在工作者配置中定义 QUEUE_NAME 变量。它位于 etc/default/travis-worker。更新环境变量以匹配您在 自定义队列配置 YAML 中指定的队列名称。然后使用以下命令重新启动工作者

sudo service travis-worker restart

新的队列设置将在重新启动后生效。

联系企业支持 #

要与我们联系,请向 enterprise@travis-ci.com 发送邮件。如果可能,请尽可能多地包含以下内容

  • 问题描述 - 您观察到了什么?
  • 您已经尝试了哪些步骤?
  • 支持包(请参见下表了解如何获取)
  • 所有工作者的日志文件(它们位于 /var/log/upstart/travis-worker.log - 请尽可能多地包含检索到的文件)。
  • 如果构建失败或出错,则为构建日志的文本文件
TCI 企业版版本 支持包
3.x 运行 kubectl kots admin-console -n [namespace] 以访问 https://#:8800 上的管理控制台
支持包生成说明在“故障排除”菜单中提供,或直接在以下位置提供:https://#:8800/app/tci-enterprise-kots/troubleshoot

选择后将出现生成支持包的命令
如果您愿意,[单击此处]() 获取手动生成支持包的命令。
2.x+ 您可以从 https://<your-travis-ci-enterprise-domain>:8800/support 获取它

自 2020 年第三季度宣布以来,Travis CI 企业版的最新版本是 3.x 版本。2.2 版本没有任何新版本发布,自 2021 年 3 月以来支持补丁也已限制。对于 Travis CI 2.x 的现有用户,我们强烈建议升级到最新的 Travis CI 企业版 3.x。

您对设置进行了任何自定义吗?虽然我们可能可以看到一些信息(例如主机名、IaaS 提供商和许可证到期时间),但还有很多我们无法看到的信息,这可能导致某些功能无法正常工作。因此,我们想请您在您的支持请求中也回答以下问题(如果适用)

  • 您使用多少台机器/您的 Kubernetes 集群设置是什么?
  • 您使用配置管理工具(Chef、Puppet)吗?
  • 哪些其他服务与 Travis CI 企业版交互?
  • 您与 Travis CI 企业版一起使用哪个版本控制系统 (VCS)(例如 github.com、GitHub 企业版或 BitBucket 云)?
  • 如果您使用的是 GitHub 企业版,哪个版本?

我们期待帮助您!