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

Provide a SCMCheckoutStrategy to checkout only once for all matrix entries

    XMLWordPrintable

    Details

    • Type: New Feature
    • Status: Open (View Workflow)
    • Priority: Critical
    • Resolution: Unresolved
    • Component/s: matrix-project-plugin
    • Labels:
      None
    • Environment:
      Platform: All, OS: All
    • Similar Issues:

      Description

      When a project got a configuration matrix, the source code is checked out multiple times:

      • Once for reference incase of poll scm on schedule.
      • Once per matrix item, increasing proportionaly to the complexity.

      It would be great to have a strategy, which runs checkout only once in the master build.

      A patch proposal from @asolsson (initial implementation before creation of SCMCheckoutStrategy )

      I've implemented an enhancement to the matrix project to avoid a SCM checkout
      for each target in the matrix. This can be useful if checkout takes a long time
      and if the build step can build concurrent builds from the same SCM area.
      It's implemented as a option when setting up the Matrix project, if not
      used/checked the Matrix project will work as usual.

        Attachments

          Issue Links

            Activity

            Hide
            kohsuke Kohsuke Kawaguchi added a comment -

            This was implemented as an SCMCheckoutStrategy extension point, but we still need someone to deliver the actual implementation of it.

            Show
            kohsuke Kohsuke Kawaguchi added a comment - This was implemented as an SCMCheckoutStrategy extension point, but we still need someone to deliver the actual implementation of it.
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            BTW, the real issue has not been fixed (duplicated by https://issues.jenkins-ci.org/browse/JENKINS-13042)
            The issue's title and contents are quite different and confusing. I've refactored descriptions in order to represent the current state.

            BTW, the strategy should be available in previous LTS releases (1.509.x is mandatory), so it should be implemented as a plugin.

            Show
            oleg_nenashev Oleg Nenashev added a comment - BTW, the real issue has not been fixed (duplicated by https://issues.jenkins-ci.org/browse/JENKINS-13042 ) The issue's title and contents are quite different and confusing. I've refactored descriptions in order to represent the current state. BTW, the strategy should be available in previous LTS releases (1.509.x is mandatory), so it should be implemented as a plugin.
            Hide
            roman80 Roman80 added a comment -

            What is the current status of this change, because we need this change too?

            Show
            roman80 Roman80 added a comment - What is the current status of this change, because we need this change too?
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            Roman80 Jenkins core side is done. https://wiki.jenkins-ci.org/display/JENKINS/Extension+points#Extensionpoints-jenkins.scm.SCMCheckoutStrategy
            Now somebody should implement a short plugin or maybe just patch matrix project plugin since it's decoupled now.

            Show
            oleg_nenashev Oleg Nenashev added a comment - Roman80 Jenkins core side is done. https://wiki.jenkins-ci.org/display/JENKINS/Extension+points#Extensionpoints-jenkins.scm.SCMCheckoutStrategy Now somebody should implement a short plugin or maybe just patch matrix project plugin since it's decoupled now.
            Hide
            roman80 Roman80 added a comment - - edited

            I'm new to jenkins development, so what can I do to get this done?
            What's is so difficult to fix this?
            Aren't there some interfaces to implement?

            Show
            roman80 Roman80 added a comment - - edited I'm new to jenkins development, so what can I do to get this done? What's is so difficult to fix this? Aren't there some interfaces to implement?

              People

              • Assignee:
                Unassigned
                Reporter:
                asolsson asolsson
              • Votes:
                32 Vote for this issue
                Watchers:
                29 Start watching this issue

                Dates

                • Created:
                  Updated: