You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
However, when I get to the step to actually invoke pipenv run the pipeline fails. This is the block of commands I am executing.
I can run these commands perfectly fine if I login to the server and execute them manually. However, I believe there is some interaction between the headless nature of the jenkins executor and the pipenv code which is causing problems.
Expected result
I would expect for the ansible-galaxy command to execute properly.
Actual result
14:14:11 + pipenv --verbose run ansible-galaxy install -p galaxy_roles -r requirements.yml
14:14:11 Traceback (most recent call last):
14:14:11 File "/usr/bin/pipenv", line 11, in
14:14:11 sys.exit(cli())
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/vendor/click/core.py", line 764, in call
14:14:11 return self.main(*args, **kwargs)
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/vendor/click/core.py", line 717, in main
14:14:11 rv = self.invoke(ctx)
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/vendor/click/core.py", line 1137, in invoke
14:14:11 return _process_result(sub_ctx.command.invoke(sub_ctx))
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/vendor/click/core.py", line 956, in invoke
14:14:11 return ctx.invoke(self.callback, **ctx.params)
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
14:14:11 return callback(*args, **kwargs)
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
14:14:11 return ctx.invoke(f, obj, *args, **kwargs)
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
14:14:11 return callback(*args, **kwargs)
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/cli/command.py", line 408, in run
14:14:11 command=command, args=args, three=state.three, python=state.python, pypi_mirror=state.pypi_mirror
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/core.py", line 2328, in do_run
14:14:11 do_run_posix(script, command=command)
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/core.py", line 2297, in do_run_posix
14:14:11 command_path, command_path, *[os.path.expandvars(arg) for arg in script.args]
14:14:11 File "/usr/lib64/python2.7/os.py", line 314, in execl
14:14:11 execv(file, args)
14:14:11 OSError: [Errno 8] Exec format error
This issue was due to setting WORKON_HOME to include the WORKSPACE variable, which is an absolute path and when expanded exceeds the line limit for a shebang line, as documented in this ticket for virtualenv (pypa/virtualenv#596) Replacing WORKON_HOME with PIPENV_VENV_IN_PROJECT="true" fixed the issue.
Issue description
I am attempting to run a jenkins pipeline which utilizes pipenv.
However, when I get to the step to actually invoke pipenv run the pipeline fails. This is the block of commands I am executing.
I can run these commands perfectly fine if I login to the server and execute them manually. However, I believe there is some interaction between the headless nature of the jenkins executor and the pipenv code which is causing problems.
Expected result
I would expect for the ansible-galaxy command to execute properly.
Actual result
14:14:11 + pipenv --verbose run ansible-galaxy install -p galaxy_roles -r requirements.yml
14:14:11 Traceback (most recent call last):
14:14:11 File "/usr/bin/pipenv", line 11, in
14:14:11 sys.exit(cli())
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/vendor/click/core.py", line 764, in call
14:14:11 return self.main(*args, **kwargs)
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/vendor/click/core.py", line 717, in main
14:14:11 rv = self.invoke(ctx)
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/vendor/click/core.py", line 1137, in invoke
14:14:11 return _process_result(sub_ctx.command.invoke(sub_ctx))
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/vendor/click/core.py", line 956, in invoke
14:14:11 return ctx.invoke(self.callback, **ctx.params)
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
14:14:11 return callback(*args, **kwargs)
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
14:14:11 return ctx.invoke(f, obj, *args, **kwargs)
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
14:14:11 return callback(*args, **kwargs)
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/cli/command.py", line 408, in run
14:14:11 command=command, args=args, three=state.three, python=state.python, pypi_mirror=state.pypi_mirror
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/core.py", line 2328, in do_run
14:14:11 do_run_posix(script, command=command)
14:14:11 File "/usr/lib/python2.7/site-packages/pipenv/core.py", line 2297, in do_run_posix
14:14:11 command_path, command_path, *[os.path.expandvars(arg) for arg in script.args]
14:14:11 File "/usr/lib64/python2.7/os.py", line 314, in execl
14:14:11 execv(file, args)
14:14:11 OSError: [Errno 8] Exec format error
Steps to replicate
A Jenkinsfile that looks like this
$ pipenv --support
Pipenv version:
'2018.11.26'
Pipenv location:
'/usr/lib/python2.7/site-packages/pipenv'
Python location:
'/usr/bin/python2'
Python installations found:
3.6.10
:/home/ec2-user/.pyenv/versions/3.6.10/bin/python3
3.6.10
:/home/ec2-user/.pyenv/versions/3.6.10/bin/python3.6m
2.7.16
:/usr/bin/python2.7
PEP 508 Information:
System environment variables:
JENKINS_HOME
JOB_BASE_NAME
HUDSON_URL
BUILD_URL
LESSOPEN
PYTHONDONTWRITEBYTECODE
GIT_PREVIOUS_COMMIT
BUILD_TAG
HUDSON_SERVER_COOKIE
JENKINS_URL
LOGNAME
USER
WORKSPACE
HOME
PATH
NODE_NAME
PYENV_VIRTUALENV_INIT
LANG
RUN_DISPLAY_URL
TERM
SHELL
AMI_KEY
GIT_PREVIOUS_SUCCESSFUL_COMMIT
PYENV_SHELL
SHLVL
GIT_AUTHOR_EMAIL
PWD
HUDSON_HOME
JOB_NAME
NODE_LABELS
PIPENV_YES
PYTHONFINDER_IGNORE_UNSUPPORTED
BUILD_ID
WORKON_HOME
AMI_NAME
BUILD_NUMBER
XDG_RUNTIME_DIR
HUDSON_COOKIE
JOB_URL
SSH_AUTH_SOCK
STAGE_NAME
JENKINS_NODE_COOKIE
GIT_BRANCH
GIT_COMMIT
RUN_CHANGES_DISPLAY_URL
PIP_PYTHON_PATH
GIT_COMMITTER_NAME
XDG_SESSION_ID
_
AWS_DEFAULT_REGION
PIPENV_NOSPIN
JOB_DISPLAY_URL
PIP_DISABLE_PIP_VERSION_CHECK
SSH_CLIENT
EXECUTOR_NUMBER
PYENV_ROOT
PIP_SHIMS_BASE_MODULE
JE_GIT_URL
GIT_COMMITTER_EMAIL
JENKINS_SERVER_COOKIE
BUILD_DISPLAY_NAME
GIT_AUTHOR_NAME
MAIL
SSH_CONNECTION
GIT_URL
Pipenv–specific environment variables:
PIPENV_YES
:true
PIPENV_NOSPIN
:YES
Debug–specific environment variables:
PATH
:/home/ec2-user/.pyenv/shims:/home/ec2-user/.pyenv/bin:/opt/packer:/home/ec2-user/.pyenv/plugins/pyenv-virtualenv/shims:/home/ec2-user/.pyenv/shims:/home/ec2-user/.pyenv/bin:/usr/local/bin:/usr/bin
SHELL
:/bin/bash
LANG
:en_US.UTF-8
PWD
:/home/ec2-user/jenkins/workspace/ansible-playbook-jenkins-basic-worker
Contents of
Pipfile
('/home/ec2-user/jenkins/workspace/ansible-playbook-jenkins-basic-worker/Pipfile'):Contents of
Pipfile.lock
('/home/ec2-user/jenkins/workspace/ansible-playbook-jenkins-basic-worker/Pipfile.lock'):The text was updated successfully, but these errors were encountered: