Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-36836

Git path polling ignores do not work in Pipeline jobs

    Details

    • Similar Issues:

      Description

      Multibranch pipeline jobs seem to ignore git path polling rules when attempting to detect indexing changes and schedule builds.

      More specifically:

      • I am using a "Periodically if not otherwise run" build trigger
      • I tested "Git polling ignores commits in certain paths" with the following:

      1) Only including paths that I care about:
      Included:
      that-path-I-care-about/.*
      Excluded:
      (empty)

      2) Including paths I care about and excluding a specific path:
      Included:
      that-path-I-care-about/.*
      Excluded:
      that-path-I-want-to-ignore/.*

      3) Just using excluded paths:
      Included:
      (empty)
      Excluded:
      that-path-I-want-to-ignore/.*

      None of them work as expected. Builds are triggered anytime a change is committed to the repo.

        Attachments

          Issue Links

            Activity

            Hide
            mcrooney mcrooney added a comment -

            Seeing this as well on a normal pipeline job, so I don't believe it is specific to multibranch ones. Perhaps the issue has something to do with the way workspaces are handled for Pipeline jobs? I posted about it here: https://groups.google.com/forum/#!msg/jenkinsci-users/wNIMGhJ76rA/HddRoHW-CAAJ

            Show
            mcrooney mcrooney added a comment - Seeing this as well on a normal pipeline job, so I don't believe it is specific to multibranch ones. Perhaps the issue has something to do with the way workspaces are handled for Pipeline jobs? I posted about it here: https://groups.google.com/forum/#!msg/jenkinsci-users/wNIMGhJ76rA/HddRoHW-CAAJ
            Hide
            jglick Jesse Glick added a comment -

            Sounds like a duplicate.

            Show
            jglick Jesse Glick added a comment - Sounds like a duplicate.
            Hide
            mcrooney mcrooney added a comment -

            Jesse Glick, are you sure this is a duplicate of that issue? That issue appears to be for ignores defined in a Jenkinsfile itself, and in that issue the author of this issue chimes in, and is told it is a different issue, so he says he will create a different one and links this issue. See https://issues.jenkins-ci.org/browse/JENKINS-36195?focusedCommentId=264748&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-264748. I'm going to unmark it as a duplicate to save you time, but if I'm wrong feel free to re-mark it and accept my apologies

            Show
            mcrooney mcrooney added a comment - Jesse Glick , are you sure this is a duplicate of that issue? That issue appears to be for ignores defined in a Jenkinsfile itself, and in that issue the author of this issue chimes in, and is told it is a different issue, so he says he will create a different one and links this issue. See https://issues.jenkins-ci.org/browse/JENKINS-36195?focusedCommentId=264748&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-264748 . I'm going to unmark it as a duplicate to save you time, but if I'm wrong feel free to re-mark it and accept my apologies
            Hide
            alk_sda S D added a comment -

            +1, polling rules do not work for simple pipeline & multi-branch pipeline jobs. In my case I'm trying to ignores commits from certain users.

            Show
            alk_sda S D added a comment - +1, polling rules do not work for simple pipeline & multi-branch pipeline jobs. In my case I'm trying to ignores commits from certain users.
            Hide
            demee Slawomir Demichowicz added a comment -

            Same issue here. Ignoring commits messages does not work with multibranch pipeline.

            Show
            demee Slawomir Demichowicz added a comment - Same issue here. Ignoring commits messages does not work with multibranch pipeline.
            Hide
            sams_gleb gleb samsonov added a comment -

            for me, it looks like all include/exclude rules don't work properly if we'll use jobs without the persistent workspace (any pipeline-jobs for example). It caused by a git-plugin code (https://github.com/jenkinsci/git-plugin/blob/master/src/main/java/hudson/plugins/git/GitSCM.java). This plugin tries to find a workspace for polling and if this workspace doesn't exist - it compares revision hashes from the latest build and from actual repo (`git ls-remote -h`) . And obviously if we've updated repo these hashes differ so new build is starting

            Show
            sams_gleb gleb samsonov added a comment - for me, it looks like all include/exclude rules don't work properly if we'll use jobs without the persistent workspace (any pipeline-jobs for example). It caused by a git-plugin code ( https://github.com/jenkinsci/git-plugin/blob/master/src/main/java/hudson/plugins/git/GitSCM.java ). This plugin tries to find a workspace for polling and if this workspace doesn't exist - it compares revision hashes from the latest build and from actual repo (`git ls-remote -h`) . And obviously if we've updated repo these hashes differ so new build is starting
            Hide
            vorobievalex Alexander Vorobiev added a comment -

            Can this functionality be moved to later stages?
            So the repository is still fetched, but some steps can be skipped in case there are no appropriate changes as described in JENKINS-37978.

            Show
            vorobievalex Alexander Vorobiev added a comment - Can this functionality be moved to later stages? So the repository is still fetched, but some steps can be skipped in case there are no appropriate changes as described in JENKINS-37978 .
            Hide
            killdash9 Michael Andrews added a comment -

            Path inclusions and exclusions (in a NON-MULTIBRANCH project) seem to work fine when there is a persistent workspace (we use the master to Checkout all code - then move on to a worker node). This is the case in NON-PIPELINE jobs as well and has been as such for some time. The USER inclusion/exclusion do not work in pipelines. Definitely Hoping for a fix to the user exclusions soon as our automated tagging and version bumping always results in a new build.

            Show
            killdash9 Michael Andrews added a comment - Path inclusions and exclusions (in a NON-MULTIBRANCH project) seem to work fine when there is a persistent workspace (we use the master to Checkout all code - then move on to a worker node). This is the case in NON-PIPELINE jobs as well and has been as such for some time. The USER inclusion/exclusion do not work in pipelines. Definitely Hoping for a fix to the user exclusions soon as our automated tagging and version bumping always results in a new build.
            Hide
            jglick Jesse Glick added a comment -

            It is well known that you cannot use path exclusions when Git is configured to perform master-based polling, due to limitations in the Git network protocol. Would be solvable only by using a master repo cache the way the Mercurial plugin does, and in fact git already does for multibranch projects. I think this is already filed somewhere.

            Polling exclusions are not currently supported for multibranch projects under any circumstances. That is probably also already filed somewhere.

            Show
            jglick Jesse Glick added a comment - It is well known that you cannot use path exclusions when Git is configured to perform master-based polling, due to limitations in the Git network protocol. Would be solvable only by using a master repo cache the way the Mercurial plugin does, and in fact git already does for multibranch projects. I think this is already filed somewhere. Polling exclusions are not currently supported for multibranch projects under any circumstances. That is probably also already filed somewhere.
            Hide
            killdash9 Michael Andrews added a comment -

            User exclusions are now working. This is from one of our pipelines:

            Ignored commit 73adf973ee91ff5b21c0638878eee33df7204544: Found excluded author: Jenkins
            
            Show
            killdash9 Michael Andrews added a comment - User exclusions are now working. This is from one of our pipelines: Ignored commit 73adf973ee91ff5b21c0638878eee33df7204544: Found excluded author: Jenkins
            Hide
            rswanson Ron Swanson added a comment -

            Michael Andrews Good day. Can you please say more about how you got that working?

            Show
            rswanson Ron Swanson added a comment - Michael Andrews Good day. Can you please say more about how you got that working?
            Hide
            maxfields2000 Maxfield Stewart added a comment -

            Michael Andrews I can get those log messages, however in situations where there is no actual workspace on a build node it still triggers the build (even though there's a duplicate workspace on the Jenkins master server). So I believe it works but still doesn't recognize using the master servers local copy as the source to make the determination. Which is not ideal.

            Show
            maxfields2000 Maxfield Stewart added a comment - Michael Andrews I can get those log messages, however in situations where there is no actual workspace on a build node it still triggers the build (even though there's a duplicate workspace on the Jenkins master server). So I believe it works but still doesn't recognize using the master servers local copy as the source to make the determination. Which is not ideal.

              People

              • Assignee:
                Unassigned
                Reporter:
                prestonj Preston Jennings
              • Votes:
                21 Vote for this issue
                Watchers:
                34 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: