Just recorrecting myself here. I misconfused global properties with 
environment variables. Joseph Peterson clarified to me later. So I guess 
the previous method is not how it works with JCasC.

Thanks.

On Wednesday, June 12, 2019 at 6:50:46 AM UTC+5:30, Parichay Barpanda wrote:
>
> I found this groovy script to create a global environment variable in 
> Jenkins.
>
> Env.groovy:
>
> import hudson.EnvVars;
> import hudson.slaves.EnvironmentVariablesNodeProperty;
> import hudson.slaves.NodeProperty;
> import hudson.slaves.NodePropertyDescriptor;
> import hudson.util.DescribableList;
> import jenkins.model.Jenkins;
> public createGlobalEnvironmentVariables(String key, String value){
>
>         Jenkins instance = Jenkins.getInstance();
>
>         DescribableList<NodeProperty<?>, NodePropertyDescriptor> 
> globalNodeProperties = instance.getGlobalNodeProperties();
>         List<EnvironmentVariablesNodeProperty> envVarsNodePropertyList = 
> globalNodeProperties.getAll(EnvironmentVariablesNodeProperty.class);
>
>         EnvironmentVariablesNodeProperty newEnvVarsNodeProperty = null;
>         EnvVars envVars = null;
>
>         if ( envVarsNodePropertyList == null || 
> envVarsNodePropertyList.size() == 0 ) {
>             newEnvVarsNodeProperty = new 
> hudson.slaves.EnvironmentVariablesNodeProperty();
>             globalNodeProperties.add(newEnvVarsNodeProperty);
>             envVars = newEnvVarsNodeProperty.getEnvVars();
>         } else {
>             envVars = envVarsNodePropertyList.get(0).getEnvVars();
>         }
>         envVars.put(key, value)
>         instance.save()
> }
> createGlobalEnvironmentVariables('xyzabc','baymac')
>
>
> Using Jenkins CLI with the command to execute the above script
>
> java -jar "jenkins-cli.jar" -s 'https://my.jenkins.instance' -noKeyAuth -auth 
> ".jenkins-cli-auth" groovy = < 
>
>
> where .jenkins-cli-auth is `<User ID>:<API Token>`
>
> The env variables are populated
>
> [image: Screenshot from 2019-06-12 06-19-33.png]
>
> Now the question is, is it a good idea to recommend users to populate env 
> with GitLab Personal Access Token using this method before performing a 
> jcasc reload?
>
> Also I think it would be better to store env variables values in a 
> password form rather than plain text.
>
> On Tuesday, June 11, 2019 at 8:24:32 AM UTC+5:30, Parichay Barpanda wrote:
>>
>> Hi all,
>>
>> I am trying to figure out a way to add an environment variable to Jenkins 
>> without using the UI. Is there a way to do it via API? The intention is to 
>> let user add credentials to Jenkins without using UI. Please let me know if 
>> you have a solution to this.
>>
>> Thanks.
>>
>> Regards,
>> Parichay (baymac)
>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/f03d5853-b80f-4f9c-b71d-42878374be5b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to