Multi-branch pipeline without Jenkinsfile in the repo?

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

Multi-branch pipeline without Jenkinsfile in the repo?

Kaido Kert
Hi,

I've been using Freestyle multibranch project option for a long time to run multi-branch builds. However, it officially say's its deprecated now.
However, we do not have the freedom to stuff Jenkinsfile into all repositories/branches we want to build, and never will.

When i configure a pipeline multibranch build item, there is a Build Configuration: Mode dropdown in the UI, which frustratingly only offers 1 option: Jenkinsfile.
I'm guessing there is some plugin or mechanism to get more choices, such as pasted in script into this dropdown, but how ?

cheers,
-kert



--
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/1420f620-3f58-4e7e-82ae-7cf9f7e41cc2%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-branch pipeline without Jenkinsfile in the repo?

Mark Waite-2


On Saturday, April 29, 2017 at 3:06:32 PM UTC-6, Kaido Kert wrote:
Hi,

I've been using Freestyle multibranch project option for a long time to run multi-branch builds. However, it officially say's its deprecated now.
However, we do not have the freedom to stuff Jenkinsfile into all repositories/branches we want to build, and never will.


If you aren't able to place a Jenkinsfile into the repositories / branches that you want to build, you might create a new (independent) repository which has one branch per repository and branch that you will build.  In each of the branches of that repository, you can add the Jenkinsfile and have it perform the checkout of the repository / branch that you're not able to change.  That allows you to have a repository with a branch per build (which is what multi-branch pipeline wants), and you can place a Jenkinsfile at the root of each branch to control what it is building.

That creates a "builders" repository where you control the Jenkinsfile, and that Jenkinsfile references the repositories and branches being built.

I used that technique to "test drive" a pipeline configuration for a component that wasn't ready to use Jenkins.  The official source repository didn't know that I was test driving, and I was able to make rapid progress without complaints about my Jenkins experiments.

Mark Waite
 
When i configure a pipeline multibranch build item, there is a Build Configuration: Mode dropdown in the UI, which frustratingly only offers 1 option: Jenkinsfile.
I'm guessing there is some plugin or mechanism to get more choices, such as pasted in script into this dropdown, but how ?

cheers,
-kert



--
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/eaeaf5e2-bb38-4c37-8711-d7a36f46d66a%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-branch pipeline without Jenkinsfile in the repo?

Kaido Kert
That

On Saturday, April 29, 2017 at 4:46:32 PM UTC-7, Mark Waite wrote:


On Saturday, April 29, 2017 at 3:06:32 PM UTC-6, Kaido Kert wrote:
Hi,

I've been using Freestyle multibranch project option for a long time to run multi-branch builds. However, it officially say's its deprecated now.
However, we do not have the freedom to stuff Jenkinsfile into all repositories/branches we want to build, and never will.


If you aren't able to place a Jenkinsfile into the repositories / branches that you want to build, you might create a new (independent) repository which has one branch per repository and branch that you will build.  In each of the branches of that repository, you can add the Jenkinsfile and have it perform the checkout of the repository / branch that you're not able to change.  That allows you to have a repository with a branch per build (which is what multi-branch pipeline wants), and you can place a Jenkinsfile at the root of each branch to control what it is building.

That creates a "builders" repository where you control the Jenkinsfile, and that Jenkinsfile references the repositories and branches being built.

I used that technique to "test drive" a pipeline configuration for a component that wasn't ready to use Jenkins.  The official source repository didn't know that I was test driving, and I was able to make rapid progress without complaints about my Jenkins experiments.

Mark Waite


 That would definitely solve the problem, i've done similar hooks to build CMake build trees for projects not intended to be built with it, etc.
However, it's a bit of a large overhead to just get 4-5 lines of minimal Jenkinsfile code to actually kick off the build, and especially when you are just tooling around and testing.

I've just actually gone through full Jenkins update to latest, and updated all plugins too, and now there is a new option, 'Default Jenkinsfile' which does seem to do what i need.

-kert

--
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/9238c114-0c44-4392-9e81-abdba3e783ca%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-branch pipeline without Jenkinsfile in the repo?

h1volt3
In reply to this post by Mark Waite-2
Hi,

Sorry for resurrecting this thread. I have the same problem where the build pipeline is almost identical between projects, and the build pipeline and environment is controlled by build engineers, not the developers, so it's very tedious to put the same Jenkinsfile into tens of different repos AND having to update and create tens of pull requests when we have updates to build pipeline/environment.

I tried Mark Waite suggestion and it's fantastic. However, there's one big downside: sub-build created by each branch can not be setup to be triggered by BitBucket push. Has anyone be able to workaround this or have another strategy to solve the aforementioned problem? I did some research and saw this feature request (Set the bitbucket trigger using Declarative Pipeline) but it's not resolved yet and I don't know whether it could solve my problem.

Many thanks in advance,
Hai.

On Sunday, April 30, 2017 at 6:46:32 AM UTC+7, Mark Waite wrote:


On Saturday, April 29, 2017 at 3:06:32 PM UTC-6, Kaido Kert wrote:
Hi,

I've been using Freestyle multibranch project option for a long time to run multi-branch builds. However, it officially say's its deprecated now.
However, we do not have the freedom to stuff Jenkinsfile into all repositories/branches we want to build, and never will.


If you aren't able to place a Jenkinsfile into the repositories / branches that you want to build, you might create a new (independent) repository which has one branch per repository and branch that you will build.  In each of the branches of that repository, you can add the Jenkinsfile and have it perform the checkout of the repository / branch that you're not able to change.  That allows you to have a repository with a branch per build (which is what multi-branch pipeline wants), and you can place a Jenkinsfile at the root of each branch to control what it is building.

That creates a "builders" repository where you control the Jenkinsfile, and that Jenkinsfile references the repositories and branches being built.

I used that technique to "test drive" a pipeline configuration for a component that wasn't ready to use Jenkins.  The official source repository didn't know that I was test driving, and I was able to make rapid progress without complaints about my Jenkins experiments.

Mark Waite
 
When i configure a pipeline multibranch build item, there is a Build Configuration: Mode dropdown in the UI, which frustratingly only offers 1 option: Jenkinsfile.
I'm guessing there is some plugin or mechanism to get more choices, such as pasted in script into this dropdown, but how ?

cheers,
-kert



--
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/25ffa3a2-4436-4464-83b1-1a993e5eb37d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Loading...