'inheritance-plugin' vs. matrix jobs

186 views
Skip to first unread message

Łukasz Kurek

unread,
May 19, 2015, 4:07:26 AM5/19/15
to jenkins...@googlegroups.com
Hello all,

It seems for me that Jenkins 'inheritance-plugin' does not support
matrix jobs ("Multi-configuration projects"). But maybe I'm missing
something. Can anyone confirm that?

--
Wszebor

Jacek Tomaka

unread,
May 19, 2015, 6:34:22 AM5/19/15
to jenkins...@googlegroups.com, Łukasz Kurek
Łukasz,
I am not sure what you want to achieve and i am not the expert on matrix jobs but i believe you might want to have a look at "mating" in inheritance project.

But afaik you cannot mix inheritance and matrix type of jobs.

--End of answer to question.

Mating allows you to configure classes of projects, let's say class A(with projects A1, A2 belonging to it) and B (with B1, B2) and then you can generate a matrix of projects :
A1B1, A1B2, A2B1, A2B2. This works in a way that it generates a transient projects which inherit from their parents, so A1B1 inherits from A1 and B1.

You can also configure compounds. This allows to define some parameters on project A1 and B1. But even the author admits that it is too inflexible for broader use.

But it has some cool features because you can have multiple children of the same parent if you specify variance.

I am working to make it a bit more flexible so that you are able to:
1. Configure assigned label, to be able to specify nodes a compound will run on.
2. Change priorities of parameters, etc between two parents...
3. Update projects.
4. Fixing "Full build flow" to get the view of the fully derived job as seen by Jenkins.
The repository with this changes is here: https://github.com/J-cztery/jenkins-inheritance-plugin

The problem with that is that the original maintainer seems dormant and does not respond do emails, so i do not know if i am going towards the right direction. At least I hope it would work for our project.

Our project has multiple branches we work on. Each branch has pretty much the same job configurations as previous(we build 4 msvc variances on Windows, a few jobs on Linux, OSX, iOS and for Android). It is probably around 10-20 projects in single branch. We build the projects on ~10 slaves. Branching is a headache currently because it requires copying so many projects and changing parameters in each of them.

So what i want to achieve is to configure a class of project for a branch, that would define a few parameters that are specific for this branch and "mate" it with 10 other projects that would contain configuration for Windows, Linux, etc...

Then branching a project would consist of copying the branch project, changing parameters on it, and the rest would happen automatically.

But maybe I could achieve this using matrix projects? What are you doing to solve this kind of problems? Does matrix allow to configure on which node will a job run? Or set any other parameter?

Regards.
Jacek Tomaka

Użytkownik "Łukasz Kurek" <wsz...@parasoft.com> napisał(a):
> Temat: 'inheritance-plugin' vs. matrix jobs
> Data: 2015-05-19 10:07
> Nadawca: "Łukasz Kurek" <wsz...@parasoft.com>
> Adresat: jenkins...@googlegroups.com;
> --
> 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 https://groups.google.com/d/msgid/jenkinsci-users/555AEF22.6070108%40parasoft.com.
> For more options, visit https://groups.google.com/d/optout.
>

Łukasz Kurek

unread,
May 21, 2015, 4:44:54 AM5/21/15
to jenkins...@googlegroups.com
Jacek, thanks for information and hint about the "mating".

We use matrix jobs for handling builds for different target platforms
(win32, linux, solaris, aix etc.). Currently we are copying these matrix
jobs for each development branch, but because they are almost the same,
we started to think about some way of reducing duplication. I started to
play with inheritance-plugin but quickly became blocked because I found
that it does not support matrix jobs. Now I plan to play with
template-plugin. Or maybe we will just accept the duplication, because
on the other hand it also gives us some benefits.

Łukasz
--
Łukasz "Wszebor" Kurek

Parasoft S.A. z siedzibą w Krakowie ul. Kiełkowskiego 9, 30-704 Kraków |
Zarejestrowana w Sądzie Rejonowym dla Krakowa Śródmieścia w Krakowie XI
Wydział Gospodarczy Krajowego Rejestru Sądowego pod numerem KRS 59188 |
NIP: 944-15-02-333 | Regon: 351182680 | Wysokość kapitału zakładowego:
500 000,00 zł.| Wysokość kapitału wpłaconego: 500 000,00 zł.

Parasoft S.A. | Registered Office: Kraków, Kiełkowskiego 9, 30-704
Kraków | Commercial Registration: XI Commercial Division of the District
Court for the Kraków Śródmieście under the KRS No.: 59188 | Share
capital of PLN 500000.00 fully covered | Tax identification number
(NIP): PL9441502333 | REGON No.: 351182680
Reply all
Reply to author
Forward
0 new messages