Rod Kimble
Rod Kimble

Reputation: 1364

For Loop to call multiple variables from properties file

I have a properties file which I call inside my Jenkins Pipeline Script to get multiple variables.

BuildCounter = n
BuildName1 = Name 1
BuildName2 = Name 2
   ...
Buildnamen = Name n

I call my properties file with: def props = readProperties file: Path

Now I want to create a loop to print all my BuildNames

for (i = 0; i < BuildJobCounterInt; i++){
            tmp = 'BuildName' + i+1
            println props.tmp
}

But of course this is not working. ne last println call is searching for a variable called tmp in my properties file. Is there a way to perform this or am I completely wrong?

EDIT:

This is my .properties file:

BuildJobCounter = 1
BuildName1 = 'Win32'
BuildPath1 = '_Build/MBE3_Win32'
BuildName2 = 'empty'
BuildPath2 = 'empty'

TestJobCounter = '0'
TestName1 = 'empty'
TestPath1 = 'empty'
TestName2 = 'empty'
TestPath2 = 'empty'     

In my Jenkins pipeline I want to have the possibility to check the ammount of Build/TestJobs and automatically calle the Jobs (each BuildName and BuildPath is a Freestyle Job) To call all these Job I thought of calling the variables inside a for loop. So for every istep I have the Name/Path pair.

Upvotes: 1

Views: 1442

Answers (1)

Rao
Rao

Reputation: 21369

Try the below:

Change from:

println props.tmp

To:

println props[tmp]

or

println props."$tmp"

EDIT : based on OP comment

change from:

tmp = 'BuildName' + i+1

To:

def tmp = "BuildName${(i+1).toString()}"

Upvotes: 1

Related Questions