-
Improvement
-
Resolution: Fixed
-
Major
-
None
-
Delivery Pipeline plugin 1.0.3
workflow-aggregator 2.1
The task step should be allowed to take a body (closure).
Currently, the task action can be used to label tasks within a Jenkins pipeline stage. It allows more fine grained visualization of stages in the Delivery Pipeline view rather than just having one big block visualized for the entire stage. For e.g. pipeline failures, tasks allows for better information on information radiators on what went wrong without requiring users to actively find this information through the Jenkins UI.
The current implementation of the task step (action) does not support bodies (closures). This was due to the stage step not accepting bodies either in the workflow-aggregator plugin 2.0 which the current solution depends on.
If the task is allowed to take a block, it allows for more logical grouping of tasks rather than just assuming a sequential progress. This should also allow the pipeline view to visualize the current progress of a particular task better than the current solution which basically just assumes the progress of the containing stage.
Example of how it could look like:
for the following example pipeline syntax:
[JENKINS-45738] Allow task pipeline steps to take closures for improved visualization
Status | Original: Open [ 1 ] | New: In Progress [ 3 ] |
Attachment | New: dpp_twb_example.png [ 40606 ] |
Description |
Original:
The task step should be allowed to take a body (closure). Currently, the task action can be used to label tasks within a Jenkins pipeline stage. It allows more fine grained visualization of stages in the Delivery Pipeline view rather than just having one big block visualized for the entire stage. For e.g. pipeline failures, tasks allows for better information on information radiators on what went wrong without requiring users to actively find this information through the Jenkins UI. The current implementation of the task step (action) does not support bodies (closures). This was due to the stage step not accepting bodies either in the workflow-aggregator plugin 2.0 which the current solution depends on. If the task is allowed to take a block, it allows for more logical grouping of tasks rather than just assuming a sequential progress. This should also allow the pipeline view to visualize the current progress of a particular task better than the current solution which basically just assumes the progress of the containing stage. |
New:
The task step should be allowed to take a body (closure). Currently, the task action can be used to label tasks within a Jenkins pipeline stage. It allows more fine grained visualization of stages in the Delivery Pipeline view rather than just having one big block visualized for the entire stage. For e.g. pipeline failures, tasks allows for better information on information radiators on what went wrong without requiring users to actively find this information through the Jenkins UI. The current implementation of the task step (action) does not support bodies (closures). This was due to the stage step not accepting bodies either in the workflow-aggregator plugin 2.0 which the current solution depends on. If the task is allowed to take a block, it allows for more logical grouping of tasks rather than just assuming a sequential progress. This should also allow the pipeline view to visualize the current progress of a particular task better than the current solution which basically just assumes the progress of the containing stage. Example of how it could look like: !dpp_twb_example.png! for the following example pipeline syntax: {{pipeline \{}} {{ agent any}} {{ options \{}} {{ ansiColor('xterm')}} {{ buildDiscarder(logRotator(numToKeepStr: '20'))}} {{ timeout(time: 30, unit: 'MINUTES')}} {{ timestamps()}} {{ }}} {{ stages \{}} {{ stage('Commit stage') \{}} {{ steps \{}} {{ task('Compile and package') \{}} {{ echo 'Building...'}} {{ sleep 2}} {{ }}} {{ }} {{ task('Upload artifacts') \{}} {{ sleep 3}} {{ echo 'Successfully uploaded artifacts!'}} {{ }}} {{ }}} {{ }}} {{ stage('Test stage') \{}} {{ steps \{}} {{ task('Run component tests') \{}} {{ echo 'Running tests...'}} {{ sleep 4}} {{ echo 'Component tests finished!'}} {{ }}} {{ }} {{ task('Run integration tests') \{}} {{ sleep 5}} {{ echo 'Integration tests finished!'}} {{ }}} {{ }}} {{ }}} {{ stage('Deploy') \{}} {{ steps \{}} {{ task('Deploy to UAT') \{}} {{ echo 'Deploying to UAT...'}} {{ sleep 4}} {{ echo 'Successfully deployed to UAT'}} {{ }}} {{ }} {{ task('Deploy to production') \{}} {{ echo 'Deploying to production...'}} {{ sleep 4}} {{ echo 'Deployed to production!'}} {{ }}} {{ }}} {{ }}} {{ }}} {{}}} |
Description |
Original:
The task step should be allowed to take a body (closure). Currently, the task action can be used to label tasks within a Jenkins pipeline stage. It allows more fine grained visualization of stages in the Delivery Pipeline view rather than just having one big block visualized for the entire stage. For e.g. pipeline failures, tasks allows for better information on information radiators on what went wrong without requiring users to actively find this information through the Jenkins UI. The current implementation of the task step (action) does not support bodies (closures). This was due to the stage step not accepting bodies either in the workflow-aggregator plugin 2.0 which the current solution depends on. If the task is allowed to take a block, it allows for more logical grouping of tasks rather than just assuming a sequential progress. This should also allow the pipeline view to visualize the current progress of a particular task better than the current solution which basically just assumes the progress of the containing stage. Example of how it could look like: !dpp_twb_example.png! for the following example pipeline syntax: {{pipeline \{}} {{ agent any}} {{ options \{}} {{ ansiColor('xterm')}} {{ buildDiscarder(logRotator(numToKeepStr: '20'))}} {{ timeout(time: 30, unit: 'MINUTES')}} {{ timestamps()}} {{ }}} {{ stages \{}} {{ stage('Commit stage') \{}} {{ steps \{}} {{ task('Compile and package') \{}} {{ echo 'Building...'}} {{ sleep 2}} {{ }}} {{ }} {{ task('Upload artifacts') \{}} {{ sleep 3}} {{ echo 'Successfully uploaded artifacts!'}} {{ }}} {{ }}} {{ }}} {{ stage('Test stage') \{}} {{ steps \{}} {{ task('Run component tests') \{}} {{ echo 'Running tests...'}} {{ sleep 4}} {{ echo 'Component tests finished!'}} {{ }}} {{ }} {{ task('Run integration tests') \{}} {{ sleep 5}} {{ echo 'Integration tests finished!'}} {{ }}} {{ }}} {{ }}} {{ stage('Deploy') \{}} {{ steps \{}} {{ task('Deploy to UAT') \{}} {{ echo 'Deploying to UAT...'}} {{ sleep 4}} {{ echo 'Successfully deployed to UAT'}} {{ }}} {{ }} {{ task('Deploy to production') \{}} {{ echo 'Deploying to production...'}} {{ sleep 4}} {{ echo 'Deployed to production!'}} {{ }}} {{ }}} {{ }}} {{ }}} {{}}} |
New:
The task step should be allowed to take a body (closure). Currently, the task action can be used to label tasks within a Jenkins pipeline stage. It allows more fine grained visualization of stages in the Delivery Pipeline view rather than just having one big block visualized for the entire stage. For e.g. pipeline failures, tasks allows for better information on information radiators on what went wrong without requiring users to actively find this information through the Jenkins UI. The current implementation of the task step (action) does not support bodies (closures). This was due to the stage step not accepting bodies either in the workflow-aggregator plugin 2.0 which the current solution depends on. If the task is allowed to take a block, it allows for more logical grouping of tasks rather than just assuming a sequential progress. This should also allow the pipeline view to visualize the current progress of a particular task better than the current solution which basically just assumes the progress of the containing stage. Example of how it could look like: !dpp_twb_example.png! for the following example pipeline syntax: {{pipeline \{}} {{ agent any}} {{ options \{}} {{ ansiColor('xterm')}} {{ buildDiscarder(logRotator(numToKeepStr: '20'))}} {{ timeout(time: 30, unit: 'MINUTES')}} {{ timestamps()}} {{ }}} {{ stages \{}} {{ stage('Commit stage') \{}} {{ steps \{}} {{ task('Compile and package') \{}} {{ echo 'Building...'}} {{ sleep 2}} {{ }}{{ }}{{ }}{{ }}} {{ }} {{ task('Upload artifacts') \{}} {{ sleep 3}} {{ echo 'Successfully uploaded artifacts!'}} {{ }}{{ }}{{ }}{{ }}} {{ }}{{ }}{{ }}} {{ }}{{ }}} {{ stage('Test stage') \{}} {{ steps \{}} {{ task('Run component tests') \{}} {{ echo 'Running tests...'}} {{ sleep 4}} {{ echo 'Component tests finished!'}} {{ }}{{ }}{{ }}{{ }}} {{ }} {{ task('Run integration tests') \{}} {{ sleep 5}} {{ echo 'Integration tests finished!'}} {{ }}{{ }}{{ }}{{ }}} {{ }}{{ }}{{ }}} {{ }}{{ }}} {{ stage('Deploy') \{}} {{ steps \{}} {{ task('Deploy to UAT') \{}} {{ echo 'Deploying to UAT...'}} {{ sleep 4}} {{ echo 'Successfully deployed to UAT'}} {{ }}{{ }}{{ }}{{ }}} {{ }} {{ task('Deploy to production') \{}} {{ echo 'Deploying to production...'}} {{ sleep 4}} {{ echo 'Deployed to production!'}} {{ }}{{ }}{{ }}{{ }}} {{ }}{{ }}{{ }}} {{ }}{{ }}} {{ }}} {{}}} |
Attachment | New: pipeline_example_syntax.txt [ 40607 ] | |
Description |
Original:
The task step should be allowed to take a body (closure). Currently, the task action can be used to label tasks within a Jenkins pipeline stage. It allows more fine grained visualization of stages in the Delivery Pipeline view rather than just having one big block visualized for the entire stage. For e.g. pipeline failures, tasks allows for better information on information radiators on what went wrong without requiring users to actively find this information through the Jenkins UI. The current implementation of the task step (action) does not support bodies (closures). This was due to the stage step not accepting bodies either in the workflow-aggregator plugin 2.0 which the current solution depends on. If the task is allowed to take a block, it allows for more logical grouping of tasks rather than just assuming a sequential progress. This should also allow the pipeline view to visualize the current progress of a particular task better than the current solution which basically just assumes the progress of the containing stage. Example of how it could look like: !dpp_twb_example.png! for the following example pipeline syntax: {{pipeline \{}} {{ agent any}} {{ options \{}} {{ ansiColor('xterm')}} {{ buildDiscarder(logRotator(numToKeepStr: '20'))}} {{ timeout(time: 30, unit: 'MINUTES')}} {{ timestamps()}} {{ }}} {{ stages \{}} {{ stage('Commit stage') \{}} {{ steps \{}} {{ task('Compile and package') \{}} {{ echo 'Building...'}} {{ sleep 2}} {{ }}{{ }}{{ }}{{ }}} {{ }} {{ task('Upload artifacts') \{}} {{ sleep 3}} {{ echo 'Successfully uploaded artifacts!'}} {{ }}{{ }}{{ }}{{ }}} {{ }}{{ }}{{ }}} {{ }}{{ }}} {{ stage('Test stage') \{}} {{ steps \{}} {{ task('Run component tests') \{}} {{ echo 'Running tests...'}} {{ sleep 4}} {{ echo 'Component tests finished!'}} {{ }}{{ }}{{ }}{{ }}} {{ }} {{ task('Run integration tests') \{}} {{ sleep 5}} {{ echo 'Integration tests finished!'}} {{ }}{{ }}{{ }}{{ }}} {{ }}{{ }}{{ }}} {{ }}{{ }}} {{ stage('Deploy') \{}} {{ steps \{}} {{ task('Deploy to UAT') \{}} {{ echo 'Deploying to UAT...'}} {{ sleep 4}} {{ echo 'Successfully deployed to UAT'}} {{ }}{{ }}{{ }}{{ }}} {{ }} {{ task('Deploy to production') \{}} {{ echo 'Deploying to production...'}} {{ sleep 4}} {{ echo 'Deployed to production!'}} {{ }}{{ }}{{ }}{{ }}} {{ }}{{ }}{{ }}} {{ }}{{ }}} {{ }}} {{}}} |
New:
The task step should be allowed to take a body (closure). Currently, the task action can be used to label tasks within a Jenkins pipeline stage. It allows more fine grained visualization of stages in the Delivery Pipeline view rather than just having one big block visualized for the entire stage. For e.g. pipeline failures, tasks allows for better information on information radiators on what went wrong without requiring users to actively find this information through the Jenkins UI. The current implementation of the task step (action) does not support bodies (closures). This was due to the stage step not accepting bodies either in the workflow-aggregator plugin 2.0 which the current solution depends on. If the task is allowed to take a block, it allows for more logical grouping of tasks rather than just assuming a sequential progress. This should also allow the pipeline view to visualize the current progress of a particular task better than the current solution which basically just assumes the progress of the containing stage. Example of how it could look like: !dpp_twb_example.png! for the following example pipeline syntax: [^pipeline_example_syntax.txt] |
Summary | Original: Improve task action by allowing closures | New: Allow task pipeline steps to take closures for improved visualization |
Resolution | New: Fixed [ 1 ] | |
Status | Original: In Progress [ 3 ] | New: Resolved [ 5 ] |
Proposed solution: https://github.com/Diabol/delivery-pipeline-plugin/pull/259