Re: handling shell pipelines in Jenkins 2.164.3

2020-02-17 Thread CFouts
The clearmake command is a shell command too correct? Try this syntax

 

sh “””

   your commands here
“””

 

You will have to escape at least the the “$” symbols.

 

Chris

 

From: Dimitar Vassilev 
Reply-To: 
Date: Monday, February 17, 2020 at 11:13 AM
To: 
Subject: handling shell pipelines in Jenkins 2.164.3

 

Greeting fellows,

 

can anyone point me how to handle shell pipelines in Jenkins 2.164.3

I'm having a problem with the following sample code

 

stage('inject full build'){
  steps{
script {
  sh "#!/usr/bin/env bash \n" +
 "clearmake setview -exec 'clearmake -k full' ${VIEW} | awk -F '<|>' 
'NR ==2 { print $2 } ' > foo.txt"
 }
  }
 }

The objective is to record the build id injected into the build queue and 
monitor the build status later with LSF bjobs command options. when I put the 
above syntax I get an error message like 

 

unexpected syntax error near unexpected token `|`

 

Any pointers will be appreciated.

Best regards,

 

Dimitar 



Re: Strategy for optionally excluding a named method parameter?

2020-04-25 Thread CFouts
It’s doing what you programmed it to do.

 

You’re doing a “println” on the first arg (args.one), then a print on the 
second arg (args.two.

 

So on your first 2 calls…

 

f(one: “string”, two: false), prints

 string (the line fieed in println)

 false (no linefeed)

 

then f(one: “string”, two: true), prints

    string (linefeed)

  true

 

So if you combine the outputs, it’s indeed

 

 string (the line fieed in println)

 false (print, no linefeed) string (linefeed)

  true

 

So. w/o the explanations,  looks exactly what you have

     string

 false string

 true

 

From: Rathinavelu 
Reply-To: 
Date: Saturday, April 25, 2020 at 9:23 PM
To: "users@groovy.apache.org" , 
"users@groovy.apache.org" , David Karr 

Subject: RE: Re: Strategy for optionally excluding a named method parameter?

 

Both named and varag

 

def f(Object[] args){ println args.one

print args.two }

f(one: "string",two:false)

f(one:"string", two:true)

f(two:false)

f(two:true)

f(two: 1==2)

f(two: 1==1)

f(two: 1==2)

 

[string]

[false][string]

[true][null]

[false][null]

[true][null]

[false][null]

[true][null]

[false]

 

Please as a work around keep the boolean as the last parameter. Since map is a 
subclass of  Object, the function polymorphically accepts map object . But why 
Boolean be the last to work? Sorry, Sir! I am into groovy only from last week! 
A long way to go!

The reason for always ‘false’ in the middle perhaps  is “invisible input”. Last 
output has no [null]

T.Rathinavelu

 

Sent from Mail for Windows 10

 

From: MG
Sent: Sunday, April 26, 2020 5:00 AM
To: users@groovy.apache.org; David Karr
Subject: Re: Strategy for optionally excluding a named method parameter?

 

Hi David,

since, as was mentioned, named parameters are implemented as a map underneath 
in Groovy, you should be able to remove the map entry of the parameter you do 
not want to pass, though I did not try this myself...

Cheers,
mg


On 25/04/2020 20:57, David Karr wrote:

 

 

On Sat, Apr 25, 2020 at 2:00 AM Rathinavelu  wrote:

Named parameters are not available in Groovy, say, as in Python., though they 
say it is. Groovy has only mapped parameters. The earlier mail works for a 
single ‘named’ parameter; if there are more parameters Groovy does not work as 
‘expected’; it treats them only as positional parameters.

Kindly mail me an use-case.

T.Rathinavelu

 

The code sample looks something like this:

 

functionName param1: value,

param2: value,

param3: value,

param4: value,

...

param25: value

 

For instance, we need to make either the previous call or the following:

 

functionName param1: value,

param2: value,

param3: value,

... 

param25: value

 

Where the "param4" key and value are not provided.  Presently, we have an "if" 
checking for a condition, followed by the "true" block with the first version 
of the function call with 25 parameters, followed by the "else" and the "false" 
block with the second version, which has 24 parameters, all the same values as 
in the first block, except for the one key and value not provided in the second 
version.

 

 

Sent from Mail for Windows 10

 

From: David Karr
Sent: Saturday, April 25, 2020 1:48 AM
To: users@groovy.apache.org
Subject: Strategy for optionally excluding a named method parameter?

 

Lately my only Groovy work is scripted pipelines in Jenkins, version 2.89.4 .

 

I'm working with an api that is somewhat dumb in one respect.  The method we 
call takes ~25 parameters.  We send them as named parameters. One of the 
parameters is of boolean type.  What we've discovered from testing is that if 
we send a value as either "true" or "false", it acts as if we sent "true".  If 
we construct the call without that parameter entirely, it acts as if we sent 
"false". I tried making it send null, but that just causes it to fail at 
runtime.  We presently have an "if" for that one flag, with two calls to the 
method, one taking 25 parameters, the other taking 24.  It is really obnoxious.

 

Obviously, the proper fix is to change their api so that it works correctly.  
The reality is, that's not going to happen any time soon in geological terms.

 

Is there a concise groovy syntax we could use that would optionally include or 
exclude a single parameter to the method?

 

 

 

 



Unsubscribe

2020-06-01 Thread CFouts