Jenkins execute shell scripts with parameters on remote machine
I have the same problem with it.
The parameters/${xx}/$xxx
are undefined in remote machine. So when your shell script executes in remote machine cannot get the correct value.
This way will fix the problem:
ssh -t server.example.com 'export MYVAR='"'$LOCALVAR'"'; mycommand'
As mentioned by @Slav you can use environment/build arguments like any other environment variable in Jenkins. One thing to remember is that they get expanded before the script is executed. If you happen to be using pipeline groovy scripts, make sure you use double quotes "
instead of single '
:
following will not work:
sh '/usr/local/bin/check_out_code.sh ${giturl} ${branch}'
following will work:
sh "/usr/local/bin/check_out_code.sh ${giturl} ${branch}"