Jenkins Pipeline中sh命令参数如何插入变量替换文件名部分内容
问题根源
Groovy的字符串模板(GString)中,$后面紧跟的连续合法标识符会被整体识别为变量名,你当前写法里的.json属于合法标识符字符,因此会被Groovy判定为变量e2eEnvironment.json的一部分,导致变量查找失败。
解决方案
用花括号{}明确包裹变量名,划定变量的识别边界,正确写法如下:
sh "npx cypress run --config-file cypress/cypress.${e2eEnvironment}.json --env ${envCredentials} || true"
当e2eEnvironment值为integration时,Groovy会先将字符串模板渲染为:npx cypress run --config-file cypress/cypress.integration.json --env [你的envCredentials对应值] || true
再传给shell执行,完全符合需求。
内容的提问来源于stack exchange,提问作者mindparse
相关产品推荐
相关产品推荐

