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

PollSCM does not build on repo change with parameterized target branch

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • git-plugin
    • None

      Using strategy: Default
      [poll] Last Built Revision: Revision 5a5549ff682d32d98a9ebf0c7e88cea84b5d85f6 (refs/remotes/origin/sprint_29)
      Selected Git installation does not exist. Using Default
      The recommended git tool is: NONE
      using credential 4bf47db3-4a46-4546-8ad0-54f157d0a78c
       > git --version # timeout=10
       > git --version # 'git version 2.24.0'
      using GIT_ASKPASS to set credentials 
       > git ls-remote -h -- https://********.git # timeout=10
      Found 14 remote heads on https://********.git
      Using strategy: SpecificRevisionBuildChooser 

       

      The sprint_29 branch is actually on 2aa5fa15c43e3299054d3fc65d279548efa75270 (other branches are unchanged)

       

      Steps to reproduce:

      1. Create a pipeline job
      2. SCM with Git, target branch */sprint_${SPRINT_NUM} and SPRINT_NUM is set as global variable. Uncheck lightweight checkout.
      3. The Jenkinsfile has a shared library imported, it also has PollSCM("* * * * *") in the triggers section
      4. Trigger the pipeline once to apply the config in Jenkins
      5. Polling log will find no change if you pushed something on sprint_29 on the branch. (no need to commit anything on the shared library)

       

       Jenkins 2.319.1

      Git Plugin 4.10.1

          [JENKINS-67440] PollSCM does not build on repo change with parameterized target branch

          Mark Waite added a comment -

          This configuration is creating a single job that switches between branches. That's not a recommended technique because we have multibranch pipelines and organization folders that will automatically create and destroy jobs that are dedicated to branches. When a branch is created, the multiranch pipeline creates the job automatically. When a branch is deleted, the multibranch pipeline deletes the job.

          I don't plan to work on this issue report. I recommend multi-branch pipeline and organization folders as the better way to meet the need of a job that runs on a branch.

          Mark Waite added a comment - This configuration is creating a single job that switches between branches. That's not a recommended technique because we have multibranch pipelines and organization folders that will automatically create and destroy jobs that are dedicated to branches. When a branch is created, the multiranch pipeline creates the job automatically. When a branch is deleted, the multibranch pipeline deletes the job. I don't plan to work on this issue report. I recommend multi-branch pipeline and organization folders as the better way to meet the need of a job that runs on a branch.

          Steven Huang added a comment - - edited

          markewaite Thanks for your quick response, 1 question, can I use Jenkins Global variables in the filter of what branch to be listed on the multibranch job in Jenkins?

           

          It looks like I can only use wildcard or regexp to filter my branch.

          i.e. ^sprint_\d+

           

          what I really want to achieve is: ^sprint_${SPRINT_NUM}

          Steven Huang added a comment - - edited markewaite  Thanks for your quick response, 1 question, can I use Jenkins Global variables in the filter of what branch to be listed on the multibranch job in Jenkins?   It looks like I can only use wildcard or regexp to filter my branch. i.e. ^sprint_\d+   what I really want to achieve is: ^sprint_${SPRINT_NUM}

          Mark Waite added a comment - - edited

          can I use Jenkins Global variables in the filter of what branch to be listed on the multibranch job in Jenkins?

          There are traits that can limit which branches are built. I've never tried to use variable expansion with those traits.

          I don't know what you mean by "global variable" in that case. Are you setting a Java property for SPRINT_NUM when you start Jenkins? Are you defining an environment variable for the Jenkins Java process when you start Jenkins? Are you using the EnvInject plugin to define an environment variable in the context of a job?

          Mark Waite added a comment - - edited can I use Jenkins Global variables in the filter of what branch to be listed on the multibranch job in Jenkins? There are traits that can limit which branches are built. I've never tried to use variable expansion with those traits. I don't know what you mean by "global variable" in that case. Are you setting a Java property for SPRINT_NUM when you start Jenkins? Are you defining an environment variable for the Jenkins Java process when you start Jenkins? Are you using the EnvInject plugin to define an environment variable in the context of a job?

            Unassigned Unassigned
            hlx98007 Steven Huang
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: