构建后测试将在gitlab ci的新环境中运行

构建后测试将在gitlab ci的新环境中运行,gitlab,gitlab-ci,gitlab-ci-runner,Gitlab,Gitlab Ci,Gitlab Ci Runner,我将以下配置设置为.gitlab-ci.yml 但我发现在成功通过构建阶段后 将创建一个名为venv的虚拟视频),看起来 在测试阶段,您将获得一个全新的环境(有 根本没有venv目录)。所以我想知道我应该设置吗 它将在每个阶段(构建/测试/部署)运行。这样做对吗 before_script: - uname -r types: - build - test - deploy job_install: type: build script: - apt-get

我将以下配置设置为.gitlab-ci.yml 但我发现在成功通过构建阶段后 将创建一个名为venv的虚拟视频),看起来 在测试阶段,您将获得一个全新的环境(有 根本没有venv目录)。所以我想知道我应该设置吗 它将在每个阶段(构建/测试/部署)运行。这样做对吗

before_script:
  - uname -r 

types:
  - build
  - test
  - deploy

job_install:
  type: build
  script:
    - apt-get update
    - apt-get install -y libncurses5-dev
    - apt-get install -y libxml2-dev libxslt1-dev
    - apt-get install -y python-dev libffi-dev libssl-dev 
    - apt-get install -y python-virtualenv
    - apt-get install -y python-pip
    - virtualenv --no-site-packages venv
    - source venv/bin/activate
    - pip install -q -r requirements.txt
    - ls -al
  only:
    - master

job_test:
  type: test
  script:
    - ls -al
    - source venv/bin/activate
    - cp crawler/settings.sample.py crawler/settings.py
    - cd crawler 
    - py.test -s -v 
  only:
    - master

adasd

Gitlab CI作业应该是独立的,因为它们可以在不同的跑步者身上运行。这不是问题。有两种方法可以在阶段之间传递文件:

  • 正确的方法。使用人工制品
  • 走错了路。使用缓存。使用缓存键“hack”。仍然需要同样的跑步者
所以,是的,gitlab认为在脚本之前,您的工作所依赖的一切都应该在脚本中实现

工件示例:

  artifacts:
   when: on_success
   expire_in: 1 mos
   paths:
    - some_project_files/
缓存示例:

cache:
  key: "$CI_BUILD_REF_NAME"
  untracked: true
  paths:
   - node_modules/
   - src/bower_components/

对于正确的运行环境,我建议使用带有包含apt get依赖项的映像的docker。并使用人工制品在作业之间传递作业结果。请注意,artefact还上传到gitlab web界面并能够下载它们。因此,如果它们非常繁重,请及时使用小型过期软件,以便在所有工作完成后将其删除。

我基本上也有相同的问题。我在感谢您的回复时打开了一个问题。我没有成功地在上面的
job\u测试
job\u安装
中组合
工件: