aca*_*ove 6 continuous-integration gitlab conda gitlab-ci gitlab-ci.yml
我正在尝试将.gitlab-ci.yml
文件添加到我的 gitlab 项目中;该文件看起来像:
image: continuumio/miniconda3:latest
before_script:
- conda env create -f environment.yml
- conda activate py3p10
- export MY_PROJECT_ROOT=$PWD
- export PYTHONPATH+=:$PWD
tests:
stage: test
script:
- pytest tests -W ignore::DeprecationWarning
Run Code Online (Sandbox Code Playgroud)
现在,environment.yml
包含大约 30 个软件包,当我推送到分支时,作业似乎正在下载并安装所有软件包。这使得工作大约需要 10 分钟,而且看起来相当浪费。有没有办法告诉 gitlab 缓存 conda 环境以便重用?
从:
https://docs.gitlab.com/ee/ci/caching/#cache-python-dependencies
看来我们可以缓存,但仅限于virtualenv
不 conda。从:
最佳答案不鼓励使用 conda 进行缓存。
干杯。
我期望能够缓存环境,并且完整的作业应该测试大约 20 秒。
小智 2
这是我处理事情的方式。
需要注意的是,您的环境需要保存在项目目录中。这意味着您需要使用-p
Conda 中的选项而不是-n
.
下面的示例非常模仿 Gitlab 文档中的示例。
这|| true
是必需的,因为据我所知,Conda 没有一个标志,如果使用时环境存在,该标志将跳过安装-p
。
default:
image: condaforge/miniforge-pypy3
cache:
key:
files:
- environment.yml
paths:
- .env/
before_script:
- conda env create -f environment.yml -p .env/ || true
- shopt -s expand_aliases
- alias envrun="conda run -p .env/"
- envrun python -V
pytest:
stage: test
script:
- envrun python -m pytest --junitxml=report.xml
artifacts:
when: always
reports:
junit: report.xml
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
579 次 |
最近记录: |