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

Cannot remove properties from Jenkinsfile for Pipeline from SCM

    Details

    • Similar Issues:

      Description

      In Pipeline Multibranch (and in general for Pipeline from SCM), when removing properties from a Jenkinsfile the properties of the branch job are not updated.

      Example

      1) I create a Jenkinsfile with Triggers:

      properties([pipelineTriggers([[$class: 'TimerTrigger', spec: 'H * * * *']])])
      
      node {
           ...
      }
      

      After branch indexing, the trigger is correctly set for the job

      2) Now I want to remove this trigger. I remove the properties step:

      node {
           ...
      }
      

      I trigger a branch indexing

      Expected result: My job configuration has no trigger
      Actual result: The trigger is still there


      Workaround

      So pipeline updates the properties only if the properties step is set in the Jenkinsfile. There is therefore a workaround.

      In this particular scenario, if I want to get rid of the trigger, I need to update to something like this first:

      properties([pipelineTriggers([])])
      // or also `properties([])`
      
      node {
        ...
      }
      

        Attachments

          Issue Links

            Activity

            Hide
            danielbeck Daniel Beck added a comment -

            Now I want to remove this trigger. I remove the properties step:

            Not how it works. Would also be dangerous for single-branch Pipelines, whose job config would be reset on every execution, or we'd need confusing special casing.

            properties() should do it.

            Show
            danielbeck Daniel Beck added a comment - Now I want to remove this trigger. I remove the properties step: Not how it works. Would also be dangerous for single-branch Pipelines, whose job config would be reset on every execution, or we'd need confusing special casing. properties() should do it.
            Hide
            danielbeck Daniel Beck added a comment -

            AFAIU it's actually pretty straightforward:

            properties(…) sets them (rather than e.g. add/replace). Absence of properties(…) keeps whatever is currently there.

            Show
            danielbeck Daniel Beck added a comment - AFAIU it's actually pretty straightforward: properties(…) sets them (rather than e.g. add/replace). Absence of properties(…) keeps whatever is currently there.
            Hide
            jglick Jesse Glick added a comment -
            properties()
            

            indeed.

            Show
            jglick Jesse Glick added a comment - properties() indeed.

              People

              • Assignee:
                Unassigned
                Reporter:
                allan_burdajewicz Allan BURDAJEWICZ
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: