当前位置: 首页 > 知识库问答 >
问题:

Jenkins管道轮询perforce

黄昊
2023-03-14

作为jenkins-pipeline-syntax-for-p4sync的延续,我无法让“轮询SCM”选项用于我的管道作业。以下是我的配置:

  1. "Poll SCM"被选中并设置为每10分钟轮询一次
  2. 管道脚本包含以下内容:
node ('some-node') // not actual value
{
    stage ('checkout')
    {
        checkout([
            $class: 'PerforceScm', 
            credential: '11111111-1111-1111-1111-11111111111', // not actual value
            populate: [
                $class: 'AutoCleanImpl', 
                delete: true, 
                modtime: false, 
                parallel: [
                    enable: false, 
                    minbytes: '1024', 
                    minfiles: '1', 
                    path: '/usr/local/bin/p4', 
                    threads: '4'
                    ], 
                pin: '', 
                quiet: true, 
                replace: true
                ], 
            workspace: [
                $class: 'ManualWorkspaceImpl', 
                charset: 'none', 
                name: 'jenkins-${NODE_NAME}-${JOB_NAME}', 
                pinHost: false, 
                spec: [
                    allwrite: false, 
                    clobber: false, 
                    compress: false, 
                    line: 'LOCAL', 
                    locked: false, 
                    modtime: false, 
                    rmdir: false, 
                    streamName: '', 
                    view: '//Depot/subfolder... //jenkins-${NODE_NAME}-${JOB_NAME}/...' // not actual value
                    ]
                ]
            ]
        )
    }

尽管如此,轮询仍然不起作用,并且作业没有“Perforce软件轮询日志”链接,就像非流水线作业在GUI中配置perforce源和Poll SCM时那样。这就像PerforceSCM缺少一个民意调查:真正的设置 - 或者我做错了什么。

目前我有一个解决方法,即我在非流水线作业中轮询perforce,这会触发流水线作业,但是我必须手动传递更改列表,我宁愿使用流水线作业来执行所有操作。

编辑:版本

jenkins - 2.7.4
P4 插件 - 1.4.8
管道插件 - 2.4
管道 SCM 步骤插件 - 2.2

共有2个答案

屠德宇
2023-03-14

将所有插件更新为最新(截至此发布日期)并重新启动jenkins服务器后-轮询似乎正在使用完全相同的配置(作业现在有轮询日志链接)。我不确定到底是什么解决了这个问题——但我认为它已经解决了。

后焕
2023-03-14

如果您转到 Groovy 代码段生成器并选中“包含在轮询中”复选框,您将看到生成的代码包含一个行项目:

checkout([
            poll: true,

顺便说一句,目前在工作区名称中使用 ${NODE_NAME} 时可能会遇到问题。轮询在主服务器上运行,因此可能无法正确找到以前生成的更改编号。如果是这样的话,我知道应该很快就会有一个修复程序。

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

  • 我面临詹金斯的以下问题。我正在做的是,我已经在AWS上设置了一个管道,它在部署等方面都运行良好。我已经在服务器上单独设置了一个Jenkins项目,用于测试API测试用例。 我正在做的是将Jenkins服务器连接到AWS的构建阶段。一切似乎都很顺利,但在Jenkins服务器上,我发现了以下问题。 为了简单起见,我只是尝试在变量中执行日期,然后打印(echo)并注释掉最初运行的脚本命令。在builde

  • 我正在尝试从管道中自动创建Jenkins管道构建。 我有一个管道,它创建一个比特桶存储库并向其提交一些代码,包括一个Jenkinsfile。 我需要向此管道添加另一个步骤,然后为其创建管道生成,这将运行 Jenkinsfile 中的步骤。 我认为Jobs DSL应该能够处理这一点,但我找到的文档非常稀少,我仍然不完全确定是否有可能或如何做到这一点。 任何帮助都将不胜感激。我想生成的Pipeline

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

  • 问题内容: 我正在尝试在管道脚本中同步到Perforce,但是从文档中我看不到设置“工作区行为”的方法,即使插件本身似乎具有该功能。 我想要的“工作区”等同于设置“手册(自定义视图)”我可以在UI所描述的配置在这里。我需要将什么参数传递给任务以实现该目标? 问题答案: 您将需要使用完整的DSL,DSL仅是基本的。最简单的方法是使用摘要生成器(“ 管道语法” 链接),然后从SCM列表中选择。 然后,

  • 我对Jenkins pipeline非常陌生,我正在Groovy中构建一个小型共享库<在这种情况下,我试图提出一些单元测试,然后我必须模拟管道对象。 基本上,我有一个Groovy类,其中包含一个方法,该方法使用凭据执行一些操作: 因此,当谈到这个方法的单元测试时,我创建了一个PipelineMock Groovy类来(尝试)用凭据和用户名密码模拟