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

如何配置通过轮询SubVersion触发的Jenkins管道?

芮念
2023-03-14
问题内容

我们一直在使用Jenkins进行持续集成。一个典型的构建作业在“源代码管理”部分中指定SVN存储库和凭据,然后在“构建触发器”部分中启用“轮询SCM”,轮询时间表为每10分钟(H
/ 10 * * ) 。我们已经更新到Jenkins的最新版本,并且正在寻求建立管道版本。典型的管道脚本如下所示:

node {
    stage 'Build'
    build job: 'MyApplication Build'
    stage 'Deploy to test environment'
    build job: 'MyApplication Deploy', parameters: [
        [$class: 'StringParameterValue', name: 'DatabaseServer', value: 'DatabaseServer1'],
        [$class: 'StringParameterValue', name: 'WebServer', value: 'WebServer1']
    ]
    stage 'RunIntegrationTests'
    build job: 'MyApplication Test', parameters: [
        [$class: 'StringParameterValue', name: 'DatabaseServer', value: 'DatabaseServer1'],
        [$class: 'StringParameterValue', name: 'WebServer', value: 'WebServer1']
    ]
}

当手动触发管道作业时,一切运行正常,但是,我们希望每次将新修订签入SVN存储库时都运行该管道。管道配置确实具有“ poll
SCM”构建触发选项,但是没有“源代码管理”部分,您可以在其中指定存储库。我们怎样才能做到这一点?


问题答案:

我发现有效的解决方案是:

  1. 将管道脚本移到文件(默认为JenkinsFile)中,并将其存储在SubVersion中我项目的根目录中。
  2. 将我的管道作业定义源设置为“来自SCM的管道脚本”,根据常规Jenkins构建作业输入在SubVersion中找到我的项目的详细信息,然后将脚本路径设置为指向包含管道脚本的JenkinsFile。
  3. 将管道作业的生成触发器设置为“轮询SCM”,然后输入时间表。
  4. 手动运行管道作业

似乎是第4步,手动运行管道作业,这使轮询触发器选择了要轮询的正确存储库。在此之前,它似乎不知道在哪里寻找。



 类似资料:
  • 一段时间以来,我们一直在使用 Jenkins 进行持续集成。典型的构建作业在“源代码管理”部分中指定SVN存储库和凭据,然后在“构建触发器”部分中,我们启用“轮询SCM”,轮询计划为每10分钟(H/10 * * * *)。我们已经更新到最新版本的 Jenkins,并希望设置管道构建。典型的管道脚本如下所示: 当手动触发管道作业时,一切正常,但是我们希望每次将新修订版签入SVN存储库时运行此管道。管

  • 作为jenkins-pipeline-syntax-for-p4sync的延续,我无法让“轮询SCM”选项用于我的管道作业。以下是我的配置: "Poll SCM"被选中并设置为每10分钟轮询一次 管道脚本包含以下内容:

  • 描述 我设置了Jenkins(2.126),以便在推送新标记时构建管道。具体来说,我想标记上的现有提交为,并使其触发构建。根据几个消息来源,我想要的是可能的: https://mohamicorp.atlassian.net/wiki/spaces/DOC/pages/136740885/Triggering詹金斯基于新标签 不幸的是,当我标记一个现有的提交并将其推送到Git存储库时,什么都不会发

  • 问题内容: 我正在尝试设置要触发的版本的版本说明,因为我正在启动该版本,到目前为止我还没有运气。 我遇到了一个解决方案将文本添加到由Jenkins远程API触发的构建页面中,我有点以这种方式工作(第一个命令将启动构建,第二个命令将设置最后一个的描述)建立): 但是,问题是,如果我刚刚启动的构建被排队/没有立即启动,“ lastBuild”将不引用我刚刚启动的构建,而是之前的那个(仍在构建中)。 所

  • 在具有两个git存储库的Jenkinsfile中,这是一个在单个Jenkins作业中使用多个git存储库的示例: 如何配置此作业以跟踪这两个存储库的SCM更改,以便每次至少有一个存储库更新时触发此作业? 更新1:以下是我真正使用但不起作用的管道脚本:

  • 我通过jira触发器插件将jenkins作业设置为触发器<但是jenkins作业没有被触发,尽管它从JIRA那里获得了webhook事件。 我检查了如下内容。 Jenkins得到了网络钩子事件。我在詹金斯日志上检查了这个。 我试着为詹金斯设置各种方式,但都失败了。我想知道如何设置jira触发器 > 测试环境 吉拉:6.4.11 我的测试用例是。。。 Jenkins工作设置 选中:向JIRA添加注释