# HG changeset patch # User domruf # Date 1490304035 -3600 # Node ID ad275fcc5a90ab56ada44a88ac6d9d29f2ab092c # Parent f65f8acaca846309fde8f34203b29fd44208c77b jenkinsfile: create venv in special folder instead of jenkins workspace The path to a jenkins workspace tends to get very long. But the maximum for a shebang line is usually 127 characters. This can cause problems with git hook scripts or when calling pip. To avoid these problems create the virtualenv in the a folder under $JENKINS_HOME which is usually much shorter. diff -r f65f8acaca84 -r ad275fcc5a90 Jenkinsfile --- a/Jenkinsfile Thu Mar 23 22:08:56 2017 +0100 +++ b/Jenkinsfile Thu Mar 23 22:20:35 2017 +0100 @@ -1,9 +1,12 @@ node { + def createvirtualenv = '' def activatevirtualenv = '' if (isUnix()) { - activatevirtualenv = '. venv/bin/activate' + createvirtualenv = 'rm -r $JENKINS_HOME/venv/$JOB_NAME || true && virtualenv $JENKINS_HOME/venv/$JOB_NAME' + activatevirtualenv = '. $JENKINS_HOME/venv/$JOB_NAME/bin/activate' } else { - activatevirtualenv = 'call venv\\Scripts\\activate.bat' + createvirtualenv = 'rmdir /s /q %JENKINS_HOME%\\venv\\%JOB_NAME% || true && virtualenv %JENKINS_HOME%\\venv\\%JOB_NAME%' + activatevirtualenv = 'call %JENKINS_HOME%\\venv\\%JOB_NAME%\\Scripts\\activate.bat' } stage('checkout') { @@ -15,7 +18,7 @@ } } stage('virtual env') { - def virtualenvscript = """virtualenv venv + def virtualenvscript = """$createvirtualenv $activatevirtualenv python -m pip install --upgrade pip pip install --upgrade setuptools