Используйте колеса в gitlab-ci, чтобы избежать долгих компиляций

В моем gitlab-ci.yml я тестирую некоторый код, используя pandas, scikit и scipy. Большую часть времени в сборке/конвейере тратится на компиляцию numpy, scipy,...

Могу ли я создать колесо и с помощью ADD просто скопировать и установить уже сделанное колесо?

Прошу последнюю версию pip::

$ cat requirements/base.txt
pip>=8.1.2
setuptools>=20.7.0
wheel>=0.29
numpy
scipy
scikit-learn

Вот мой .gitlab-ci и эффективно трачу каждый раз много:

$ cat .gitlab-ci

image : python:2

test:
  script:
  - apt-get update -qy
  - apt-get install -y python-dev python-pip python-virtualenv
  - pip install -r requirements/base.txt
  - ...

Пытаясь ответить на @ev-br здесь вывод конвейера gitlab-ci, вы можете увидеть, что pandas — это не колесо, а pandas-0.19.1.tar.gz.:

$ pip install -r requirements.txt --cache-dir=/cache
Requirement already satisfied: pip>=9 in /usr/local/lib/python3.6/site-packages (from -r requirements.txt (line 1))
Requirement already satisfied: setuptools>=26 in /usr/local/lib/python3.6/site-packages (from -r requirements.txt (line 2))
Collecting wheel>=0.29 (from -r requirements.txt (line 3))
  Using cached wheel-0.29.0-py2.py3-none-any.whl
Collecting setuptools_scm (from -r requirements.txt (line 4))
  Using cached setuptools_scm-1.15.0-py2.py3-none-any.whl
Collecting setuptools_scm_git_archive (from -r requirements.txt (line 5))
  Using cached setuptools_scm_git_archive-1.0-py2.py3-none-any.whl
Collecting pandas==0.19.1 (from -r requirements.txt (line 6))
  Downloading pandas-0.19.1.tar.gz (8.4MB)
Collecting python-dateutil>=2 (from pandas==0.19.1->-r requirements.txt (line 6))
  Using cached python_dateutil-2.6.0-py2.py3-none-any.whl

person user3313834    schedule 02.01.2017    source источник
comment
На самом деле это не решение проблемы с колесом, но вы можете создать собственный док-контейнер со всем, что вам нужно (даже создать его и сохранить в gitlab), и таким образом полностью пропустить установку.   -  person Jakub Kania    schedule 04.01.2017


Ответы (1)


Если ваш пункт достаточно новый (версия 8 или выше IIRC), вы можете просто автоматически использовать колеса manulinux, pip installing numpy и scipy. Попробуйте pip install --upgrade pip или подобное на CI.

person ev-br    schedule 02.01.2017
comment
Уместен вопрос, почему он не использует много колес Linux. Ответить можно только просмотрев журналы сборки. - person ev-br; 02.01.2017