Multi-Platform matrix build with jenkins2 Pipeline

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Multi-Platform matrix build with jenkins2 Pipeline

Matt Hauck
Hello! My team is looking to move to jenkins2 and struggling a bit with how to do a multip-platform build. I'm really excited about the direction it is moving in with the pipline builds -- I implemented something like this myself (github.com/tanium/pyjenkins), but glad to see something better being built directly into the platform.

One difficulty I've run into so far is the less-than-ideal for multi-platform builds with pipelines. We have a build that needs to run in windows, linux, mac, etc. Right now we have this setup with a matrix job. The only way I can see to do this with the pipeline plugin is using `parallel` (i.e. https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md#creating-multiple-threads)

However, there is one rather large setback of doing it this way: artifacts and output get intermingled.

It is pretty crucial to us to be able to quickly and clearly tell which platform the build failed on, as well as to distinguish the artifacts from platform from the artifacts from another platform. I have the build currently running with `parallel` steps, but I find it really really difficult to find out what the build is doing either while running or after it finishes. 

Also, there does not appear to be an option to setup an older-style matrix build that uses the Jenkinsfile for its execution (for understandable reasons), so I don't even see a way to move forward incrementally until multi-platform builds have better support. 

I should also say that the matrix job is a really awesome feature of jenkins that, from a survey of other build systems I did once, is kinda unique to jenkins. Support for having the exact same build definition across that executes across multiple platforms does not really exist outside the matrix job definition in Jenkins, as far as I could tell. It would be sad to see this great feature become a second-class citizen that can't use all the cool shiny new toys. 

Are there plans to add better support for multi-platform builds / matrix jobs? Is there something I'm missing? 

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/ecf2b1f6-34bc-46fa-aa5c-ba3e3450a3d2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Multi-Platform matrix build with jenkins2 Pipeline

Matt Hauck
Clarification: "artifacts and output get intermingled" is confusing. I meant to say that standard output for all the various parallel nodes gets intermingled. Something like this:

[ windowsNode ] Doing some stuff
[ linuxNode ] Doing different stuff
[ macNode ] yet more stuff

It also seems that artifacts (whether files or test results) also get intermingled and centralized rather than kept separate in connection to the node they were built on. This point I am less clear on though.

On Monday, August 29, 2016 at 2:46:55 PM UTC-7, Matt Hauck wrote:
Hello! My team is looking to move to jenkins2 and struggling a bit with how to do a multip-platform build. I'm really excited about the direction it is moving in with the pipline builds -- I implemented something like this myself (<a href="http://github.com/tanium/pyjenkins" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fgithub.com%2Ftanium%2Fpyjenkins\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGCB-l1ILMeMn6jmloWZP-BzodVMA&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fgithub.com%2Ftanium%2Fpyjenkins\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGCB-l1ILMeMn6jmloWZP-BzodVMA&#39;;return true;">github.com/tanium/pyjenkins), but glad to see something better being built directly into the platform.

One difficulty I've run into so far is the less-than-ideal for multi-platform builds with pipelines. We have a build that needs to run in windows, linux, mac, etc. Right now we have this setup with a matrix job. The only way I can see to do this with the pipeline plugin is using `parallel` (i.e. <a href="https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md#creating-multiple-threads" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fpipeline-plugin%2Fblob%2Fmaster%2FTUTORIAL.md%23creating-multiple-threads\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHcrwK2Dqhojhn1hBF022vSc5Q5hQ&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fpipeline-plugin%2Fblob%2Fmaster%2FTUTORIAL.md%23creating-multiple-threads\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHcrwK2Dqhojhn1hBF022vSc5Q5hQ&#39;;return true;">https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md#creating-multiple-threads)

However, there is one rather large setback of doing it this way: artifacts and output get intermingled.

It is pretty crucial to us to be able to quickly and clearly tell which platform the build failed on, as well as to distinguish the artifacts from platform from the artifacts from another platform. I have the build currently running with `parallel` steps, but I find it really really difficult to find out what the build is doing either while running or after it finishes. 

Also, there does not appear to be an option to setup an older-style matrix build that uses the Jenkinsfile for its execution (for understandable reasons), so I don't even see a way to move forward incrementally until multi-platform builds have better support. 

I should also say that the matrix job is a really awesome feature of jenkins that, from a survey of other build systems I did once, is kinda unique to jenkins. Support for having the exact same build definition across that executes across multiple platforms does not really exist outside the matrix job definition in Jenkins, as far as I could tell. It would be sad to see this great feature become a second-class citizen that can't use all the cool shiny new toys. 

Are there plans to add better support for multi-platform builds / matrix jobs? Is there something I'm missing? 

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/f051e526-f0e2-4cca-8278-b4b22a2ba5e4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Multi-Platform matrix build with jenkins2 Pipeline

Matt Hauck
bump.

On Monday, August 29, 2016 at 2:59:16 PM UTC-7, Matt Hauck wrote:
Clarification: "artifacts and output get intermingled" is confusing. I meant to say that standard output for all the various parallel nodes gets intermingled. Something like this:

[ windowsNode ] Doing some stuff
[ linuxNode ] Doing different stuff
[ macNode ] yet more stuff

It also seems that artifacts (whether files or test results) also get intermingled and centralized rather than kept separate in connection to the node they were built on. This point I am less clear on though.

On Monday, August 29, 2016 at 2:46:55 PM UTC-7, Matt Hauck wrote:
Hello! My team is looking to move to jenkins2 and struggling a bit with how to do a multip-platform build. I'm really excited about the direction it is moving in with the pipline builds -- I implemented something like this myself (<a href="http://github.com/tanium/pyjenkins" rel="nofollow" target="_blank" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fgithub.com%2Ftanium%2Fpyjenkins\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGCB-l1ILMeMn6jmloWZP-BzodVMA&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fgithub.com%2Ftanium%2Fpyjenkins\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGCB-l1ILMeMn6jmloWZP-BzodVMA&#39;;return true;">github.com/tanium/pyjenkins), but glad to see something better being built directly into the platform.

One difficulty I've run into so far is the less-than-ideal for multi-platform builds with pipelines. We have a build that needs to run in windows, linux, mac, etc. Right now we have this setup with a matrix job. The only way I can see to do this with the pipeline plugin is using `parallel` (i.e. <a href="https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md#creating-multiple-threads" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fpipeline-plugin%2Fblob%2Fmaster%2FTUTORIAL.md%23creating-multiple-threads\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHcrwK2Dqhojhn1hBF022vSc5Q5hQ&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fpipeline-plugin%2Fblob%2Fmaster%2FTUTORIAL.md%23creating-multiple-threads\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHcrwK2Dqhojhn1hBF022vSc5Q5hQ&#39;;return true;">https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md#creating-multiple-threads)

However, there is one rather large setback of doing it this way: artifacts and output get intermingled.

It is pretty crucial to us to be able to quickly and clearly tell which platform the build failed on, as well as to distinguish the artifacts from platform from the artifacts from another platform. I have the build currently running with `parallel` steps, but I find it really really difficult to find out what the build is doing either while running or after it finishes. 

Also, there does not appear to be an option to setup an older-style matrix build that uses the Jenkinsfile for its execution (for understandable reasons), so I don't even see a way to move forward incrementally until multi-platform builds have better support. 

I should also say that the matrix job is a really awesome feature of jenkins that, from a survey of other build systems I did once, is kinda unique to jenkins. Support for having the exact same build definition across that executes across multiple platforms does not really exist outside the matrix job definition in Jenkins, as far as I could tell. It would be sad to see this great feature become a second-class citizen that can't use all the cool shiny new toys. 

Are there plans to add better support for multi-platform builds / matrix jobs? Is there something I'm missing? 

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/590bc49a-1f19-467c-8246-80b8a09ef8ec%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Multi-Platform matrix build with jenkins2 Pipeline

martinnyflott
In reply to this post by Matt Hauck
I'm also in the same boat as you. Have you found a solution to this yet?
The Blue Ocean UI does mitigate the problem slightly, but I still find it difficult to figure out what is going on. We use a large set of plugins that does not show up in Blue Ocean (test and coverage graphs, console parsing, etc.), so I would prefer to stick with the old UI for now. However, I don't see any clear separation of the platforms unless I go through the pipeline steps themselves. Another major challenge I'm having is how to generate email reports. For matrix projects, we generate a report summarizing errors, warnings, test results, etc. per platform. As far as I see it, even the test results gets aggregated from all the platforms, making it impossible to figure out at what node the test failed. This is the pipeline I am currently working on: https://github.com/martinmine/rootspi/blob/pipelines/jenkins/pipeline/continuous.groovy 
I'm also having the same feeling as you that there is something I'm missing. I see many benefits of using pipelines (version control of the build logic, generating artifacts, the dynamic build environment introduced by scripting the pipeline, etc), but this is a major issue we need to get across to properly utilize pipelines in our build infrastructure.


On Monday, August 29, 2016 at 11:46:55 PM UTC+2, Matt Hauck wrote:
Hello! My team is looking to move to jenkins2 and struggling a bit with how to do a multip-platform build. I'm really excited about the direction it is moving in with the pipline builds -- I implemented something like this myself (<a href="http://github.com/tanium/pyjenkins" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fgithub.com%2Ftanium%2Fpyjenkins\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGCB-l1ILMeMn6jmloWZP-BzodVMA&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fgithub.com%2Ftanium%2Fpyjenkins\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGCB-l1ILMeMn6jmloWZP-BzodVMA&#39;;return true;">github.com/tanium/pyjenkins), but glad to see something better being built directly into the platform.

One difficulty I've run into so far is the less-than-ideal for multi-platform builds with pipelines. We have a build that needs to run in windows, linux, mac, etc. Right now we have this setup with a matrix job. The only way I can see to do this with the pipeline plugin is using `parallel` (i.e. <a href="https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md#creating-multiple-threads" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fpipeline-plugin%2Fblob%2Fmaster%2FTUTORIAL.md%23creating-multiple-threads\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHcrwK2Dqhojhn1hBF022vSc5Q5hQ&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fpipeline-plugin%2Fblob%2Fmaster%2FTUTORIAL.md%23creating-multiple-threads\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHcrwK2Dqhojhn1hBF022vSc5Q5hQ&#39;;return true;">https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md#creating-multiple-threads)

However, there is one rather large setback of doing it this way: artifacts and output get intermingled.

It is pretty crucial to us to be able to quickly and clearly tell which platform the build failed on, as well as to distinguish the artifacts from platform from the artifacts from another platform. I have the build currently running with `parallel` steps, but I find it really really difficult to find out what the build is doing either while running or after it finishes. 

Also, there does not appear to be an option to setup an older-style matrix build that uses the Jenkinsfile for its execution (for understandable reasons), so I don't even see a way to move forward incrementally until multi-platform builds have better support. 

I should also say that the matrix job is a really awesome feature of jenkins that, from a survey of other build systems I did once, is kinda unique to jenkins. Support for having the exact same build definition across that executes across multiple platforms does not really exist outside the matrix job definition in Jenkins, as far as I could tell. It would be sad to see this great feature become a second-class citizen that can't use all the cool shiny new toys. 

Are there plans to add better support for multi-platform builds / matrix jobs? Is there something I'm missing? 

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/06da6375-1697-48eb-a813-4bee345916a5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Multi-Platform matrix build with jenkins2 Pipeline

Mark Waite-2
I'm not sure how you would present a separation of logs without using stages to represent the agents in your multi-configuration project.

I thought that the way to see the separation of those logs was to have each parallel get its own stage declaration and then I can view the results for a specific stage from the "logs" pop-up that appears with each of the stages.  For example, refer to https://ci.jenkins.io/job/Plugins/job/git-client-plugin/job/master/ to see how it presents the separation of Windows and Linux stages, and shows the console output for those stages.

Test results are aggregated at the top level (like https://ci.jenkins.io/job/Plugins/job/git-client-plugin/job/master/73/testReport/) and do not seem to have a way to showing the results by stage.  It would be a nice enhancement to have test results from a stage also visible in that stage in the old UI, but I'm not sure that would fit with the UI that is included in the stage "logs".

Isn't the better investment to put effort into making those popular plugins fit well within the Blue Ocean UI?

Mark Waite

On Thu, Mar 30, 2017 at 4:29 AM <[hidden email]> wrote:
I'm also in the same boat as you. Have you found a solution to this yet?
The Blue Ocean UI does mitigate the problem slightly, but I still find it difficult to figure out what is going on. We use a large set of plugins that does not show up in Blue Ocean (test and coverage graphs, console parsing, etc.), so I would prefer to stick with the old UI for now. However, I don't see any clear separation of the platforms unless I go through the pipeline steps themselves. Another major challenge I'm having is how to generate email reports. For matrix projects, we generate a report summarizing errors, warnings, test results, etc. per platform. As far as I see it, even the test results gets aggregated from all the platforms, making it impossible to figure out at what node the test failed. This is the pipeline I am currently working on: https://github.com/martinmine/rootspi/blob/pipelines/jenkins/pipeline/continuous.groovy 
I'm also having the same feeling as you that there is something I'm missing. I see many benefits of using pipelines (version control of the build logic, generating artifacts, the dynamic build environment introduced by scripting the pipeline, etc), but this is a major issue we need to get across to properly utilize pipelines in our build infrastructure.


On Monday, August 29, 2016 at 11:46:55 PM UTC+2, Matt Hauck wrote:
Hello! My team is looking to move to jenkins2 and struggling a bit with how to do a multip-platform build. I'm really excited about the direction it is moving in with the pipline builds -- I implemented something like this myself (github.com/tanium/pyjenkins), but glad to see something better being built directly into the platform.

One difficulty I've run into so far is the less-than-ideal for multi-platform builds with pipelines. We have a build that needs to run in windows, linux, mac, etc. Right now we have this setup with a matrix job. The only way I can see to do this with the pipeline plugin is using `parallel` (i.e. https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md#creating-multiple-threads)

However, there is one rather large setback of doing it this way: artifacts and output get intermingled.

It is pretty crucial to us to be able to quickly and clearly tell which platform the build failed on, as well as to distinguish the artifacts from platform from the artifacts from another platform. I have the build currently running with `parallel` steps, but I find it really really difficult to find out what the build is doing either while running or after it finishes. 

Also, there does not appear to be an option to setup an older-style matrix build that uses the Jenkinsfile for its execution (for understandable reasons), so I don't even see a way to move forward incrementally until multi-platform builds have better support. 

I should also say that the matrix job is a really awesome feature of jenkins that, from a survey of other build systems I did once, is kinda unique to jenkins. Support for having the exact same build definition across that executes across multiple platforms does not really exist outside the matrix job definition in Jenkins, as far as I could tell. It would be sad to see this great feature become a second-class citizen that can't use all the cool shiny new toys. 

Are there plans to add better support for multi-platform builds / matrix jobs? Is there something I'm missing? 

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/06da6375-1697-48eb-a813-4bee345916a5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CAO49JtHuT5PGP%3Df5NgoTa5%2BR%2Be6ex3HywTEY%2BB_mwLe%2BKztyBw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Multi-Platform matrix build with jenkins2 Pipeline

martinnyflott
I'm aware you can separate them by using stages, and I wasn't arguing against using them. However, we rely on parser plugins such as Log Parser Plugin to parse the logs. This plugin does only see the log as one aggregated chunk, and as with the tests there are no way of separating them from each other. 

On Thursday, March 30, 2017 at 3:12:25 PM UTC+2, Mark Waite wrote:
I'm not sure how you would present a separation of logs without using stages to represent the agents in your multi-configuration project.

I thought that the way to see the separation of those logs was to have each parallel get its own stage declaration and then I can view the results for a specific stage from the "logs" pop-up that appears with each of the stages.  For example, refer to <a href="https://ci.jenkins.io/job/Plugins/job/git-client-plugin/job/master/" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fci.jenkins.io%2Fjob%2FPlugins%2Fjob%2Fgit-client-plugin%2Fjob%2Fmaster%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHTU-2f46VA0T8RDFTQMBYhf6Uixw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fci.jenkins.io%2Fjob%2FPlugins%2Fjob%2Fgit-client-plugin%2Fjob%2Fmaster%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHTU-2f46VA0T8RDFTQMBYhf6Uixw&#39;;return true;">https://ci.jenkins.io/job/Plugins/job/git-client-plugin/job/master/ to see how it presents the separation of Windows and Linux stages, and shows the console output for those stages.

Test results are aggregated at the top level (like <a href="https://ci.jenkins.io/job/Plugins/job/git-client-plugin/job/master/73/testReport/" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fci.jenkins.io%2Fjob%2FPlugins%2Fjob%2Fgit-client-plugin%2Fjob%2Fmaster%2F73%2FtestReport%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEAi8YqMSn7f7iVtBFlt5XbZ-s1Lw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fci.jenkins.io%2Fjob%2FPlugins%2Fjob%2Fgit-client-plugin%2Fjob%2Fmaster%2F73%2FtestReport%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEAi8YqMSn7f7iVtBFlt5XbZ-s1Lw&#39;;return true;">https://ci.jenkins.io/job/Plugins/job/git-client-plugin/job/master/73/testReport/) and do not seem to have a way to showing the results by stage.  It would be a nice enhancement to have test results from a stage also visible in that stage in the old UI, but I'm not sure that would fit with the UI that is included in the stage "logs".

Isn't the better investment to put effort into making those popular plugins fit well within the Blue Ocean UI?

Mark Waite

On Thu, Mar 30, 2017 at 4:29 AM <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="teH7g_E0CwAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">martin...@...> wrote:
I'm also in the same boat as you. Have you found a solution to this yet?
The Blue Ocean UI does mitigate the problem slightly, but I still find it difficult to figure out what is going on. We use a large set of plugins that does not show up in Blue Ocean (test and coverage graphs, console parsing, etc.), so I would prefer to stick with the old UI for now. However, I don't see any clear separation of the platforms unless I go through the pipeline steps themselves. Another major challenge I'm having is how to generate email reports. For matrix projects, we generate a report summarizing errors, warnings, test results, etc. per platform. As far as I see it, even the test results gets aggregated from all the platforms, making it impossible to figure out at what node the test failed. This is the pipeline I am currently working on: <a href="https://github.com/martinmine/rootspi/blob/pipelines/jenkins/pipeline/continuous.groovy" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmartinmine%2Frootspi%2Fblob%2Fpipelines%2Fjenkins%2Fpipeline%2Fcontinuous.groovy\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFJydscqszjTcl3O0lc2rnWNcTKUg&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmartinmine%2Frootspi%2Fblob%2Fpipelines%2Fjenkins%2Fpipeline%2Fcontinuous.groovy\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFJydscqszjTcl3O0lc2rnWNcTKUg&#39;;return true;">https://github.com/martinmine/rootspi/blob/pipelines/jenkins/pipeline/continuous.groovy 
I'm also having the same feeling as you that there is something I'm missing. I see many benefits of using pipelines (version control of the build logic, generating artifacts, the dynamic build environment introduced by scripting the pipeline, etc), but this is a major issue we need to get across to properly utilize pipelines in our build infrastructure.


On Monday, August 29, 2016 at 11:46:55 PM UTC+2, Matt Hauck wrote:
Hello! My team is looking to move to jenkins2 and struggling a bit with how to do a multip-platform build. I'm really excited about the direction it is moving in with the pipline builds -- I implemented something like this myself (<a href="http://github.com/tanium/pyjenkins" rel="nofollow" target="_blank" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fgithub.com%2Ftanium%2Fpyjenkins\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGCB-l1ILMeMn6jmloWZP-BzodVMA&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fgithub.com%2Ftanium%2Fpyjenkins\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGCB-l1ILMeMn6jmloWZP-BzodVMA&#39;;return true;">github.com/tanium/pyjenkins), but glad to see something better being built directly into the platform.

One difficulty I've run into so far is the less-than-ideal for multi-platform builds with pipelines. We have a build that needs to run in windows, linux, mac, etc. Right now we have this setup with a matrix job. The only way I can see to do this with the pipeline plugin is using `parallel` (i.e. <a href="https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md#creating-multiple-threads" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fpipeline-plugin%2Fblob%2Fmaster%2FTUTORIAL.md%23creating-multiple-threads\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHcrwK2Dqhojhn1hBF022vSc5Q5hQ&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fpipeline-plugin%2Fblob%2Fmaster%2FTUTORIAL.md%23creating-multiple-threads\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHcrwK2Dqhojhn1hBF022vSc5Q5hQ&#39;;return true;">https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md#creating-multiple-threads)

However, there is one rather large setback of doing it this way: artifacts and output get intermingled.

It is pretty crucial to us to be able to quickly and clearly tell which platform the build failed on, as well as to distinguish the artifacts from platform from the artifacts from another platform. I have the build currently running with `parallel` steps, but I find it really really difficult to find out what the build is doing either while running or after it finishes. 

Also, there does not appear to be an option to setup an older-style matrix build that uses the Jenkinsfile for its execution (for understandable reasons), so I don't even see a way to move forward incrementally until multi-platform builds have better support. 

I should also say that the matrix job is a really awesome feature of jenkins that, from a survey of other build systems I did once, is kinda unique to jenkins. Support for having the exact same build definition across that executes across multiple platforms does not really exist outside the matrix job definition in Jenkins, as far as I could tell. It would be sad to see this great feature become a second-class citizen that can't use all the cool shiny new toys. 

Are there plans to add better support for multi-platform builds / matrix jobs? Is there something I'm missing? 

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="teH7g_E0CwAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">jenkinsci-use...@googlegroups.com.
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/jenkinsci-users/06da6375-1697-48eb-a813-4bee345916a5%40googlegroups.com?utm_medium=email&amp;utm_source=footer" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://groups.google.com/d/msgid/jenkinsci-users/06da6375-1697-48eb-a813-4bee345916a5%40googlegroups.com?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/msgid/jenkinsci-users/06da6375-1697-48eb-a813-4bee345916a5%40googlegroups.com?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com/d/msgid/jenkinsci-users/06da6375-1697-48eb-a813-4bee345916a5%40googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/0d1bf2ed-c795-4909-820e-57a3c47cb753%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Multi-Platform matrix build with jenkins2 Pipeline

Matt Hauck
Nope, no solution to it yet. Glad to hear others are struggling with this too. Our solution so far as to not use Pipeline job configurations, sadly, but stick to good old Matrix job configurations together with tanium/pyjenkins for "configuration as code".

If you had separate stages for each platform, then you would lose concurrency of your multip-platform build, right? That would be a non-starter, imo. 


On Tuesday, April 4, 2017 at 1:23:46 AM UTC-7, [hidden email] wrote:
I'm aware you can separate them by using stages, and I wasn't arguing against using them. However, we rely on parser plugins such as Log Parser Plugin to parse the logs. This plugin does only see the log as one aggregated chunk, and as with the tests there are no way of separating them from each other. 

On Thursday, March 30, 2017 at 3:12:25 PM UTC+2, Mark Waite wrote:
I'm not sure how you would present a separation of logs without using stages to represent the agents in your multi-configuration project.

I thought that the way to see the separation of those logs was to have each parallel get its own stage declaration and then I can view the results for a specific stage from the "logs" pop-up that appears with each of the stages.  For example, refer to <a href="https://ci.jenkins.io/job/Plugins/job/git-client-plugin/job/master/" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fci.jenkins.io%2Fjob%2FPlugins%2Fjob%2Fgit-client-plugin%2Fjob%2Fmaster%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHTU-2f46VA0T8RDFTQMBYhf6Uixw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fci.jenkins.io%2Fjob%2FPlugins%2Fjob%2Fgit-client-plugin%2Fjob%2Fmaster%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHTU-2f46VA0T8RDFTQMBYhf6Uixw&#39;;return true;">https://ci.jenkins.io/job/Plugins/job/git-client-plugin/job/master/ to see how it presents the separation of Windows and Linux stages, and shows the console output for those stages.

Test results are aggregated at the top level (like <a href="https://ci.jenkins.io/job/Plugins/job/git-client-plugin/job/master/73/testReport/" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fci.jenkins.io%2Fjob%2FPlugins%2Fjob%2Fgit-client-plugin%2Fjob%2Fmaster%2F73%2FtestReport%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEAi8YqMSn7f7iVtBFlt5XbZ-s1Lw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fci.jenkins.io%2Fjob%2FPlugins%2Fjob%2Fgit-client-plugin%2Fjob%2Fmaster%2F73%2FtestReport%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEAi8YqMSn7f7iVtBFlt5XbZ-s1Lw&#39;;return true;">https://ci.jenkins.io/job/Plugins/job/git-client-plugin/job/master/73/testReport/) and do not seem to have a way to showing the results by stage.  It would be a nice enhancement to have test results from a stage also visible in that stage in the old UI, but I'm not sure that would fit with the UI that is included in the stage "logs".

Isn't the better investment to put effort into making those popular plugins fit well within the Blue Ocean UI?

Mark Waite

On Thu, Mar 30, 2017 at 4:29 AM <[hidden email]> wrote:
I'm also in the same boat as you. Have you found a solution to this yet?
The Blue Ocean UI does mitigate the problem slightly, but I still find it difficult to figure out what is going on. We use a large set of plugins that does not show up in Blue Ocean (test and coverage graphs, console parsing, etc.), so I would prefer to stick with the old UI for now. However, I don't see any clear separation of the platforms unless I go through the pipeline steps themselves. Another major challenge I'm having is how to generate email reports. For matrix projects, we generate a report summarizing errors, warnings, test results, etc. per platform. As far as I see it, even the test results gets aggregated from all the platforms, making it impossible to figure out at what node the test failed. This is the pipeline I am currently working on: <a href="https://github.com/martinmine/rootspi/blob/pipelines/jenkins/pipeline/continuous.groovy" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmartinmine%2Frootspi%2Fblob%2Fpipelines%2Fjenkins%2Fpipeline%2Fcontinuous.groovy\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFJydscqszjTcl3O0lc2rnWNcTKUg&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmartinmine%2Frootspi%2Fblob%2Fpipelines%2Fjenkins%2Fpipeline%2Fcontinuous.groovy\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFJydscqszjTcl3O0lc2rnWNcTKUg&#39;;return true;">https://github.com/martinmine/rootspi/blob/pipelines/jenkins/pipeline/continuous.groovy 
I'm also having the same feeling as you that there is something I'm missing. I see many benefits of using pipelines (version control of the build logic, generating artifacts, the dynamic build environment introduced by scripting the pipeline, etc), but this is a major issue we need to get across to properly utilize pipelines in our build infrastructure.


On Monday, August 29, 2016 at 11:46:55 PM UTC+2, Matt Hauck wrote:
Hello! My team is looking to move to jenkins2 and struggling a bit with how to do a multip-platform build. I'm really excited about the direction it is moving in with the pipline builds -- I implemented something like this myself (<a href="http://github.com/tanium/pyjenkins" rel="nofollow" target="_blank" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fgithub.com%2Ftanium%2Fpyjenkins\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGCB-l1ILMeMn6jmloWZP-BzodVMA&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fgithub.com%2Ftanium%2Fpyjenkins\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGCB-l1ILMeMn6jmloWZP-BzodVMA&#39;;return true;">github.com/tanium/pyjenkins), but glad to see something better being built directly into the platform.

One difficulty I've run into so far is the less-than-ideal for multi-platform builds with pipelines. We have a build that needs to run in windows, linux, mac, etc. Right now we have this setup with a matrix job. The only way I can see to do this with the pipeline plugin is using `parallel` (i.e. <a href="https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md#creating-multiple-threads" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fpipeline-plugin%2Fblob%2Fmaster%2FTUTORIAL.md%23creating-multiple-threads\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHcrwK2Dqhojhn1hBF022vSc5Q5hQ&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fpipeline-plugin%2Fblob%2Fmaster%2FTUTORIAL.md%23creating-multiple-threads\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHcrwK2Dqhojhn1hBF022vSc5Q5hQ&#39;;return true;">https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md#creating-multiple-threads)

However, there is one rather large setback of doing it this way: artifacts and output get intermingled.

It is pretty crucial to us to be able to quickly and clearly tell which platform the build failed on, as well as to distinguish the artifacts from platform from the artifacts from another platform. I have the build currently running with `parallel` steps, but I find it really really difficult to find out what the build is doing either while running or after it finishes. 

Also, there does not appear to be an option to setup an older-style matrix build that uses the Jenkinsfile for its execution (for understandable reasons), so I don't even see a way to move forward incrementally until multi-platform builds have better support. 

I should also say that the matrix job is a really awesome feature of jenkins that, from a survey of other build systems I did once, is kinda unique to jenkins. Support for having the exact same build definition across that executes across multiple platforms does not really exist outside the matrix job definition in Jenkins, as far as I could tell. It would be sad to see this great feature become a second-class citizen that can't use all the cool shiny new toys. 

Are there plans to add better support for multi-platform builds / matrix jobs? Is there something I'm missing? 

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-use...@googlegroups.com.
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/jenkinsci-users/06da6375-1697-48eb-a813-4bee345916a5%40googlegroups.com?utm_medium=email&amp;utm_source=footer" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/d/msgid/jenkinsci-users/06da6375-1697-48eb-a813-4bee345916a5%40googlegroups.com?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/msgid/jenkinsci-users/06da6375-1697-48eb-a813-4bee345916a5%40googlegroups.com?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com/d/msgid/jenkinsci-users/06da6375-1697-48eb-a813-4bee345916a5%40googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/a5adb2f2-e0bb-445f-848b-1583bd9bef9f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Multi-Platform matrix build with jenkins2 Pipeline

Matt Hauck
By the way, looks like the new "Blue Ocean" UI pretty much solves the issue I had with this. Looks like there is everything we need to move forward with multi-platform pipline builds. yay! 


On Tuesday, April 4, 2017 at 12:46:05 PM UTC-7, Matt Hauck wrote:
Nope, no solution to it yet. Glad to hear others are struggling with this too. Our solution so far as to not use Pipeline job configurations, sadly, but stick to good old Matrix job configurations together with <a href="https://github.com/tanium/pyjenkins" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Ftanium%2Fpyjenkins\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFIfdMq5wiYmrzE9kH81QakgboRFg&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Ftanium%2Fpyjenkins\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFIfdMq5wiYmrzE9kH81QakgboRFg&#39;;return true;">tanium/pyjenkins for "configuration as code".

If you had separate stages for each platform, then you would lose concurrency of your multip-platform build, right? That would be a non-starter, imo. 


On Tuesday, April 4, 2017 at 1:23:46 AM UTC-7, [hidden email] wrote:
I'm aware you can separate them by using stages, and I wasn't arguing against using them. However, we rely on parser plugins such as Log Parser Plugin to parse the logs. This plugin does only see the log as one aggregated chunk, and as with the tests there are no way of separating them from each other. 

On Thursday, March 30, 2017 at 3:12:25 PM UTC+2, Mark Waite wrote:
I'm not sure how you would present a separation of logs without using stages to represent the agents in your multi-configuration project.

I thought that the way to see the separation of those logs was to have each parallel get its own stage declaration and then I can view the results for a specific stage from the "logs" pop-up that appears with each of the stages.  For example, refer to <a href="https://ci.jenkins.io/job/Plugins/job/git-client-plugin/job/master/" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fci.jenkins.io%2Fjob%2FPlugins%2Fjob%2Fgit-client-plugin%2Fjob%2Fmaster%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHTU-2f46VA0T8RDFTQMBYhf6Uixw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fci.jenkins.io%2Fjob%2FPlugins%2Fjob%2Fgit-client-plugin%2Fjob%2Fmaster%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHTU-2f46VA0T8RDFTQMBYhf6Uixw&#39;;return true;">https://ci.jenkins.io/job/Plugins/job/git-client-plugin/job/master/ to see how it presents the separation of Windows and Linux stages, and shows the console output for those stages.

Test results are aggregated at the top level (like <a href="https://ci.jenkins.io/job/Plugins/job/git-client-plugin/job/master/73/testReport/" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fci.jenkins.io%2Fjob%2FPlugins%2Fjob%2Fgit-client-plugin%2Fjob%2Fmaster%2F73%2FtestReport%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEAi8YqMSn7f7iVtBFlt5XbZ-s1Lw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fci.jenkins.io%2Fjob%2FPlugins%2Fjob%2Fgit-client-plugin%2Fjob%2Fmaster%2F73%2FtestReport%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEAi8YqMSn7f7iVtBFlt5XbZ-s1Lw&#39;;return true;">https://ci.jenkins.io/job/Plugins/job/git-client-plugin/job/master/73/testReport/) and do not seem to have a way to showing the results by stage.  It would be a nice enhancement to have test results from a stage also visible in that stage in the old UI, but I'm not sure that would fit with the UI that is included in the stage "logs".

Isn't the better investment to put effort into making those popular plugins fit well within the Blue Ocean UI?

Mark Waite

On Thu, Mar 30, 2017 at 4:29 AM <[hidden email]> wrote:
I'm also in the same boat as you. Have you found a solution to this yet?
The Blue Ocean UI does mitigate the problem slightly, but I still find it difficult to figure out what is going on. We use a large set of plugins that does not show up in Blue Ocean (test and coverage graphs, console parsing, etc.), so I would prefer to stick with the old UI for now. However, I don't see any clear separation of the platforms unless I go through the pipeline steps themselves. Another major challenge I'm having is how to generate email reports. For matrix projects, we generate a report summarizing errors, warnings, test results, etc. per platform. As far as I see it, even the test results gets aggregated from all the platforms, making it impossible to figure out at what node the test failed. This is the pipeline I am currently working on: <a href="https://github.com/martinmine/rootspi/blob/pipelines/jenkins/pipeline/continuous.groovy" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmartinmine%2Frootspi%2Fblob%2Fpipelines%2Fjenkins%2Fpipeline%2Fcontinuous.groovy\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFJydscqszjTcl3O0lc2rnWNcTKUg&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmartinmine%2Frootspi%2Fblob%2Fpipelines%2Fjenkins%2Fpipeline%2Fcontinuous.groovy\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFJydscqszjTcl3O0lc2rnWNcTKUg&#39;;return true;">https://github.com/martinmine/rootspi/blob/pipelines/jenkins/pipeline/continuous.groovy 
I'm also having the same feeling as you that there is something I'm missing. I see many benefits of using pipelines (version control of the build logic, generating artifacts, the dynamic build environment introduced by scripting the pipeline, etc), but this is a major issue we need to get across to properly utilize pipelines in our build infrastructure.


On Monday, August 29, 2016 at 11:46:55 PM UTC+2, Matt Hauck wrote:
Hello! My team is looking to move to jenkins2 and struggling a bit with how to do a multip-platform build. I'm really excited about the direction it is moving in with the pipline builds -- I implemented something like this myself (<a href="http://github.com/tanium/pyjenkins" rel="nofollow" target="_blank" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fgithub.com%2Ftanium%2Fpyjenkins\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGCB-l1ILMeMn6jmloWZP-BzodVMA&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fgithub.com%2Ftanium%2Fpyjenkins\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGCB-l1ILMeMn6jmloWZP-BzodVMA&#39;;return true;">github.com/tanium/pyjenkins), but glad to see something better being built directly into the platform.

One difficulty I've run into so far is the less-than-ideal for multi-platform builds with pipelines. We have a build that needs to run in windows, linux, mac, etc. Right now we have this setup with a matrix job. The only way I can see to do this with the pipeline plugin is using `parallel` (i.e. <a href="https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md#creating-multiple-threads" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fpipeline-plugin%2Fblob%2Fmaster%2FTUTORIAL.md%23creating-multiple-threads\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHcrwK2Dqhojhn1hBF022vSc5Q5hQ&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fpipeline-plugin%2Fblob%2Fmaster%2FTUTORIAL.md%23creating-multiple-threads\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHcrwK2Dqhojhn1hBF022vSc5Q5hQ&#39;;return true;">https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md#creating-multiple-threads)

However, there is one rather large setback of doing it this way: artifacts and output get intermingled.

It is pretty crucial to us to be able to quickly and clearly tell which platform the build failed on, as well as to distinguish the artifacts from platform from the artifacts from another platform. I have the build currently running with `parallel` steps, but I find it really really difficult to find out what the build is doing either while running or after it finishes. 

Also, there does not appear to be an option to setup an older-style matrix build that uses the Jenkinsfile for its execution (for understandable reasons), so I don't even see a way to move forward incrementally until multi-platform builds have better support. 

I should also say that the matrix job is a really awesome feature of jenkins that, from a survey of other build systems I did once, is kinda unique to jenkins. Support for having the exact same build definition across that executes across multiple platforms does not really exist outside the matrix job definition in Jenkins, as far as I could tell. It would be sad to see this great feature become a second-class citizen that can't use all the cool shiny new toys. 

Are there plans to add better support for multi-platform builds / matrix jobs? Is there something I'm missing? 

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-use...@googlegroups.com.
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/jenkinsci-users/06da6375-1697-48eb-a813-4bee345916a5%40googlegroups.com?utm_medium=email&amp;utm_source=footer" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/d/msgid/jenkinsci-users/06da6375-1697-48eb-a813-4bee345916a5%40googlegroups.com?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/msgid/jenkinsci-users/06da6375-1697-48eb-a813-4bee345916a5%40googlegroups.com?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com/d/msgid/jenkinsci-users/06da6375-1697-48eb-a813-4bee345916a5%40googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/243d3388-78b9-4cf5-afb2-d3da4206bfc6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Loading...