我试图在Jenkins中创建virtualenv(阶段)并在创建virtualenv之前设置所需的环境变量。
stage('create virtualenvironment') {
sh 'export PATH=/usr/local/bin/virtualenv:$PATH'
sh 'export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python'
sh 'export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv'
sh 'source /usr/local/bin/virtualenvwrapper.sh'
echo 'createvirtualenvwrapper'
sh 'mkvirtualenv testproject'
}
当我执行此脚本时 - 我收到此消息 -
mkvirtualenv: command not found
当我打印所有上述env变量时,没有设置任何内容?不确定sh命令是否在脚本化管道中按预期工作。
答案 0 :(得分:0)
我不是100%肯定,但我的猜测是,当你执行sh 'Some command'
时,它会执行一个shell脚本并完成。
所以正在发生的事情是,每个sh命令都被视为一个单独的shell脚本,它执行命令并且仅在该会话中处于活动状态,并在脚本完成后关闭。
因此,尝试将所有上述命令与mkvirtualenv testproject
一起组合到单个sh命令中,它应该可以正常工作。
为了便于阅读,请在此shell脚本中创建一个新的Shell脚本,如runProject.sh
和上述命令,然后您可以调用
sh runProject.sh
希望有所帮助:)