gpt4 book ai didi

python-3.x - gitlab-ci 的缓存虚拟环境

转载 作者:行者123 更新时间:2023-12-02 17:27:21 24 4
gpt4 key购买 nike

我使用 Gitlab CI 脚本缓存了 Pip 包,所以这不是问题。

现在我还想捕获一个Conda虚拟环境,因为它可以减少设置环境的时间。

我缓存了一个虚拟环境。不幸的是,最后需要很长时间才能缓存所有 venv 文件。

我尝试仅缓存 $CI_PROJECT_DIR/myenv/lib/python3.6/site-packages 文件夹,它似乎减少了管道的运行时间。

我的问题是:我做得正确吗?

脚本如下:

gitlab-ci.yml

image: continuumio/miniconda3:latest

cache:
paths:
- .pip
- ls -l $CI_PROJECT_DIR/myvenv/lib/python3.6/site-packages
- $CI_PROJECT_DIR/myvenv/lib/python3.6/site-packages

before_script:
- chmod +x gitlab-ci.sh
- ./gitlab-ci.sh

stages:
- test

test:
stage: test
script:
- python eval.py

gitlab-ci.sh

#!/usr/bin/env bash
ENV_NAME=myenv
ENV_REQUIREMENTS=requirements.txt

if [ ! -d $ENV_NAME ]; then
echo "Environment $ENV_NAME does not exist. Creating it now!"
conda create --path --prefix "$CI_PROJECT_DIR/$ENV_NAME"
fi

echo "Activating environment: $CI_PROJECT_DIR/$ENV_NAME"
source activate "$CI_PROJECT_DIR/$ENV_NAME"

echo "Installing PIP"
conda install -y pip

echo "PIP: installing required packages"
echo `which pip`
pip --cache-dir=.pip install -r "$ENV_REQUIREMENTS"

最佳答案

在构建之间重用 pip 缓存是一个非常好的主意,但对 virtualenvs 执行相同的操作是一个非常糟糕的主意。

这是因为 virtualenv 很容易变得困惑,而您在运行时无法真正检测到。这种情况不仅会发生,而且发生的频率比您想象的要高,因此请避免这种情况。

PS。来自经历过惨痛教训的人的建议。

关于python-3.x - gitlab-ci 的缓存虚拟环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48540257/

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