-
Bug
-
Resolution: Not A Defect
-
Minor
-
None
-
Jenkins 2.32
Pipeline Multibranch 2.12
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 {
...
}
- relates to
-
JENKINS-44848 Make properties step leave non-Jenkinsfile-defined JobPropertys undisturbed
-
- Resolved
-
- links to
[JENKINS-41875] Cannot remove properties from Jenkinsfile for Pipeline from SCM
Issue Type | Original: New Feature [ 2 ] | New: Bug [ 1 ] |
Summary | Original: Cannot remove properties from Pipeline Multibranch job | New: Cannot remove properties from Jenkins for Pipeline Multibranch |
Summary | Original: Cannot remove properties from Jenkins for Pipeline Multibranch | New: Cannot remove properties from Jenkinsfile for Pipeline Multibranch |
Description |
Original:
In Pipeline Multibranch, when removing _properties_ from a Jenkinsfile the properties of the branch job are not updated. h3. Example 1) I create a Jenkinsfile with Triggers: {code} properties([pipelineTriggers([[$class: 'TimerTrigger', spec: 'H * * * *']])]) node { ... } {code} After branch indexing, the trigger is correctly set for the job 2) Now I want to remove this trigger. I remove the properties step: {code} node { ... } {code} I trigger a branch indexing +Expected result:+ My job configuration has no trigger +Actual result:+ *The trigger is still there* ---- h3. 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: {code} properties([pipelineTriggers([])]) // or also `properties([])` node { ... } {code} |
New:
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. h3. Example 1) I create a Jenkinsfile with Triggers: {code} properties([pipelineTriggers([[$class: 'TimerTrigger', spec: 'H * * * *']])]) node { ... } {code} After branch indexing, the trigger is correctly set for the job 2) Now I want to remove this trigger. I remove the properties step: {code} node { ... } {code} I trigger a branch indexing +Expected result:+ My job configuration has no trigger +Actual result:+ *The trigger is still there* ---- h3. 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: {code} properties([pipelineTriggers([])]) // or also `properties([])` node { ... } {code} |
Summary | Original: Cannot remove properties from Jenkinsfile for Pipeline Multibranch | New: Cannot remove properties from Jenkinsfile for Pipeline from SCM |
Resolution | New: Not A Defect [ 7 ] | |
Status | Original: Open [ 1 ] | New: Resolved [ 5 ] |
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.