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

使用init.groovy.d脚本中的管道初始化Jenkins 2.0

令狐嘉运
2023-03-14
问题内容

对于自动化,我想使用管道作业初始化Jenkins
2.0实例。我想创建一个Groovy脚本,/usr/share/jenkins/ref/init.groovy.d/在启动时将其复制到该文件夹中。该脚本应创建一个Jenkins
2.0 Pipeline作业,以处理来自SCM的Jenkinsfile。

我找不到与2.0管道类相关的Javadoc或如何执行此操作的示例。

以前,使用Job
DSL创建管道,我使用Groovy脚本FreeStyleProject通过ExecuteDslScripts构建器创建。该工作将成为Job
DSL种子工作。

一种选择是使用初始化脚本来创建Job DSL种子作业,以创建Jenkins 2.0管道。这似乎不必要地复杂。

我正在这个仓库中进行实验:https :
//github.com/martinmosegaard/vigilant-
sniffle


问题答案:

如果只需要创建一个简单的管道作业,则可以使用Jenkins API。但这实际上仅在创建一个简单作业时才有效,对于复杂的设置,您需要一些抽象,例如Job
DSL。

从这里开始:[http]( http://javadoc.jenkins-
ci.org/jenkins/model/Jenkins.html#createProject(java.lang.Class,%20java.lang.String))
//javadoc.jenkins-
ci.org/jenkins/model/Jenkins.html#createProject(java.lang.Class,%20java.lang.String)。

例:

import jenkins.model.Jenkins
import org.jenkinsci.plugins.workflow.job.WorkflowJob

WorkflowJob job = Jenkins.instance.createProject(WorkflowJob, 'my-pipeline')

然后,您需要填充作业,例如,设置流程定义

或者,您可以等待系统配置DSL插件准备就绪。但是它还没有发布,我不确定它是否可以创造就业机会。



 类似资料:
  • 为了实现自动化,我希望用管道作业初始化Jenkins2.0实例。我想创建一个Groovy脚本,该脚本在启动时复制到文件夹。该脚本应该创建一个Jenkins2.0管道作业,用于处理来自SCM的Jenkinsfile。

  • 引入地图 一般项目中,对于 vue-amap 的初始化只需要调用 initAMapApiLoader 方法即可。 NPM 安装: import VueAMap from 'vue-amap'; Vue.use(VueAMap); VueAMap.initAMapApiLoader({ key: 'YOUR_KEY', plugin: ['AMap.Scale', 'AMap.OverVi

  • 5.a. 运行级别 启动您的系统 在系统启动时, 您会看到许多的文字漂浮而过. 如果您足够留心, 会发现每次重启系统时这些文字的内容其实都是一样的. 这一系列动作被称之为启动流程 (boot sequence) 并且已 (或多或少) 固定地 (statically) 定义下来了. 首先, 您的启动器会把启动器配置文件中定义的内核映象加载到内存中, 此后它告诉 CPU 去运行内核. 当内核已加载并运

  • 问题内容: 我想在脚本化管道中使用选项。 可能吗 ? 问题答案: 您可以从这里尝试答案

  • 问题内容: 我正在尝试将旧样式的基于项目的工作流转换为基于Jenkins的管道。在浏览文档时,我发现有两种不同的语法分别命名为和。例如最近(2016年底)发布的Jenkins网络语法。尽管有一个新的语法版本,Jenkins仍然也支持脚本语法。 现在,我不确定这两种类型的哪种情况最合适。语法将很快被弃用吗?詹金斯管道的未来会是这样吗? 任何可以分享有关这两种语法类型的想法的人。 问题答案: 最初创建

  • 我一直在查看Sitecore。内核,但似乎找不到Sitecore运行初始化管道的位置。它是在每个页面请求上运行还是在应用程序启动时只运行一次?你能告诉我为这个管道调用Run方法的确切位置吗? 更新我最后问这个问题的原因是因为我在Sitecore的代码中追溯了管道的执行。这是我发现的: 管道运行处理器... 调用... 调用... 创建新的对象 事情变得有点模糊。。。 返回新路由HttpHandle