{"action":"created","issue":{"url":"https://api.github.com/repos/jenkinsci/blueocean-plugin/issues/1108","repository_url":"https://api.github.com/repos/jenkinsci/blueocean-plugin","labels_url":"https://api.github.com/repos/jenkinsci/blueocean-plugin/issues/1108/labels{/name}","comments_url":"https://api.github.com/repos/jenkinsci/blueocean-plugin/issues/1108/comments","events_url":"https://api.github.com/repos/jenkinsci/blueocean-plugin/issues/1108/events","html_url":"https://github.com/jenkinsci/blueocean-plugin/pull/1108","id":232719423,"number":1108,"title":"JENKINS-44391# Parallel stage support","user":{"login":"vivek","id":38139,"avatar_url":"https://avatars2.githubusercontent.com/u/38139?v=3","gravatar_id":"","url":"https://api.github.com/users/vivek","html_url":"https://github.com/vivek","followers_url":"https://api.github.com/users/vivek/followers","following_url":"https://api.github.com/users/vivek/following{/other_user}","gists_url":"https://api.github.com/users/vivek/gists{/gist_id}","starred_url":"https://api.github.com/users/vivek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vivek/subscriptions","organizations_url":"https://api.github.com/users/vivek/orgs","repos_url":"https://api.github.com/users/vivek/repos","events_url":"https://api.github.com/users/vivek/events{/privacy}","received_events_url":"https://api.github.com/users/vivek/received_events","type":"User","site_admin":false},"labels":[{"id":358557556,"url":"https://api.github.com/repos/jenkinsci/blueocean-plugin/labels/DO%20NOT%20MERGE","name":"DO NOT MERGE","color":"b60205","default":false},{"id":334266887,"url":"https://api.github.com/repos/jenkinsci/blueocean-plugin/labels/needs-review","name":"needs-review","color":"eb6420","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":12,"created_at":"2017-05-31T22:49:08Z","updated_at":"2017-06-12T02:33:28Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/jenkinsci/blueocean-plugin/pulls/1108","html_url":"https://github.com/jenkinsci/blueocean-plugin/pull/1108","diff_url":"https://github.com/jenkinsci/blueocean-plugin/pull/1108.diff","patch_url":"https://github.com/jenkinsci/blueocean-plugin/pull/1108.patch"},"body":"# Description\r\n\r\nSee [JENKINS-44391](https://issues.jenkins-ci.org/browse/JENKINS-44391).\r\n\r\nParallel stage visualization seems to work fine. There is one side effect upgrading to `pipeline-model-definition:1.2-beta-2`, there is extra synthetic step appears during initialization: `Set job properties`. @abayer is this intentional.\r\n\r\nThis extra step resulted in to changing couple tests which was asserting on number of expected steps.\r\n\r\nTested it by converting a pipeline script with parallel to stage parallels: https://github.com/vivek/app-store-demo/blob/parallel-stage/Jenkinsfile#L15-L41. \r\n\r\nVisualization and karaoke seems to work ok.\r\n\r\n![image](https://cloud.githubusercontent.com/assets/38139/26657292/d68dd26e-4617-11e7-8c9a-d5225b12429b.png)\r\n\r\n## Pipeline Editor\r\nShows blank screen. It probably needs to be changed to be aware of parallel stages. Looks like presence of parallel stages is tripping it. Here is the output of \r\n\r\n`http://localhost:8080/jenkins/pipeline-model-converter/toJson`\r\n\r\n```json\r\n{\r\n   \"status\" : \"ok\",\r\n   \"data\" : {\r\n      \"result\" : \"success\",\r\n      \"json\" : {\r\n         \"pipeline\" : {\r\n            \"agent\" : {\r\n               \"type\" : \"docker\",\r\n               \"arguments\" : [\r\n                  {\r\n                     \"value\" : {\r\n                        \"value\" : \"maven\",\r\n                        \"isLiteral\" : true\r\n                     },\r\n                     \"key\" : \"image\"\r\n                  }\r\n               ]\r\n            },\r\n            \"post\" : {\r\n               \"conditions\" : [\r\n                  {\r\n                     \"branch\" : {\r\n                        \"steps\" : [\r\n                           {\r\n                              \"name\" : \"junit\",\r\n                              \"arguments\" : [\r\n                                 {\r\n                                    \"value\" : {\r\n                                       \"isLiteral\" : true,\r\n                                       \"value\" : \"**/target/surefire-reports/TEST-*.xml\"\r\n                                    },\r\n                                    \"key\" : \"testResults\"\r\n                                 }\r\n                              ]\r\n                           },\r\n                           {\r\n                              \"name\" : \"archive\",\r\n                              \"arguments\" : [\r\n                                 {\r\n                                    \"value\" : {\r\n                                       \"value\" : \"**/target/*.jar\",\r\n                                       \"isLiteral\" : true\r\n                                    },\r\n                                    \"key\" : \"includes\"\r\n                                 }\r\n                              ]\r\n                           }\r\n                        ],\r\n                        \"name\" : \"default\"\r\n                     },\r\n                     \"condition\" : \"always\"\r\n                  }\r\n               ]\r\n            },\r\n            \"stages\" : [\r\n               {\r\n                  \"name\" : \"Build\",\r\n                  \"branches\" : [\r\n                     {\r\n                        \"name\" : \"default\",\r\n                        \"steps\" : [\r\n                           {\r\n                              \"arguments\" : [\r\n                                 {\r\n                                    \"value\" : {\r\n                                       \"isLiteral\" : true,\r\n                                       \"value\" : \"mvn clean source:jar package\"\r\n                                    },\r\n                                    \"key\" : \"script\"\r\n                                 }\r\n                              ],\r\n                              \"name\" : \"sh\"\r\n                           }\r\n                        ]\r\n                     }\r\n                  ]\r\n               },\r\n               {\r\n                  \"name\" : \"Browser Tests\",\r\n                  \"parallel\" : [\r\n                     {\r\n                        \"branches\" : [\r\n                           {\r\n                              \"name\" : \"default\",\r\n                              \"steps\" : [\r\n                                 {\r\n                                    \"name\" : \"sh\",\r\n                                    \"arguments\" : [\r\n                                       {\r\n                                          \"value\" : {\r\n                                             \"isLiteral\" : true,\r\n                                             \"value\" : \"echo setting up selenium environment\"\r\n                                          },\r\n                                          \"key\" : \"script\"\r\n                                       }\r\n                                    ]\r\n                                 },\r\n                                 {\r\n                                    \"arguments\" : [\r\n                                       {\r\n                                          \"value\" : {\r\n                                             \"isLiteral\" : true,\r\n                                             \"value\" : \"ping -c 5 localhost\"\r\n                                          },\r\n                                          \"key\" : \"script\"\r\n                                       }\r\n                                    ],\r\n                                    \"name\" : \"sh\"\r\n                                 }\r\n                              ]\r\n                           }\r\n                        ],\r\n                        \"name\" : \"Firefox\"\r\n                     },\r\n                     {\r\n                        \"name\" : \"Safari\",\r\n                        \"branches\" : [\r\n                           {\r\n                              \"name\" : \"default\",\r\n                              \"steps\" : [\r\n                                 {\r\n                                    \"arguments\" : [\r\n                                       {\r\n                                          \"key\" : \"script\",\r\n                                          \"value\" : {\r\n                                             \"value\" : \"echo setting up selenium environment\",\r\n                                             \"isLiteral\" : true\r\n                                          }\r\n                                       }\r\n                                    ],\r\n                                    \"name\" : \"sh\"\r\n                                 },\r\n                                 {\r\n                                    \"name\" : \"sh\",\r\n                                    \"arguments\" : [\r\n                                       {\r\n                                          \"value\" : {\r\n                                             \"isLiteral\" : true,\r\n                                             \"value\" : \"ping -c 8 localhost\"\r\n                                          },\r\n                                          \"key\" : \"script\"\r\n                                       }\r\n                                    ]\r\n                                 }\r\n                              ]\r\n                           }\r\n                        ]\r\n                     },\r\n                     {\r\n                        \"name\" : \"Chrome\",\r\n                        \"branches\" : [\r\n                           {\r\n                              \"name\" : \"default\",\r\n                              \"steps\" : [\r\n                                 {\r\n                                    \"name\" : \"sh\",\r\n                                    \"arguments\" : [\r\n                                       {\r\n                                          \"value\" : {\r\n                                             \"isLiteral\" : true,\r\n                                             \"value\" : \"echo setting up selenium environment\"\r\n                                          },\r\n                                          \"key\" : \"script\"\r\n                                       }\r\n                                    ]\r\n                                 },\r\n                                 {\r\n                                    \"name\" : \"sh\",\r\n                                    \"arguments\" : [\r\n                                       {\r\n                                          \"key\" : \"script\",\r\n                                          \"value\" : {\r\n                                             \"value\" : \"ping -c 3 localhost\",\r\n                                             \"isLiteral\" : true\r\n                                          }\r\n                                       }\r\n                                    ]\r\n                                 }\r\n                              ]\r\n                           }\r\n                        ]\r\n                     },\r\n                     {\r\n                        \"name\" : \"Internet Explorer\",\r\n                        \"branches\" : [\r\n                           {\r\n                              \"name\" : \"default\",\r\n                              \"steps\" : [\r\n                                 {\r\n                                    \"arguments\" : [\r\n                                       {\r\n                                          \"value\" : {\r\n                                             \"isLiteral\" : true,\r\n                                             \"value\" : \"echo setting up selenium environment\"\r\n                                          },\r\n                                          \"key\" : \"script\"\r\n                                       }\r\n                                    ],\r\n                                    \"name\" : \"sh\"\r\n                                 },\r\n                                 {\r\n                                    \"arguments\" : [\r\n                                       {\r\n                                          \"key\" : \"script\",\r\n                                          \"value\" : {\r\n                                             \"value\" : \"ping -c 4 localhost\",\r\n                                             \"isLiteral\" : true\r\n                                          }\r\n                                       }\r\n                                    ],\r\n                                    \"name\" : \"sh\"\r\n                                 }\r\n                              ]\r\n                           }\r\n                        ]\r\n                     }\r\n                  ]\r\n               },\r\n               {\r\n                  \"branches\" : [\r\n                     {\r\n                        \"name\" : \"default\",\r\n                        \"steps\" : [\r\n                           {\r\n                              \"arguments\" : [\r\n                                 {\r\n                                    \"key\" : \"script\",\r\n                                    \"value\" : {\r\n                                       \"isLiteral\" : true,\r\n                                       \"value\" : \"mvn findbugs:findbugs\"\r\n                                    }\r\n                                 }\r\n                              ],\r\n                              \"name\" : \"sh\"\r\n                           }\r\n                        ]\r\n                     }\r\n                  ],\r\n                  \"name\" : \"Static Analysis\"\r\n               },\r\n               {\r\n                  \"name\" : \"Deploy\",\r\n                  \"branches\" : [\r\n                     {\r\n                        \"name\" : \"default\",\r\n                        \"steps\" : [\r\n                           {\r\n                              \"arguments\" : [\r\n                                 {\r\n                                    \"key\" : \"script\",\r\n                                    \"value\" : {\r\n                                       \"isLiteral\" : true,\r\n                                       \"value\" : \"mvn source:jar package -Dmaven.test.skip\"\r\n                                    }\r\n                                 }\r\n                              ],\r\n                              \"name\" : \"sh\"\r\n                           }\r\n                        ]\r\n                     }\r\n                  ]\r\n               }\r\n            ]\r\n         }\r\n      }\r\n   }\r\n}\r\n\r\n```\r\n\r\n# Submitter checklist\r\n- [ ] Link to JIRA ticket in description, if appropriate.\r\n- [ ] Change is code complete and matches issue description\r\n- [ ] Appropriate unit or acceptance tests or explanation to why this change has no tests\r\n- [ ] Reviewer's manual test instructions provided in PR description. See Reviewer's first task below.\r\n- [ ] Ran Acceptance Test Harness against PR changes.\r\n\r\n# Reviewer checklist\r\n- [ ] Run the changes and verified the change matches the issue description\r\n- [ ] Reviewed the code\r\n- [ ] Verified that the appropriate tests have been written or valid explanation given\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/jenkinsci/blueocean-plugin/issues/comments/307677145","html_url":"https://github.com/jenkinsci/blueocean-plugin/pull/1108#issuecomment-307677145","issue_url":"https://api.github.com/repos/jenkinsci/blueocean-plugin/issues/1108","id":307677145,"user":{"login":"i386","id":50156,"avatar_url":"https://avatars1.githubusercontent.com/u/50156?v=3","gravatar_id":"","url":"https://api.github.com/users/i386","html_url":"https://github.com/i386","followers_url":"https://api.github.com/users/i386/followers","following_url":"https://api.github.com/users/i386/following{/other_user}","gists_url":"https://api.github.com/users/i386/gists{/gist_id}","starred_url":"https://api.github.com/users/i386/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/i386/subscriptions","organizations_url":"https://api.github.com/users/i386/orgs","repos_url":"https://api.github.com/users/i386/repos","events_url":"https://api.github.com/users/i386/events{/privacy}","received_events_url":"https://api.github.com/users/i386/received_events","type":"User","site_admin":false},"created_at":"2017-06-12T02:33:28Z","updated_at":"2017-06-12T02:33:28Z","body":"Thanks @vivek 🙌"}}
{"actor":{"display_login":"i386"}}