The for loop is in Java syntax instead of script shell syntax here :

sh """
    git clone -b master git@****.com:****/${repoName}.git
    cd ${repoName}

    stat -t . > folderStat1.txt
    for (String moduleName : moduleList) {
       ncu -u -f "${moduleName}"
    }

    stat -t . > folderStat2.txt
"""

IIUC, you want to do something like :

sh "git clone -b master git@****.com:****/${repoName}.git"

dir(repoName) {
    sh "stat -t . > folderStat1.txt"
    for (int i = 0; i < moduleList.size(); i++) {
        def moduleName = moduleList[i]
        sh "ncu -u -f \"${moduleName}\""
    }
    sh "stat -t . > folderStat2.txt"
}

Hopefully it helps.

2017-08-07 14:49 GMT+02:00 Idan Adar <[email protected]>:

> I have tried this, but it complains:
>
> groovy.lang.MissingPropertyException: No such property: moduleName for class: 
> WorkflowScript
>
>
> Here is the full Jenkinsfile:
> The majority of it can be disregarded... the issue at hand is the use of
> the variables, ${repoName}, ${moduleName}, etc...
>
> ReposToUpdate and npmDependencies are Extended choice parameters e.g.:
> myrepo1,myrepo2,myrepo3,...
>
> def repoList = ReposToUpdate.tokenize(",");
> def moduleList = npmDependencies.tokenize(",");
>
> pipeline {
>    agent {
>       label 'cert_mgmt'
>    }
>
>    stages {
>       stage ("Update package.json") {
>          steps {
>             script {
>                for (String repoName : repoList) {
>                   sshagent (credentials: ['credentials-ID']) {
>                      sh """
>                         git clone -b master git@****.com:****/${repoName}.
> git
>                         cd ${repoName}
>
>                         stat -t . > folderStat1.txt
>                         for (String moduleName : moduleList) {
>                            ncu -u -f "${moduleName}"
>                         }
>
>                         stat -t . > folderStat2.txt
>                      """
>
>                      def folderStat1 = readFile('folderStat1.txt').trim()
>                      def folderStat2 = readFile('folderStat2.txt').trim()
>
>                      if (folderStat1 == folderStat2) {
>                         slackSend (
>                            color: '#199515',
>                            message: "$JOB_NAME: <$BUILD_URL|Build
> #$BUILD_NUMBER> ${repoName}: Common code dependencies match the latest
> package versions."
>                         )
>                      }
>                      else {
>                         sh """
>                            cd ${repoName}
>
>                            git config --global user.name "****"
>                            git config --global user.email ****
>                            git commit -am 'Bump common packages version
> number [ci skip]'
>                            git push origin master
>
>                            cd ..
>                            rm -rf ${repoName}
>                         """
>
>                         slackSend (
>                            color: '#199515',
>                            message: "$JOB_NAME: <$BUILD_URL|Build
> #$BUILD_NUMBER> ${repoName}: Common code dependencies successfully updated
> to the latest package versions."
>                         )
>                      }
>                   }
>                }
>             }
>          }
>       }
>    }
>
>    post {
>       failure {
>          slackSend (
>             color: '#F01717',
>             message: "$JOB_NAME: <$BUILD_URL|Build #$BUILD_NUMBER>,
> Update failed. Review the build logs."
>          )
>       }
>    }
> }
>
>
>
> On Sunday, July 30, 2017 at 10:48:39 PM UTC+3, Joachim Nilsson wrote:
>>
>> As I understand, it is written in Groovy. That means you can access a
>> variable in a (Groovy)string using dollar and optionally curly brackets.
>>
>> "  variable value is ${variable} "
>>
>> Skaffa Outlook för Android <https://aka.ms/ghei36>
>>
>>
>>
>> Från: Idan Adar
>> Skickat: söndag 30 juli 13:56
>> Ämne: Accessing a variable in shell
>> Till: Jenkins Users
>>
>>
>> Given the following script block in a stage (Declarative pipeline), how
>> can I access the repoName variable?
>>
>> stages {
>>     stage("...") {
>>         script {
>>             for (String repoName: repoList) {
>>                 sshagent (credentials: 
>> ['e276113e-0ec9-4eaa-88f9-a7db5c9635b6'])
>> {
>>                     sh """
>>                         git clone -b master git@
>> ****.com:****/repoName.git
>>                         cd repoName
>>                         ....
>>                     """
>>                 }
>>             }
>>          }
>>      }
>> }
>>
>> --
>> 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/ms
>> gid/jenkinsci-users/d9d247a5-8ab9-4154-99c5-8c77b0861ec2%
>> 40googlegroups.com
>> <https://groups.google.com/d/msgid/jenkinsci-users/d9d247a5-8ab9-4154-99c5-8c77b0861ec2%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/f5ba050e-2d42-47d4-8183-89e43edc6fec%40googlegroups.
> com
> <https://groups.google.com/d/msgid/jenkinsci-users/f5ba050e-2d42-47d4-8183-89e43edc6fec%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/CAPO77c15ckcvjR972ppqTUp3V7G%3DGCxLTptA2fvnNe6tWgM%2Bsw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to