在脚本管道中设置环境变量

时间:2018-06-12 23:20:05

标签: jenkins jenkins-pipeline

我试图在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命令是否在脚本化管道中按预期工作。

1 个答案:

答案 0 :(得分:0)

我不是100%肯定,但我的猜测是,当你执行sh 'Some command'时,它会执行一个shell脚本并完成。

所以正在发生的事情是,每个sh命令都被视为一个单独的shell脚本,它执行命令并且仅在该会话中处于活动状态,并在脚本完成后关闭。

因此,尝试将所有上述命令与mkvirtualenv testproject一起组合到单个sh命令中,它应该可以正常工作。

为了便于阅读,请在此shell脚本中创建一个新的Shell脚本,如runProject.sh和上述命令,然后您可以调用

sh runProject.sh

希望有所帮助:)