如何在Gitlab-CI上安装各种版本的Python?
在我之前使用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也会限制可用的命令。在Gitlab-CI中安装Python的等效方法是什么?
发布于 2019-05-14 03:56:35
@Arthur Havlicek有一个正确的想法。我以为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
发布于 2019-05-11 15:58:43
您应该使用包含您所需的所有内容的基础图像。原则上手动安装应该是可行的,但是会不必要地花费您的GitLab CI管道分钟。
对于python 3.7,您可以执行以下操作:
image: python:3.7-alpine3.9
有关所有可用的python图像的列表,请查看DockerHub:https://hub.docker.com/_/python
如果您需要使用不同的python版本进行测试,我建议将您的任务拆分到不同的GitLab CI任务中,每个任务使用不同的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管道中使用它。
https://stackoverflow.com/questions/56084389
复制相似问题