# HG changeset patch # User domruf # Date 2017-03-23 22:20:35 # 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 --git a/Jenkinsfile b/Jenkinsfile --- a/Jenkinsfile +++ b/Jenkinsfile @@ -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 @@ node { } } stage('virtual env') { - def virtualenvscript = """virtualenv venv + def virtualenvscript = """$createvirtualenv $activatevirtualenv python -m pip install --upgrade pip pip install --upgrade setuptools