如何避免在.gitlab-ci.yml中的每个阶段之前安装requirements.txt?

New*_*ler 5 python continuous-integration gitlab requirements.txt gitlab-ci

我有一个.gitlab-ci.yml看起来像这样的:

image: "python:3.7"

before_script:
  - pip install -r requirements.txt

stages:
  - stageA
  - stageB

stage_a:
  stage: stageA
  script:
  - run_some_python_scripts

stage_b:
  stage: stageB
  script:
  - run_more_python_scripts
Run Code Online (Sandbox Code Playgroud)

通过此设置,requirements.txt在每个阶段之前安装。我只需要安装一次,这样 和 都stageA可以stageB使用。

我怎样才能实现这个目标?

Rek*_*vni 4

我发现,如果文件requirements.txt变化不大,一种效果很好的选择是将其烘焙到您自己的 Docker 映像中。

我个人不太喜欢的另一个选项是使用 a,virtualenv然后在 上使用 GitLab 的缓存virtualenv,但是如果有很多pip包,这可能会有点慢。