jenkins - 如何在分配节点之前在 Jenkins 中加载属性
问题描述
我已经看到了一些关于在 jenkinsfiles 中加载属性文件的问题,但解决方案似乎都需要将 readProperties 包装在分配可能很慢的节点的东西中。Jenkins 已经从 SCM 访问了 jenkins 文件,因此它也应该具有从 SCM 获取属性文件所需的所有信息。
我以为我可以向 git 发出 http 请求来获取它,但后来我看到了:“GIT_COMMIT 等 SCM 特定变量不会自动定义为环境变量;相反,您可以使用结帐步骤的返回值。” 但是结帐步骤也将在节点之后,对吗?
如果我尝试在顶层调用 readProperties,它会给我“缺少所需的上下文类 hudson.FilePath”
解决方案
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。
推荐阅读
- tensorflow - 如何使用 Keras 获取 val_loss 和 val_acc 指标
- javascript - 运行进度条,每个循环的时间间隔都在变化
- javascript - 通过 SVG 元素上的 onclick 函数重定向到其他 HTML
- android - Android 通过 CallScreeningService 阻止的呼叫有时会响铃
- typescript - 为什么纱线在我所做的每一个动作中都会发出警告?
- python - 如何使用 jupiter notebook 在终端中打印 roc_auc_score?
- javascript - 在异步函数中导航 - React Navigation - React Native
- python - 无法初始化 Docker 包含的 API 服务器数据库
- java - Java正则表达式匹配结束不起作用
- tomcat - 詹金斯管道:等待另一个工作暂停