问题
We are using a parameterized Jenkins build job, and I would like to have default values for some parameters specific for myself, e.g. the dev branch name I mostly use. Is it possible? We do have personal users in Jenkins.
回答1:
You could do it by:
Create a scriptler which checks the current user and returns the appropriate value:
def user = jenkins.model.Jenkins.getAuthentication().getName(); def returnValue switch (user) { case ['user1','user2']: returnValue = 'xyz' break; case ['user3']: returnValue = 'abc' break; default: returnValue = '00' break; } return returnValueIf you want to use the Active Choices Plugin your script will need to return a list:
def user = jenkins.model.Jenkins.getAuthentication().getName(); def returnValue = []; switch (user) { case ['user1','user2']: returnValue << 'xyz' break; case ['mtlelj']: returnValue << 'abc' break; default: returnValue << '00' break; } return returnValueConfigure your parameterized build to have a Dynamic Parameter (Scriptler) or an Active Choices parameter and reference the script you created as it's source.
If you don't want a script centrally managed by admins, the Active Choices Parameter allows you to use the code within the parameter definition. I'm using:
Jenkins ver 2.32.3
Scriptler Plugin ver 2.9
Dynamic Parameter Plugin ver 2.9
Active Choices Plugin ver 2.9
来源:https://stackoverflow.com/questions/50894926/jenkins-per-user-default-parameter-values