Is your feature request related to a problem? Please describe.
It is not always ideal to build, test and install projects inside Jenkins:
Installing and configuring a Jenkins instance is a time, space and complexity overhead
Parallelization in Jenkins is not optimal
When building a distribution, all SCM checkouts could happen in parallel
There is no way to dynamically allocate the optimal number of CPUs to each job. Instead executor-count * parallel-tasks-within-each-job has to be chosen conservatively for the situation in which executor-count jobs are executed in at the same, each fully utilizing its internal parallelity.
Describe the solution you'd like
Since recipes contain all information required for building, testing and installing projects, the generator should in principle be able to generate a Makefile instead of Jenkins jobs.
Parallelization within jobs is interesting in this case: make-based jobs should be able to integrate with the job server provided by the outer make process which orchestrates the distribution build. Does that mean make-based projects should be built with just make instead of make -j …, or is something special needed to make this happen?
Is your feature request related to a problem? Please describe.
It is not always ideal to build, test and install projects inside Jenkins:
executor-count * parallel-tasks-within-each-job
has to be chosen conservatively for the situation in whichexecutor-count
jobs are executed in at the same, each fully utilizing its internal parallelity.Describe the solution you'd like
Since recipes contain all information required for building, testing and installing projects, the generator should in principle be able to generate a
Makefile
instead of Jenkins jobs.Something like
could generate such a Makefile.
Parallelization within jobs is interesting in this case:
make
-based jobs should be able to integrate with the job server provided by the outermake
process which orchestrates the distribution build. Does that meanmake
-based projects should be built with justmake
instead ofmake -j …
, or is something special needed to make this happen?See https://www.gnu.org/software/make/manual/make.html#Job-Slots