Reputation: 43
The Sed command is giving me issues with incorporating the $tag variable witch is equal to "latest${GIT_COMMIT:0:7}". Here is the Sed command:
sh "sed -i 's/{BUILD_NUMBER}/$tag/' /var/lib/jenkins/workspace/${JOB_NAME}/em-api/dev-nics-emapi-svc-param.json"
I obviously want to put into my .json file the commit information but It doesnt pull the actual commit sha. When I take a look at the .json file it inserted the literal definition of the variable which is “latest${GIT_COMMIT:0:4}”. I am trying to do this on a declarative pipeline on my jenkins server running on linux.
I would like it to insert "latestxxxx". Any suggestions on how I can get around this?
Upvotes: 0
Views: 1874
Reputation: 37033
GIT_COMMIT
is an environment variable available to you; tag
is a groovy variable, you have set to 'latest${GIT_COMMIT:0:4}'
. So this gets replaced since you are using "
for your sed command. But you are using '
for your sed expression, which then again will not replace environment variables. So you have basically two options:
"
to quote the sed command, if you feel safe about the content, that gets replaced (you can use """
triple quotes for the whole command to don't have to quote the "
for groovy)System.env['GIT_COMMIT].substring(0,4)
)Upvotes: 2