升级到 Jenkins LTS 2.222.x

每个部分涵盖了从之前的 LTS 版本升级,2.222.1 的部分涵盖了自 2.204.6 以来的升级。

升级到 Jenkins LTS 2.222.4

没有需要升级说明的显著更改。

升级到 Jenkins LTS 2.222.3

没有需要升级说明的显著更改。

升级到 Jenkins LTS 2.222.2

Jenkins 2.222.2 发行版未交付到下载站点或制品仓库。 没有需要升级说明的显著更改。

升级到 Jenkins LTS 2.222.1

2.222.1 和 2.204.6 在同一天发布,并且都包含相同的安全修复。 本升级指南仅涵盖自 2.204.6 以来的升级。 请参阅 其升级指南,以获取与自 2.204.5 升级有关的信息,包括与两个版本共同的安全修复程序有关的所有信息。

全局构建丢弃配置在重新启动时丢失

全局构建丢弃配置在管理员对其进行修改时保存,但在 Jenkins 重新启动时不会加载。 Jenkins 重新启动时,都会配置默认的全局构建丢弃。

每次重启,Jenkins 2.222.1 将始终以默认的构建丢弃配置启动。 这意味着:

  • 重新启动时将丢失自定义全局构建丢弃配置

  • 不需要后台构建丢弃的用户将使用默认值

全局构建丢弃配置可能会删除旧的构建

默认情况下,即使当前没有运行构建,Jenkins 也会默认运行在项目中配置的构建废弃程序。 这可能会删除自上次构建以来已配置了更积极的构建丢弃配置的项目的旧构建。

如果行为上的改变可能导致意外的数据丢失,我们建议在升级 Jenkins 之前检查项目配置以获取积极的构建丢弃配置。

我们建议定期创建您的 Jenkins 配置和数据的备份。

总是启用 CSRF 保护

如果之前被禁用,Jenkins 将使用默认的 crumb 颁发者自动启用 CSRF 保护。 不支持 CSRF 保护的功能已被弃用,并已从 UI 中删除。

API 客户端应使用 API 令牌进行身份验证,自 2.96 开始,该令牌无需 CSRF crumb。

在启动时将系统属性 hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION 设置为 true,以禁用 CSRF 保护及其配置 UI。 这是不受保护的选项,以后可能会删除。

在 Jenkins 运行时,可以通过在脚本控制台中运行以下命令之一来锁定/解锁配置UI:

  1. // 允许禁用
  2. hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION = true
  3. // 强制启用
  4. hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION = false

这不会立即更改已配置的 crumb 发行者; 必须提交一次_全局安全配置_表单才能相应地更改设置。

删除的代理协议

Inbound TCP Agent Protocol 版本 1、2 和 3 (也称为 JNLP ProtocolsJava Web Start Protocols) 已经被删除。 自 2017 年开始的 Jenkins 2.75 这些协议已被弃用。

SSH Build Agents Plugin 使用最新的 agent.jar, 但是其他代理类型可能需要手动更新其 agent.jar

重新设计的密码表单字段

为了减少浏览器密码自动填充会不恰当地填写已保存的凭据的次数,Jenkins 配置表单中使用的密码表单字段已经过重新设计。 万一此更改导致问题,可以通过将系统属性 hudson.Functions.hidingPasswordFields 设置为 true 来还原。

危险权限弃用

JEP-223, JENKINS-60266

在 2017 年,Overall/RunScriptsOverall/UploadPluginsOverall/ConfigureUpdateCenter 被宣布为潜在危险权限,并隐藏在 Matrix Authorization PluginRole-based Strategy Plugin,以防止意外的错误配置 (2017-04-10 安全公告)。

这些权限现在已弃用,在 Jenkins 核心中不再使用。 授予任何这些权限而不授予`全局/Administer` 权限的配置将不再像以前那样工作,因为 Jenkins 现在需要`全局/Administer` 权限才能使用以前由这些权限控制的功能。 在不实现其中一个或多个权限的情况下,授予`全局/Administer` 的自定义授权策略将不能按预期工作。 插件也有望从要求这些已弃用的权限切换为要求`全局/Administer`,从而导致这些配置中发生的意外行为更改。

删除网络发现服务

JENKINS-33596, JENKINS-60913

由于 2020-01-29 Jenkins 安全公告 SECURITY-1641等各种问题,网络发现功能(DNS 多播和 UDP 广播)以前被禁用和不鼓励使用。 现在,它们已被删除,而且无替代品。

Swarm Plugin 需要升级到 3.18 以上版本,否则将会发生 JENKINS-61029 中描述的问题。这也删除了插件的网络发现功能。

标头和面包屑布局的改进

PR-4463, JENKINS-60920

具有依赖于 Jenkins UI 特定细节的插件的实例(例如 Simple Theme plugin) 可能会遇到此版本的问题,可能需要更新。 对于Simple Theme plugin,主题维护者可能需要使主题适应 UI 更改。

删除 jenkins-slave.xml 资源文件

PR-4330

`jenkins-slave.xml`资源已经被删除,自 2017 年以来 Jenkins 核心中已经未使用了。 WMI Windows Agents Plugin 需要更新到 1.3.1 版本以上(2017 年 3 月发布)。