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

多起点Jenkins多分支管道

公羊晟
2023-03-14

我正在努力使用Jenkins 2.1多分支管道,在这里,我从同一个git存储库构建了多个工件。一些工件是独立的,应该根据它们各自目录中的更改触发构建。有些是依赖的,应该由先前的步骤/构建触发。

存储库有一个控制整个管道的文件。Jenkins多分支管道作业会在所有更改时触发(无其他行为)。

我不知道如何在目录dirA发生变化时触发工件A的构建。

git回购协议中的Jenkins文件file:///repopath看起来像这样:

node(){
  stage 'Build A'
    checkout([$class: 'GitSCM',
      branches: [[name: '*/master']],
      doGenerateSubmoduleConfigurations: false,
      extensions: [
        [$class: 'PathRestriction',
          excludedRegions: '.*',
          includedRegions: 'dirA/.*'],
      [$class: 'RelativeTargetDirectory',
        relativeTargetDir: 'sub']],
        submoduleCfg: [],
        userRemoteConfigs: [[url: 'file:///repopath']]])
    sh './buildA.sh'
}
node(){
   stage 'Build B'
   ...
}
...

这将始终触发buildA的运行。上海:-(

我使用下面的插件:

  • Git客户端插件1.19.6

共有1个答案

呼延承平
2023-03-14

不如就做些像

git log --pretty=format: --name-only -n 15 | sort | uniq

?? 如果您可以确定一个构建中的提交数量或它们的哈希值,这将回答您的问题。

 类似资料:
  • 对于一个新项目,我想使用Jenkins CI的新管道功能。我们的Git存储库中有几个分支,应该以同样的方式进行测试。它还应该自动跟踪和处理新的分支。因此,我创建了一个多分支管道作业。但它的配置有两个问题: 1) 为了被Jenkins标记为有效,分行需要一个“Jenkinsfile”。如果这不存在,詹金斯将忽略该分支。有没有办法标记与模式匹配的所有分支,而不需要在其中包含此文件? 2) 每个分支都应

  • Jenkins多分支管道总是在主节点上执行签出。在我的例子中,我想在另一个节点上构建。我在Jenkinsfile中的脚本如下所示: 我被迫结账再次在我的节点上分支以执行构建。从头开始在选定的节点上执行管道构建会好得多,但我找不到如何做到这一点。

  • 当前,当点击第一阶段时,声明性管道将自动执行 我只想在子目录中签出scm。(因此它不会在根目录中签出相同的内容) 因为它需要jenkinsfile它已经结账一次。加目录

  • 美好的一天, 我尝试在新的Jenkins实例上设置多分支管道,在扫描多分支管道日志中遇到了以下错误: 没有这样的文件:E:\Continuous Integration\Jenkins\jobs\Enhanced API\indexing\indexing.log 根据jenkins.err.log,我遇到了一个 这个Jenkins的版本是2.85,带有以下版本的Git插件: Git客户端插件-2

  • 我对使用Jenkins文件和GIT插件的Jenkins多分支pipleline有一个问题。 问题是,每次向暂存分支推送都会触发master管道。所需的行为是,推送到暂存分支仅触发用于暂存的管道,而推送到主分支仅触发主管道 这是我的詹金斯档案 我将分享一些日志:这是主分支的日志 这是主分支的日志,但只有暂存有一个新的提交: 注意“已发现更改”,即使主分支上的头未更改 詹金斯·弗。2.190.1 Gi

  • 我遇到了JENKINS-38706。由于它已经开放了一段时间,我正在努力解决这个问题。 我的问题是我正在运行一个多节点管道,其中一个节点是Windows从节点,具有255个字符路径限制。 因此,我正在尝试更改我的Windows从属阶段的工作区,而不是使用多分支管道使用的C:\jenkins\workspace\job-分支-随机字符,我正在尝试将其移动到c:\w\Jobs\分支。 它立即失效: 我