Jenkins LTS:Jenkins工作区中的Groovy脚本路径问题
我刚刚将我们的开发工厂的Jenkins版本升级为LTS。 我们以前是一个旧的2.x版本,
实际上,
stage('Load Utilities Scripts') {
checkout scm
echo "${job_name}"
modules.messages = load "${jenkins_home}/workspace/${job_name}@script/pipelines/utils/slack_functions.groovy"
modules.ansible = load "${jenkins_home}/workspace/${job_name}@script/pipelines/utils/ansible_functions.groovy"
modules.jenkins = load "${jenkins_home}/workspace/${job_name}@script/pipelines/utils/jenkins_functions.groovy"
modules.pic_env = load "${jenkins_home}/workspace/${job_name}@script/pipelines/utils/pic_env.groovy"
modules.maven = load "${jenkins_home}/workspace/${job_name}@script/pipelines/utils/maven_functions.groovy"
modules.git = load "${jenkins_home}/workspace/${job_name}@script/pipelines/utils/git_functions.groovy"
}
我们有一个可以加载所有脚本的阶段:它运行良好,除了现在脚本已放置在
/var/jenkins_home/workspace/SAGES2_BUILD_AUTO@script/357f3acc22b0fbb05a66735d46d7d7eb950a2e836ab3762b1905784bc550ee5e on builtin
/var/jenkins_home/workspace/SAGES2_BUILD_AUTO on builtin
我想这是一个安全性的演变中(我知道Jenkins上的Groovy脚本插件经常被弃用但这是另一个问题)。
我如何获得此字符串:357F3ACC22B0FBB05A66735D46D7EB950A2E836AB3762B1905784BC550EEE5E?是否有诸如Job_name或Jenkins_home之类的Vars?谁会产生这个令牌,在哪里?我可以在这个字符串上放手吗? 它代表什么?
I just upgraded the jenkins version of our development factory to lts. We were previously in an old 2.x version
In fact we have a stage to load all scripts :
stage('Load Utilities Scripts') {
checkout scm
echo "${job_name}"
modules.messages = load "${jenkins_home}/workspace/${job_name}@script/pipelines/utils/slack_functions.groovy"
modules.ansible = load "${jenkins_home}/workspace/${job_name}@script/pipelines/utils/ansible_functions.groovy"
modules.jenkins = load "${jenkins_home}/workspace/${job_name}@script/pipelines/utils/jenkins_functions.groovy"
modules.pic_env = load "${jenkins_home}/workspace/${job_name}@script/pipelines/utils/pic_env.groovy"
modules.maven = load "${jenkins_home}/workspace/${job_name}@script/pipelines/utils/maven_functions.groovy"
modules.git = load "${jenkins_home}/workspace/${job_name}@script/pipelines/utils/git_functions.groovy"
}
it worked perfectly well except that now the scripts are positioned in
/var/jenkins_home/workspace/SAGES2_BUILD_AUTO@script/357f3acc22b0fbb05a66735d46d7d7eb950a2e836ab3762b1905784bc550ee5e on builtin
/var/jenkins_home/workspace/SAGES2_BUILD_AUTO on builtin
I guess it's a security evolution (i know groovy script plugin on jenkins are often deprecated but it's another problem).
How can i get this string : 357f3acc22b0fbb05a66735d46d7d7eb950a2e836ab3762b1905784bc550ee5e ? Is there any vars like job_name or jenkins_home ? Who generates this token and where ? Can i have the hand on this string ?
What does it represent ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以通过附加相对部分来获取当前目录并构建绝对路径。
或类似的东西
似乎是作为安全性提高而引入的。因此,您将必须像以下那样解决这个问题。
图片来源:詹金斯为什么在workspace@脚本文件夹中创建一个子文件夹来结帐git代码,而不是workspace@脚本本身?
You can get the current directory and build the absolute path by appending the relative part.
Or something like this
It seems this has being introduced as a security improvement. So you will have to work around this like below.
Credit: Why does Jenkins creates a subfolder within the workspace@script folder to checkout git code instead of the workspace@script itself?