我有一个XML文件,我想将其用作管道脚本的输入。问题是XMLParser不可序列化,因此我将其放在NonCPS函数中,但是因此丢失了Node对象。
这是管道脚本:
def buildPlanPath = 'C:\\buildPlan_test.xml'
@NonCPS
groovy.util.Node getBuildPlan(path) {
new XmlParser().parseText(readFile(path))
}
node {
//def buildPlan = new XmlParser().parseText(readFile(buildPlanPath))
groovy.util.Node buildPlan = getBuildPlan(buildPlanPath)
println buildPlan.getClass()
println buildPlan
println buildPlan.branch
}
Run Code Online (Sandbox Code Playgroud)
这是一个输入样本:
<branch name='mybranch'>
<stage>
<job name='job11' />
<job name='job12' />
</stage>
<stage>
<job name='job21' />
<job name='job22' />
<job name='job23' />
</stage>
<stage>
<job name='job31' />
</stage>
</branch>
Run Code Online (Sandbox Code Playgroud)
结果如下:
Started by user admin
[Pipeline] node
Running on master in C:\Jenkins\workspace\pipeline-develop
[Pipeline] {
[Pipeline] readFile
[Pipeline] echo
class java.lang.String
[Pipeline] …Run Code Online (Sandbox Code Playgroud) 我想使用 GraphQL 突变删除 github 分支,但我还没有找到有关该deleteRef命令的足够信息。使用GraphQL 浏览器我想出了这个废话:
mutation {
deleteRef(input: {refId: "my-branch"}) {
__typename
}
}
Run Code Online (Sandbox Code Playgroud)
我还不知道如何添加存储库信息以使突变具有任何意义,我添加的唯一原因__typename是该deleteRef块不能留空。我该如何修复这个突变?
我正在使用kube-prometheus-stack图表,并且试图摆脱所有指标kube_secret。
当我查询这些指标时,我发现它们源自名为 的作业kubernetes-service-endpoints,但我无法弄清楚哪个服务监视器在 中控制它values.yaml,因此我尝试将它们从每个可配置服务监视器中删除 - 在每个监视器中我放入:
metricRelabelings:
- action: drop
regex: 'kube_secret_.+'
sourceLabels: [__name__]
Run Code Online (Sandbox Code Playgroud)
当然没有帮助。我需要定义什么才能values.yaml删除这些指标?谢谢
我有一个运行多个Jenkinsfile选择分支的多分支管道。现在我需要Jenkinsfile用参数运行它,所以我想我可以使用常规管道。
现在我要做的就是确定我是否在多分支管道中运行。我可以检查构建中的任何参数,当没有任何参数时,我可以推断出我处于多分支管道中:
def isMultibranchPipeline() {
!params.any()
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种更直接的方法来了解脚本是否在多分支管道中运行,但找不到类似的方法。