首页 > 解决方案 > 如何在分配节点之前在 Jenkins 中加载属性

问题描述

我已经看到了一些关于在 jenkinsfiles 中加载属性文件的问题,但解决方案似乎都需要将 readProperties 包装在分配可能很慢的节点的东西中。Jenkins 已经从 SCM 访问了 jenkins 文件,因此它也应该具有从 SCM 获取属性文件所需的所有信息。

我以为我可以向 git 发出 http 请求来获取它,但后来我看到了:“GIT_COMMIT 等 SCM 特定变量不会自动定义为环境变量;相反,您可以使用结帐步骤的返回值。” 但是结帐步骤也将在节点之后,对吗?

如果我尝试在顶层调用 readProperties,它会给我“缺少所需的上下文类 hudson.FilePath”

标签: jenkins

解决方案


SCM 变量在 scm 对象中可用,因此可以使用针对 gitlab API 的 PRIVATE-TOKEN 标头并解析 json 响应来实现。

此外,还有一种更简单的方法:

readTrusted: https://www.jenkins.io/doc/pipeline/steps/workflow-multibranch/#readtrusted-read-trusted-file-from-scm

这将读取 SCM 中文件的内容,然后您可以在其上调用 readProperties text:content。


推荐阅读