我有3个不同的工作岗位以下YML配置文件:
stages:
- build
- test
- analyze
build:
stage: build
script:
- apt-get update -qy
- apt-get install -y python3-dev python3-pip
- pip3 install -r requirements.txt
test:
stage: test
script:
- coverage run --source='.' manage.py test
cache:
paths:
- .coverage
analyze:
stage: analyze
script:
- flake8
- coverage report
在第一个工作,我安装的要求,其中有覆盖或flake8。但是,这些工具在下面的作业中使用。我一直在使用“依赖”或“高速缓存”试过,但没有奏效:仅将文件/项目的根目录下迪尔斯可以共享,而不是在/用户/ local / bin中的二进制文件。
我试图表明画中画安装别的目录,但二进制安装在/用户/ local / bin目录。
我已经找到了解决方法是在每个作业安装依赖关系,但我认为这是不太理想的解决方案。
我认为必须有一个更好的解决方案。
谢谢。
我只是找到了解决办法,至少对python3(足以让我):
python3具有用于管理虚拟ENVS一个内置的工具:VENV
使用VENV,我们可以在项目的根目录创建虚拟ENV,缓存此目录,并且使我们在每个作业虚拟ENV。
variables:
VENV_NAME: "env"
cache:
paths:
- $VENV_NAME
first_job:
script:
- apt-get update -qy
- apt-get install -y python3-dev python3-pip python3-venv
- python3 -m venv $VENV_NAME
- source $VENV_NAME/bin/activate
- pip3 install -r requirements.txt
next_jobs:
script:
- source $VENV_NAME/bin/activate
- echo "hello world!"
PD:不要忘了从覆盖范围或其他分析工具排除虚拟ENV目录