小编tow*_*wel的帖子

在Jenkins管道中解析XML文件

我有一个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)

groovy jenkins jenkins-workflow jenkins-pipeline

5
推荐指数
2
解决办法
2万
查看次数

使用 GraphQL 突变删除 github 中的分支

我想使用 GraphQL 突变删除 github 分支,但我还没有找到有关该deleteRef命令的足够信息。使用GraphQL 浏览器我想出了这个废话:

mutation {
  deleteRef(input: {refId: "my-branch"}) {
    __typename
  }
}
Run Code Online (Sandbox Code Playgroud)

我还不知道如何添加存储库信息以使突变具有任何意义,我添加的唯一原因__typename是该deleteRef块不能留空。我该如何修复这个突变?

github github-api graphql

4
推荐指数
1
解决办法
666
查看次数

从 Prometheus 中的 kubernetes-service-endpoints 作业中删除指标

我正在使用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删除这些指标?谢谢

kubernetes prometheus kubernetes-helm

4
推荐指数
1
解决办法
786
查看次数

确定 Jenkinsfile 是否从多分支管道运行

我有一个运行多个Jenkinsfile选择分支的多分支管道。现在我需要Jenkinsfile用参数运行它,所以我想我可以使用常规管道。

现在我要做的就是确定我是否在多分支管道中运行。我可以检查构建中的任何参数,当没有任何参数时,我可以推断出我处于多分支管道中:

def isMultibranchPipeline() {
    !params.any()
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种更直接的方法来了解脚本是否在多分支管道中运行,但找不到类似的方法。

jenkins multibranch-pipeline

3
推荐指数
1
解决办法
1212
查看次数