当前位置: 首页 > 面试题库 >

通过种子作业创建后立即开始jenkins作业

宦炜
2023-03-14
问题内容

我正在使用Jenkins
DSL插件自动为git项目的所有分支创建构建作业。DSL插件由Web挂钩触发,以便在创建新分支后立即运行。每个分支生成的生成作业也被配置为由Web挂钩触发。

当前设置的问题是,仅在第二次提交后才执行构建。第一次提交将触发Jenkins DSL插件来创建相应的Jenkins作业,然后第二次提交将触发新创建的作业。

有什么方法可以通过DSL插件创建Jenkins作业后立即开始?我目前唯一能想到的就是添加一个额外的构建计划,但是我只想使用Web挂钩来防止不必要的轮询。


问题答案:

您可以使用queueDSL命令来计划构建,请参阅https://github.com/jenkinsci/job-dsl-
plugin/wiki/Job-DSL-Commands#queue

要仅在作业是新作业时排队,您需要使用Jenkins API来测试作业是否已经存在。

if (!jenkins.model.Jenkins.instance.getItemByFullName('my-job')) {
    queue('my-job')
}


 类似资料:
  • 问题内容: 我有一个非常轻量级的作业,应在触发后立即执行,而不是等待一个小时才能完成当前作业。 据我了解,一项 轻量级 任务就是我想要的。它将为该任务创建一个临时执行程序。 我怎样才能使工作成为举重运动员? 问题答案: 试试这个FlyWeightProject插件。它是在Flyweight中运行的Freestyle类型的扩展。

  • 问题内容: 我正在尝试编写一个Jenkins作业(例如CopyJob),该作业将复制另一个作业(在此作业中使用Multijob插件),并且还将其所有下游作业复制到新作业中。想法是要有一个Multijob作为模板,以便可以将其复制到新的Multijobs中(例如,用于特定的分支或功能)。 看到: 当手动触发“ CopyJob”时,它将使用新的SubJobs创建一个新的MultiJob: 到目前为止,

  • 问题内容: 我想通过向Jenkins发送后卷曲请求来禁用Jenkins作业。 我尝试使用以下方法进行操作: 但每次都失败。我得到的错误是: 403请求中未包含有效面包屑 是否有基于卷曲的良好解决方案? 问题答案: 捏碎错误表明您正在使用CSRF保护。您需要在请求中包含适当的面包屑标头。面包屑可以从Jenkins API获得,如上面链接的JenkinsWiki页面所述。“使用curl和crumb触发

  • 从jenkins脚本控制台,我如何启动一个工作的构建? 尝试过: 错误:groovy.lang.MisSingMEDORDION:没有方法的签名:hudson.model.FreeStyleProject.startBuild()适用于参数类型:()值:[]

  • 是否有可能通过一个作业DSL创建多分支管道作业,该作业通过“管道脚本”而不是每个Git存储库包含的Jenkinsfile来定义作业? 我们希望避免在100个Git存储库中生成和维护相同的Jenkins文件(除了一些参数)。 目前,我们正在使用管道作业和工厂作业播种的作业DSL,但目前我们在多分支构建(功能分支)方面受到限制。因此,我们希望切换到多分支管道作业,但在播种方面我们受到了限制。 我知道我

  • 我有一个Jenkins的工作,它为master git分支使用maven构建目标“干净包部署”。但是,由于nexus repo不允许重新部署,如果Jenkins作业在没有版本更改的情况下第二次运行,它将失败并出现预期的400错误: 有人能提出一种不同的策略吗?这样,部署目标就可以运行,而不会让Jenkins的工作失败?