Ok, so you're either in to doing this with git (I'm guessing you use git) 
to work out what derived branch you're from, which is very hard in the 
general case - or you need to store branch names elsewhere.

You could perform a load(env.BRANCHNAME+'.groovy') to load a branch 
specific groovy snippet (perhaps with a fallback to master if that file 
doesn't exist) which defines buildEnvironment for that branch.

https://jenkins.io/doc/pipeline/steps/workflow-cps/#load-evaluate-a-groovy-source-file-into-the-pipeline-script

That would never merge conflict, but would need a tidy-up from time to time.

On Wednesday, 3 August 2016 08:08:38 UTC+1, Sverre Moe wrote:
>
> Yes, I am using Multibranch pipeline.
> I already have the branch name with env.BRANCH_NAME, but only some 
> designated branches have a list of slave nodes.
> If the branch is master, it should build on all slave nodes in the 
> environment for master.
> If the branch is userName/work which is branched out from master it should 
> also build in the environment for master.
> I am using the parameter buildEnvironment in the Jenkinsfile to determine 
> which environment of slave nodes to build on.
>
> Environment: master
> Nodes: master-sles12-x86_64, master-centos7-x86_64 ...
>
>
> tirsdag 2. august 2016 12.01.10 UTC+2 skrev Alan Clucas følgende:
>>
>> How are you building all these branches? If you're using a multibranch 
>> pipeline (or anything else where the branch name is part of the job name) 
>> then env.JOB_NAME contains a string you can mangle to extract the branch 
>> details.
>>
>> On Tuesday, 2 August 2016 07:19:22 UTC+1, Sverre Moe wrote:
>>>
>>> I am using the variable buildEnvironment to determine which set of nodes 
>>> the branch should be built on.
>>> Each release branch (including git master) has their own list of slave 
>>> nodes.
>>>
>>> Jenkinsfile:
>>> #!groovy
>>>
>>> def buildEnvironment = "master"
>>> def param2 = null
>>> String[] args = [buildEnvironment, param2] as String[]
>>>
>>> def build = new com.company.ci.Build()
>>> build.execute(args)
>>>
>>> There has been some concerns that the Jenkinsfile could cause forever 
>>> merge conflicts because one parameter is different among different branches.
>>> origin/master -> def buildEnvironment = "master"
>>> origin/releaseA -> def buildEnvironment = "releaseA"
>>>
>>> I could use the branch name to determine which buildEnvironment to use, 
>>> but that would not work when it is a feature or work branch created from 
>>> either master or a release branch. The branch name master would work for 
>>> branch master, but not myUser/work that is branched out of master.
>>>
>>> Anyone have any idea how this can be solved without keeping the 
>>> parameter buildEnvironment in the Jenkinsfile?
>>>
>>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/121d0c22-74b3-47e4-a4d9-b57d1d5fe8cf%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to