Как установить Python на Gitlab-CI - PullRequest
1 голос
/ 10 мая 2019

Как вы устанавливаете различные версии Python на Gitlab-CI?

В моем предыдущем опыте с Travis-CI я просто запускаю обычные команды Ubuntu / Debian, чтобы установить репозиторий deadsnakes, а затем установить любую версиюМне нужно как:

sudo add-apt-repository -y ppa:fkrull/deadsnakes
sudo apt-get -yq update
sudo apt-get -yq install python2.7 python2.7-dev python3.4 python3.4-dev python3.6 python3.6-dev python3.7 python3.7-dev

Я пробовал эту похожую конфигурацию с Gitlab-CI:

image: ubuntu:latest

before_script:
  - add-apt-repository -y ppa:fkrull/deadsnakes
  - apt-get -yq update
  - apt-get -yq install python2.7 python2.7-dev python3.4 python3.4-dev python3.6 python3.6-dev python3.7 python3.7-dev
  - python -V

test:
  script:
  - ./run_my_tests.sh

, но это не с:

/bin/bash: line 82: add-apt-repository: command not found

Я могутолько предположим, что, хотя я использую образ Ubuntu, Gitlab ограничивает доступные команды.Какой эквивалентный способ установки Python в Gitlab-CI?

Ответы [ 2 ]

2 голосов
/ 11 мая 2019

Вы должны использовать базовое изображение, содержащее все, что вам нужно.Установка чего-либо вручную должна работать в принципе, но излишне будет стоить вам минут конвейера GitLab CI.

Для python 3.7 вы можете сделать следующее:

image: python:3.7-alpine3.9

Проверьте DockerHub для получения списка всехДоступные образы Python: https://hub.docker.com/_/python

Если вам нужно протестировать разные версии Python, я рекомендую разбить ваши задачи на разные задания CI GitLab, каждое из которых использует свой базовый образ Python:

test-python-3-7:
  image: python:3.7-alpine3.9
  script:
  - ./run_my_tests.sh

test-python-2.7:
  image: python:2.7.16-alpine3.8
  script:
  - ./run_my_tests.sh

Если вам абсолютно необходимо установить материал самостоятельно, поскольку нет подходящего образа, я все равно рекомендую вам создать образ со всем необходимым, загрузить его в DockerHub или собственный реестр контейнеров GitLab, а затем использовать его в своем CIтрубопроводы.

0 голосов
/ 13 мая 2019

@ Артур Гавличек имел правильную идею. Я думал software-properties-common был установлен по умолчанию, но это не так. Кроме того, я использовал неправильное имя PPA, которое теперь называется "deadsnakes / ppa".

Функциональный файл конфигурации выглядит следующим образом:

image: ubuntu:latest

before_script:
  - apt-get -yq update
  - apt-get -yq install software-properties-common
  - add-apt-repository -y ppa:deadsnakes/ppa
  - apt-get -yq update
  - apt-get -yq install python-minimal python2.7 python2.7-dev python3.6 python3.6-dev python3.7 python3.7-dev python-pip

test:
  script:
  - ./run_my_tests.sh
...