It is external in the sense that its a self contained groovy script/class that jenkins executes.
So how can I have withCredentials inject these vars into the environment of the main process? On Tuesday, November 21, 2017 at 5:33:36 AM UTC-5, Daniel Butler wrote: > > As I’d said the System.getEnv() call returns the environment the Jenkins > process is currently running in. > > > > When Jenkins runs an external process (ie sh) it adds the values in the > env map to the environment of the external process. The environment of the > Jenkins process is left untouched. > > Thus “sh ‘printenv’” shows the vars (It’s an external process) > > System.getEnv() does not as you’re just getting the Jenkins process > environment. > > > > If you’re connecting up to Dynamo you’d generally don’t want to do that > from within pipeline script; Things are a lot more robust if you do those > sorts of things from an external script. > > > > The recommendation is to use pipeline script to orchestrate the job but > leave the actual heavy lifting to external processes and plugins. > > > > > > *From: *red 888 <javascript:> > *Sent: *20 November 2017 18:36 > *To: *Jenkins Users <javascript:> > *Subject: *Re: Why aren't these injected variables making it to my groovy > class? > > > > Can you explain this i don't understand. > > > > sh 'printenv' returns my injected variables. System.getenv() inside my > function does not. Even if I shell out from the groovy function and run > printenv I still don't see the variables. Why aren't they there in the > context of my function? > > > > The amazon api looks for these variables so when I run this in my function > its looking for those two environment vars that should be injected but are > not: > > def ebClient = new AmazonDynamoDBClientBuilder() > > .withCredentials(new EnvironmentVariableCredentialsProvider()) > > .build() > > > > > On Monday, November 20, 2017 at 6:57:07 AM UTC-5, Daniel Butler wrote: > > By doing System.getenv() you're getting the environment of the Jenkins > master process. > > > > The environment that will be used by any process run in the pipeline is > available through the built-in variable env. > > > > Regards, > > Daniel > > > > On 20 Nov 2017 2:14 am, "red 888" <[email protected]> wrote: > > In my pipeline I'm injecting aws credentials: > > > > withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', > > credentialsId: '89h9sfh8shf98shf98he9f8sf', > > accessKeyVariable: 'AWS_ACCESS_KEY_ID', > > secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) { > > > > sh 'printenv' > > > > echo myFunc.myMeth('blah','sdjlfkdf') > > > > } > > > > myFunc looks like this: > > > > class myFunc { > > static Object myMeth (String param1, String param2){ > > > > > > def env = System.getenv() > > //Print all the environment variables. > > env.each{ > > println it > > } > > } > > } > > > > Looking at the output of sh 'printenv' I see AWS_ACCESS_KEY_ID and > AWS_SECRET_ACCESS_KEY are injected. But when I try to echo back what envs > myFunc has access to I don't see those variables. Is this by design? Is > myFunc isolated and I need change its scope or something? > > -- > 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/6dfaad11-29f5-4287-a0a0-a16a2373ecd4%40googlegroups.com > > <https://groups.google.com/d/msgid/jenkinsci-users/6dfaad11-29f5-4287-a0a0-a16a2373ecd4%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > > > > -- > 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] <javascript:>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-users/89ce7f8b-99ae-4e47-abbb-a57e0f306fcc%40googlegroups.com > > <https://groups.google.com/d/msgid/jenkinsci-users/89ce7f8b-99ae-4e47-abbb-a57e0f306fcc%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > > > -- 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/11993c26-a1e9-4442-8dcf-6e5b4d385ff8%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
