如何在Jenkins Pipeline运行时获取Pipeline with SCM中的scriptpath参数
在Jenkins Pipeline中获取「Pipeline with SCM」配置的脚本路径的替代方案
除了手动添加自定义字符串参数,还有以下几种可行方法:
读取仓库内的配置文件:在代码仓库根目录创建一个简单的配置文件(比如
script-path.txt),将UI中设置的Groovy文件路径写入其中。Pipeline运行时,通过readFile步骤读取该文件内容,就能得到对应的scriptpath。这种方式需要确保UI配置的路径和文件内内容保持一致,适合需要统一管理脚本路径的场景。利用
scm对象结合仓库结构推导:如果脚本路径在仓库中有固定规律(比如所有作业的脚本都放在pipelines/[作业名]/Jenkinsfile),可以通过scm对象获取当前作业关联的仓库信息,再结合作业名称(可通过env.JOB_NAME获取)推导脚本路径。不过这种方法仅适用于路径有明确规则的场景,灵活性较低。通过Jenkins共享库统一管理路径映射:创建一个Jenkins共享库,在其中维护作业名称与脚本路径的映射表。Pipeline中调用共享库的方法,传入当前作业名称(
env.JOB_NAME)即可获取对应的scriptpath。这种方式适合大量作业的场景,方便统一维护和修改路径映射。
需要注意的是,以上方法都无法直接从UI配置中读取路径,而是通过间接方式实现路径传递,规避了禁用的API和复杂的XML解析操作。
内容的提问来源于stack exchange,提问作者Evgeniy Vovney
相关产品推荐
相关产品推荐

