Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Активация virtualenv при запуске на Jenkins

virtualenv
jenkins
infrastructure
python
Теги: #<Tag:0x00007f7b68ccf520> #<Tag:0x00007f7b68ccf3e0> #<Tag:0x00007f7b68ccf250> #<Tag:0x00007f7b68ccf048>

(Вадим) #1

Как правильно активировать virtualenv при запуске на Jenkins
Я у себя прописывал так source config/bin/activate (source папка с виртуальным окружением)- локально все отлично запускалось, а вот на сервере появляется ошибка:
[Allure_first_test_configuration] $ /bin/sh /tmp/jenkins3439735503009578215.sh
/tmp/jenkins3439735503009578215.sh: 2: /tmp/jenkins3439735503009578215.sh: source: not found


(Roy Obenon) #2

Вы папку с virtualenv пушите в репу и потом используете при подтягивании в дженкинс или как?


(Вадим) #3

virtualenv лежит в том же репозитории что и тесты


(Roy Obenon) #4

в дженкинсе перейди в папку с выкаченной репой и в ней запустите virtualenv


(Вадим) #5

Странно, получил ошибку :
File “/usr/lib/python2.7/runpy.py”, line 174, in _run_module_as_main
main”, fname, loader, pkg_name)
File “/usr/lib/python2.7/runpy.py”, line 72, in _run_code
exec code in run_globals
File “/usr/local/lib/python2.7/dist-packages/pytest.py”, line 73, in
raise SystemExit(pytest.main())
File “/usr/local/lib/python2.7/dist-packages/_pytest/config.py”, line 49, in main
config = _prepareconfig(args, plugins)
File “/usr/local/lib/python2.7/dist-packages/_pytest/config.py”, line 164, in _prepareconfig
pluginmanager=pluginmanager, args=args)
File “/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py”, line 745, in call
return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
File “/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py”, line 339, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File “/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py”, line 334, in
_MultiCall(methods, kwargs, hook.spec_opts).execute()
File “/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py”, line 613, in execute
return _wrapped_call(hook_impl.function(*args), self.execute)
File “/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py”, line 250, in _wrapped_call
wrap_controller.send(call_outcome)
File “/usr/local/lib/python2.7/dist-packages/_pytest/helpconfig.py”, line 67, in pytest_cmdline_parse
config = outcome.get_result()
File “/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py”, line 280, in get_result
_reraise(*ex) # noqa
File “/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py”, line 265, in init
self.result = func()
File “/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py”, line 614, in execute
res = hook_impl.function(*args)
File “/usr/local/lib/python2.7/dist-packages/_pytest/config.py”, line 934, in pytest_cmdline_parse
self.parse(args)
File “/usr/local/lib/python2.7/dist-packages/_pytest/config.py”, line 1106, in parse
self._preparse(args, addopts=addopts)
File “/usr/local/lib/python2.7/dist-packages/_pytest/config.py”, line 1068, in _preparse
self.pluginmanager.load_setuptools_entrypoints(‘pytest11’)
File “/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py”, line 516, in load_setuptools_entrypoints
self.register(plugin, name=ep.name)
File “/usr/local/lib/python2.7/dist-packages/_pytest/config.py”, line 258, in register
ret = super(PytestPluginManager, self).register(plugin, name)
File “/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py”, line 371, in register
hook._maybe_apply_history(hookimpl)
File “/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py”, line 768, in _maybe_apply_history
res = self._hookexec(self, [method], kwargs)
File “/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py”, line 339, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File “/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py”, line 334, in
_MultiCall(methods, kwargs, hook.spec_opts).execute()
File “/usr/local/lib/python2.7/dist-packages/_pytest/vendored_packages/pluggy.py”, line 614, in execute
res = hook_impl.function(*args)
File “/usr/local/lib/python2.7/dist-packages/allure_pytest/plugin.py”, line 20, in pytest_addoption
help=“Generate Allure report in the specified directory (may not exist)”)
File “/usr/local/lib/python2.7/dist-packages/_pytest/config.py”, line 756, in addoption
raise ValueError(“option names %s already added” % conflict)
ValueError: option names set([’–alluredir’]) already added


(Roy Obenon) #6

ошибку после ЧЕГО?


(Вадим) #7

Активировал, все нормально. Но при запуске тестов выдало такое


(Roy Obenon) #8

может определена где то пару раз


(Вадим) #9

Вряд ли, данным вызовом я генерирую отчет для Allure.
Меня больше волнует почему при активации виртуального окружения ничего не происходит, а в консоле выдает :

  • source config/bin/activate
    /tmp/jenkins324690781512256269.sh: 2: /tmp/jenkins324690781512256269.sh: source: not found
    Build step ‘Execute shell’ marked build as failure

(Roy Obenon) #10

по поводу алюр https://github.com/allure-framework/allure-python/issues/108
это на счет активации:
#!/bin/bash
source config...........


(Вадим) #11

Видел эту статью, не помогло (
Ошибка виртуального окружения прошла, на с аллюром все так и осталось (


(Roy Obenon) #12

обновить плагин алюра на дженкинсе как вариант