gpt4 book ai didi

jenkins 工作 dsl 插件问题,其中没有内部工作可以访问外部工作

转载 作者:行者123 更新时间:2023-12-04 08:40:11 26 4
gpt4 key购买 nike

我使用 jenkins jobDsl 如下:

#!groovy


node('master') {
stage('Prepare') {
deleteDir()
checkout scm
}


stage('Provision Jobs') {
jobDsl(targets: ['jenkins/commons.groovy', 'folderA/jenkins/jobA.groovy'].join('\n'),
removedJobAction: 'DELETE',
removedViewAction: 'DELETE',
sandbox: false)
}
}
我想从哪里使用 jobA.groovycommons.groovy 上定义的函数.
目前, jobA.groovy无权访问 commons.groovy 上定义的函数,我怎么能允许这种行为?
随附的:
  • jobA.groovy:
  • test_job("param1", "param2")
  • common.groovy:
  • def test_job(String team, String submodule) {
    pipelineJob("${team}/${submodule}/test_job") {
    displayName("Test Job")
    description("This is a Continuous Integration job for testing")

    properties {
    githubProjectUrl("githubUrl")
    }

    definition {
    cpsScm {
    scm {
    git {
    remote {
    url('githubUrl')
    credentials('credentials')
    refspec('+refs/pull/*:refs/remotes/origin/pr/*')
    }
    branch('${sha1}')
    scriptPath("scriptPath")
    }
    }
    }
    }
    }
    }
    这个想法是能够调用这个方法 test_job("param1", "param2")来自 jobA.groovy 没有问题,我目前得到:
    ERROR: (jobA.groovy, line 9) No signature of method: test_job() is applicable for argument types: (java.lang.String, java.lang.String)

    最佳答案

    JobDSL 创建工作。然后在运行时你希望你的工作调用你的函数。该函数必须通过共享库导入。
    创建共享库
    这是一个示例:https://github.com/sap-archive/jenkins-pipelayer
    最重要的部分是您需要创建一个 vars/文件夹,该文件夹将定义您可以从管道调用的函数。将 lib 托管在其自己的 repo 或孤立分支上
    导入共享库
    在 Jenkins 中导入 lib 库。从“管理”页面,转到“配置系统”部分下的“全局管道库”,添加一个具有您选择的名称的新库,即您的库名称、默认版本主、现代 scm git https://urlofyoursharedlib.git
    第一次运行 jobDSL 作业,然后转到 In Process Script Approval 页面并批准所有内容。
    使用共享库
    要在您的作业中导入库,您必须在文件顶部包含语句 @Library('name-of-your-lib')_
    还有一个类似的声明,“图书馆'你的图书馆的名字'”。这对于“调试和修复”共享库很有用,因为当您点击重播按钮时,您将看到管道中使用的共享库文件
    最后,如果您尝试的只是创建作业模板,我建议您尝试获取我共享的这个共享库正在做什么,它有助于创建声明性模板并解决您在使用 jobdsl 和共享管道时会遇到的问题和限制

    关于jenkins 工作 dsl 插件问题,其中没有内部工作可以访问外部工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64606842/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com