Thanks a lot Robert, that solved my problem. You are right, i should not 
whitelist those methods just load properties fille. Your plugin seems to be 
great, i will invest some time in learning other methods as well.

Also, do you think i can load the properties outside of a stage somehow ? I 
hate to have a separate stage for such preparation stuff.

On Wednesday, 3 May 2017 12:24:02 UTC+2, Robert Sandell wrote:
>
> The File constructor is blacklisted so that users don't try to do the 
> mistake that you are doing.
> The pipeline code is running on the master (only the steps themselves are 
> actually running on the agent), so when you create a new file pointing it 
> to $workspace it is most likely not there on the master unless you are 
> actually running on the master agent.
> For these more advanced scenarios I created the Pipeline Utility Steps 
> plugin 
> <https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Utility+Steps+Plugin> 
> that has among others a readProperties 
> <https://github.com/jenkinsci/pipeline-utility-steps-plugin/blob/master/docs/STEPS.md>
>  
> step.
>
> /B
>
> On Tuesday, May 2, 2017 at 5:57:32 PM UTC+2, ishan jain wrote:
>>
>> Hi all,
>>
>> My requirement is simple, i just want to externalize some 'values' to 
>> make my Jenkinsfile more re usable and for this i need to* load the 
>> properties from a file which is going to be right next to Jenkinsfile, and 
>> make sure that these properties are available anywhere in the code*. I 
>> am still new to groovy and Jenkins code but never thought such a simple 
>> thing would be so difficult. I enabled some methods in script security 
>> plugin but the following code always pose error or print null. I have tried 
>> multiple combinations and the below code is just one of them
>>
>> properties = null
>>
>> @NonCPS
>> def loadProperties() {
>> checkout scm
>> File propertiesFile = new File('${workspace}/pipeline.properties')
>> propertiesFile.withInputStream {
>> properties.load(propertiesFile)
>> }
>> }
>>
>> pipeline {
>>     agent none
>> stages {
>>         
>> stage ('prepare') {
>> agent any
>> steps {
>> script {
>> loadProperties()
>> echo "${properties['repo']}"
>> }
>> }
>> }
>> stage('Build') {
>>             
>> agent any
>> steps {
>> sh 'echo ${properties.repo}'
>> }
>>         }
>>     }
>> }
>>
>>
>>
>>

-- 
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/f054f784-9126-406a-8de7-baabac9f6998%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to