问题
目前我正在为托管在Gitlab上的Python项目编写一个.gitlab-ci.yml
文件。
我不知道应该在哪里设置虚拟环境和从requirements.txt
中安装依赖项。
我的主要资源是Gitlab Python.gitlab-ci.yml模板。
在那里,使用before_script
关键字在每个作业之前安装了virtualenv,并创建了名为' venv '的虚拟环境:
before_script:
- python -V # Print out python version for debugging
- pip install virtualenv
- virtualenv venv
- source venv/bin/activate
此外,'venv' 的缓存也会被设置:
cache:
paths:
- .cache/pip
- venv/
我希望在我的脚本中做同样的事情,并从我的 repo 中安装
requirements.txt
。然后,我想在不同的阶段执行代码分析(pylint、flake8)和测试。如果将 pip install -r requirements.txt
添加到 before_script
,它会在每个作业中执行,这会产生不必要的日志。问题:是否更合理地进行以下操作:
- 定义缓存的子目录。(如上所述)
- 只在
before_script
中调用source venv/bin/activate
。 - 添加一项工作或阶段,调用
virtualenv venv
生成一个环境变量 一次。该工作还调用pip install -r requirements.txt
一次。