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 [email protected].
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