blp*_*asd 8 caching pip python-3.x conda gitlab-ci
我使用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
Run Code Online (Sandbox Code Playgroud)
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"
Run Code Online (Sandbox Code Playgroud)
在构建之间重用 pip 缓存是一个很好的主意,但对 virtualenvs 做同样的事情是一个非常糟糕的主意。
这是因为 virtualenv 很容易以一种您在运行时无法真正检测到的方式变得混乱。这不仅会发生,而且发生的频率比您想象的要高,因此请避免它。
附注。向那些以艰难的方式学习的人提供建议。
归档时间: |
|
查看次数: |
896 次 |
最近记录: |