gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 01:14:18 25 4
gpt4 key购买 nike

我有以下配置为 .gitlab-ci.yml
但我在成功通过构建阶段后发现(其中
将创建一个名为 venv 的 virtualenv),似乎
在测试阶段你会得到一个全新的环境(有
根本没有 venv 目录)。所以我想知道我应该把设置
before_script 中的脚本因此它将在每个阶段(构建/测试/部署)运行。这是正确的方法吗?

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

阿达斯德

最佳答案

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/

    对于正确的运行环境,我建议将 docker 与包含 apt-get 依赖项的图像一起使用。并使用人工制品在作业之间传递作业结果。请注意,artefact 也上传到 gitlab 网络界面并能够下载它们。因此,如果它们很重,请使用较小的 expire_in 时间,以便在所有工作完成后删除它们。

    关于gitlab - 构建后的测试将在 gitlab-ci 的新环境中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31623924/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com