SuperAPI AI 工具集

rhdh-bump-yarn

部署与运维

查看项目

更新于 10-16 13:51

技能介绍

rhdh-bump-yarn 是 redhat-developer/rhdh-skills 下的一个技能,用于在 RHDH 相关多个仓库之间传播 Yarn Berry 的版本升级。根据资料,它的目标是让一次 Yarn Berry 升级(例如 rhdh-plugins#2918、RHIDP-16074)覆盖以下仓库:redhat-developer/rhdh-plugins(根工作区,以及 Fullsend 中硬编码的位置)、redhat-developer/rhdh(根与嵌套工作区、Containerfile)、redhat-developer/rhdh-plugin-export-overlays(大量 packageManager 固定值)、redhat-developer/rhdh-cli(根 packageManager / yarnPath,资料中注明当前为 Yarn 4.17.1),以及 gitlab.cee.redhat.com/rhidp/rhdh(distgit 二进制与 ENV YARN=,需从 GitHub 升级结果复制二进制)和 gitlab.cee.redhat.com/rhidp/rhdh-plugin-catalog(逐工作区固定值与 Containerfile)。

主要能力与变更内容:对每个匹配的工作区执行 yarn set version <to>(影响 packageManager、yarnPath、.yarn/releases),然后 chmod +x .yarn/releases/yarn-<to>.cjs,并执行 yarn install --mode=update-lockfile。此外还会处理 Yarn 自身看不到的固定值,例如 ENV YARN=、Containerfile / Dockerfile / 内嵌的 yarn set version。资料明确说明不进行二进制下载:先升级 GitHub 仓库(yarn set version 会生成 yarn-<to>.cjs)。对于只包含已检入 release 与 ENV YARN= 的 GitLab CEE midstream/distgit 树,需要把同一个 yarn-<to>.cjs 复制到 .yarn/releases/(并删除旧的 yarn-<from>.cjs),再运行脚本更新文本固定值;为这些根仓库开 MR 时应使用 glab 面向 gitlab.cee.redhat.com,而不是 gitlab.com。

使用方式:技能提供脚本 scripts/bump-yarn.js,示例命令为 node "$SKILL/scripts/bump-yarn.js" --to 4.17.1 --root /path/to/...,可多次传入 --root 指定各本地仓库路径。默认 --from 为 4.12.0,4.14.1,即只有这些版本会被移动;资料指出 4.8.1、4.9.2、dcm 4.15.0 保持不变,已在 --to 版本的仓库(如 rhdh-cli 处于 4.17.1)为空操作。锁刷新覆盖 --to 下的每个 yarn.lock(包括继承的根固定值),跳过 dist-dynamic 和显式更旧的固定值;完整多仓库重生成可能超过 45 分钟,可用 --no-refresh-locks 跳过。还支持 --scan 扫描、--dry-run 预演。建议使用精确的 --to(不要用 stable),以便所有仓库与 Renovate/参考 PR 匹配。

代理工作流与检查清单:确认 --to / --from;解析本地 --root 检出,先升级 GitHub 根仓库;对 GitLab CEE midstream/distgit(gitlab.cee.redhat.com/rhidp/rhdh、…/rhdh-plugin-catalog),从 GitHub 升级中复制 yarn-<to>.cjs 到 .yarn/releases/(移除旧的 --from 二进制);先 --scan 再升级(不熟悉时先 --dry-run);总结 set-version 目录、额外项、锁刷新情况;仅在用户要求时提交 / 创建 PR·MR(jira-pr-mr-link)。检查清单包括:--to 与参考升级一致;--from 只覆盖预期版本(默认 4.12/4.14,必要时才添加其他);GitHub 先于 GitLab CEE 升级,distgit 二进制为复制而非 curl;检查 Containerfile / ENV YARN= 额外项;完成锁刷新(或有意使用 --no-refresh-locks);新的 yarn-*.cjs 二进制可执行(100755)。

适用场景:需要在多个 RHDH 仓库中同步升级 Yarn Berry 版本、刷新锁文件并统一固定值的维护工作。限制:资料未提供该技能的独立安装命令、许可、收费、价格、性能指标或官方支持渠道,这些信息暂未提供;操作依赖本地仓库检出,且多仓库全量锁刷新耗时较长。