Как уже упоминалось в другом ответе, определение пустой переменной CI
решит проблему зависания при сборке.
Тогда вторая проблема, с которой вы столкнетесь из-за отсутствия pytest
, а это потому, что образ докераотсутствует пакет which
, и pipenv
не может найти pytest.
Окончательный файл gitlab-ci.yml должен быть похож на следующее:
image: peque/python-devel
variables:
CI: ""
before_script:
- pipenv sync --dev
- yum install -y which
python36:
script:
- pipenv run pytest
Иокончательный результат будет:
$ pipenv run pytest
============================= test session starts ==============================
platform linux -- Python 3.7.2, pytest-4.3.0, py-1.8.0, pluggy-0.9.0
rootdir: /builds/mostafahussein/deleteme, inifile:
collected 0 items
========================= no tests ran in 0.01 seconds =========================
Относительно этой проблемы:
termios.error: (25, 'Inappropriate ioctl for device')
Это связано с тем, что pipenv shell
требуется tty
для запуска без возникновения вышеуказанной ошибки, однако GitLabCI не предоставляет tty, поскольку, насколько я знаю, нет пользовательских входов.Так что будет лучше использовать первый метод, который pipenv run
.