Запуск Jenkinsfile с несколькими версиями Python - PullRequest
0 голосов
/ 19 октября 2018

У меня есть многоотраслевой конвейер, настроенный в Jenkins, который запускает Jenkinsfile, который использует pytest для тестирования скриптов и выводит результаты с помощью плагина Cobertura и проверяет качество кода с помощью плагина Pylint и Warnings.

Я хотел бы протестировать код с Python 2 и Python 3 с помощью virtualenv, но я не знаю, как это сделать в Jenkinsfile, и плагин Shining Panda не будет работать для многоотраслевых конвейеров (насколько я знаю).Любая помощь будет оценена.

1 Ответ

0 голосов
/ 19 октября 2018

Вы можете сделать это, даже используя ванильный Дженкинс (без каких-либо плагинов).«Самая большая» проблема будет с правильной параметризацией.Но начнем с самого начала.

2 версии Python

Когда вы установите 2 версии python на одну машину, у вас будет 2 разных exec-файла.Для python2 у вас будет python, а для python3 у вас будет python3.Даже если вы создадите virtualenv (используйте venv), вы получите оба из них.Таким образом, вы можете запускать юнит-тесты против обеих версий Python.Это просто вопрос выполнения правильной команды из пакетного / bash-скрипта.

Jenkins

Есть много способов выполнить это:

  • Вы можете подготовить отдельные задания для обоих тестов Python 2 и 3 и запустить их из файла jenkins
  • . Вы можете определить весь конвейер в одном файле jenkins, где каждый тест python является отдельной стадией (их можно запуститьодин за другим или одновременно)
...