Не удалось активировать виртуальную среду Python в сценарии оболочки jenkins

Я установил Jenkins на Ubuntu 15.10. На этапе сборки оболочки я пытаюсь создать виртуальную среду Python и активировать ее:

Но я получаю следующую ошибку при запуске задания:

/tmp/hudson4515625893361069094.sh: 9: /tmp/hudson4515625893361069094.sh: source: not found

Больше из журнала:

[django-demo] $ /bin/sh -xe /tmp/hudson4515625893361069094.sh
+ virtualenv --no-site-packages virtual_django
New python executable in virtual_django/bin/python2
Also creating executable in virtual_django/bin/python
Installing setuptools, pip...done.
Running virtualenv with interpreter /usr/bin/python2
+ cd virtual_django/bin
+ pwd
/var/lib/jenkins/workspace/django-demo/virtual_django/bin
+ dir
activate      activate.fish easy_install      pip   pip2.7  python2
activate.csh  activate_this.py  easy_install-2.7  pip2  python  python2.7
+ source activate
/tmp/hudson4515625893361069094.sh: 9: /tmp/hudson4515625893361069094.sh: source: not found
Build step 'Execute shell' marked build as failure

Таким образом, виртуальная среда была успешно создана, но ее нельзя активировать, поскольку не удалось найти исходную команду.

Я проверил, что действительно могу запустить команду активации источника из терминала на компьютере как пользователь jenkins в соответствующей рабочей области:

jenkins@vmi63860 ~/workspace/django-demo/virtual_django/bin ((HEAD detached at 290c6a4)) $ source activate
(virtual_django)jenkins@vmi63860 ~/workspace/django-demo/virtual_django/bin ((HEAD detached at 290c6a4)) $ exit

Итак, почему это терпит неудачу, когда я запускаю это под работой Дженкинса?

2 ответа

Нашел похожий пост здесь:

https://stackoverflow.com/questions/670191/getting-a-source-not-found-error-when-using-source-in-a-bash-script

Решение состоит в том, чтобы добавить:

#!/bin/bash

в первой строке шага скрипта:

https://ask-ubun tu.ru/images/e57cdae15810feee19f574e01748913bc625a26b.png

source — это расширение bash/ksh/etc, представленное как более «существенный» синоним для .

Попробуйте использовать ниже

      . activate
Другие вопросы по тегам