I have a Jenkins pipeline job in which I configure my environment with a bash script named setup.sh which looks like:
#!/bin/bash
export ARCH=$1
echo "architecture = " ${ARCH}
In the Jenkins pipeline script, Icall the setup.sh script with:
def lib_arch='linux-ubuntu-14.04-x86_64-gcc4.8.4'
sh ". /opt/setup.sh ${lib_arch}"
unfortunately it seems that NO variable is passed to the setup.sh script, and the echo ${ARCH} return an empty string! I tried to instead do: sh "source /opt/setup.sh ${lib_arch}" and this fails as well with the "source not found" message. I also tried changing the first line of my script to
#!/bin/sh
but it does not help. So how can I pass a parameter to my bash script in a Jenkins pipeline script? thanks for your help.
Update: a workaround was sugggested by Bert Jan Schrijve in this thread (see below):
sh "bash -c \" source /opt/setup.sh ${lib_arch}\""