已合并
build.sh脚本优化,解决npm 10+版本校验无法通过的问题 #593
段国强创建于 2024年2月18日
build.sh脚本优化,解决npm 10+版本校验无法通过的问题 #593
已合并
从refs/pull/593/head合入到master
Pull Request已成功合入, 合并人@
(感谢 段国强 的贡献)2024年2月18日 关联了 opengauss/openGauss-workbench Issue I91E15
opengauss_bot
2024年2月18日 评论:
2024年2月18日 评论:
Hey @duanguoqiang4, Welcome to openGauss Community.
All of the projects in openGauss Community are maintained by @opengauss_bot.
That means the developers can comment below every pull request or issue to trigger Bot Commands.
Please follow instructions at Here to find the details.


2024年2月18日 指派了测试人opengauss-bot
2024年2月18日 指派了 opengauss-bot 参与评审
2024年2月18日 添加了
sig/tools
标签
此处折叠了56条消息 查看更多
opengauss-bot
2024年2月18日 评论:
2024年2月18日 评论:
opengauss-bot
2024年2月18日 评论:
2024年2月18日 评论:
opengauss-bot
2024年2月18日 评论:
2024年2月18日 评论:
| Check Name | Build Result | Build Details |
|---|---|---|
| openGauss_datakit_PR | ✅ SUCCESS | #944 |


shenzheng4
2024年2月18日 评论:
2024年2月18日 评论:
/lgtm
/approve


ywzq1161327784
2024年2月19日 评论:
2024年2月19日 评论:
/lgtm


【标题】(请简要描述下实现的内容) build.sh脚本优化,解决npm 10+版本校验无法通过的问题
【实现内容】: 解决build.sh脚本对npm 10+版本校验无法通过的问题,同时修改java version和maven version的校验规则
【根因分析】: 当npm版本为10+时,满足版本不低于8.11的要求,然而build.sh脚本中校验却无法通过。分析问题原因是脚本中使用字符串比较的方式来校验版本(代码如下:
[ x"$NPM_VERSION" \< x"8.11" ]),而字符串的比较是按照逐个字符的ASCII码顺序进行比较的,当npm版本为10+时,第一个字符为1,小于8,因此校验不通过。【实现方案】:
修改版本校验规则,将获取到的npm版本按照.分割,获取到主版本号和次版本的号,然后按照数字大小比较版本号是否满足要求(代码如下:
[ $MAJOR_VERSION -lt 8 ] || ([ $MAJOR_VERSION -eq 8 ] && [ $MINOR_VERSION -lt 11 ]))。增加非空校验,在进行版本校验前,首先验证获取到的NPM_VERSION是否为空,为空时则报错退出;此非空校验避免了在版本校验时因为变量为空引发的一些问题。
同步修改java version和maven version的校验规则,避免出现类似npm的问题。
issue:I91LWQ根因分析及实现方案:服务器管理-添加服务器时,后台根据“cat /etc/hostname”获取主机名,此处获取到的主机名在datakit安装企业版openGauss时会使用,用于填充xml配置文件中的服务器节点的主机名信息,而在openGasuss执行预安装时,又会根据“hostname”命令校验xml配置文件中的主机名,而两条命令获取到的主机名有可能不同,导致校验不通过,openGauss安装失败。因此为与openGauss的校验主机名的命令保持一致,避免不一致时可能出现的错误,将服务器管理中获取主机名的命令修改为“hostname”。
因为hostname不存在经常修改的情况,因此不考虑isuue中提到的实现动态获取hostname。
【关联需求或issue】:
#I91E15 #I91LWQ
【开发自验报告】:
build.sh脚本修改自验
修改前
修改后

获取主机名命令修改自验

debug模式下,命令成功执行
2. 是否可以添加fastcheck测试用例,如是,请补充fastcheck用例
否
3. 是否涉及资料修改,如是,在docs仓库补充资料
否
4. 是否考虑支撑升级和在线扩容等扩展场景
否
5. 是否考虑异常场景/并发场景/前向兼容/性能场景
否
6. 是否对其他模块产生影响
否
【其他说明】: