嗨@ma-sadeghi,感谢您的客气话和使用该操作:)
似乎单独设置 conda 需要比平时更长的时间。
这在任何较新的版本中是否有所改变? 你什么时候开始注意到这一点的?
只是想知道所以我们可以查明任何潜在的问题。
@conda-incubator/setup-miniconda-team 您是否注意到与描述类似的任何内容?
使用 mamba(在操作过程中没有安装我的 deps)和最新的 v2 版本对我来说也是同样的问题。
@bollwyvl我可以手动调试这个
如果有帮助(我无法共享日志):
steps:
- name: Checkout the code
uses: actions/checkout<strong i="6">@v2</strong>
- name: Cache conda
uses: actions/cache<strong i="7">@v1</strong>
env:
CACHE_NUMBER: 2
with:
path: ~/conda_pkgs_dir
key: conda-${{ runner.os }}-${{ env.CACHE_NUMBER }}-${{ hashFiles('env.yml') }}
- name: Setup conda
uses: conda-incubator/setup-miniconda<strong i="8">@v2</strong>
with:
mamba-version: "*"
channels: conda-forge,defaults
channel-priority: true
use-only-tar-bz2: true
感谢@hadim的例子。 将添加一个 PR 来检查引入回归的更改。
嗨@ma-sadeghi,感谢您的客气话和使用该操作:)
似乎单独设置 conda 需要比平时更长的时间。
这在任何较新的版本中是否有所改变? 你什么时候开始注意到这一点的?
只是想知道所以我们可以查明任何潜在的问题。
@conda-incubator/setup-miniconda-team 您是否注意到与描述类似的任何内容?
我几乎可以肯定,在我第一次使用这个 Action 时,它曾经快得多,在我头顶上,也许设置 conda 需要 1 分钟左右,现在是 3:30 分钟。 我们的项目是公开的,自从我们使用这个 Action 已经有一段时间了,所以请随时查看我们的日志以帮助调试问题: https :
从链接的日志:
Tue, 10 Nov 2020 21:09:23 GMT /usr/share/miniconda/condabin/conda update conda
Tue, 10 Nov 2020 21:09:54 GMT Collecting package metadata (repodata.json): ...working... done
Tue, 10 Nov 2020 21:10:07 GMT Solving environment: ...working... done
Tue, 10 Nov 2020 21:11:56 GMT
Tue, 10 Nov 2020 21:11:56 GMT ## Package Plan ##
所以我们有,有点不科学:
我能想到的唯一一件事是添加了conda-forge
,这会使求解器超速运行,并提供额外的 10k+ 软件包(以及它们的所有版本)。
一些选项,在我的脑海中:
auto-update-conda
为false
conda-lock
生成/检查显式规范conda-update-channels: defaults
::group::Boring stuff
::endgroup::
日志输出,以便更容易跟踪此操作运行的命令的顶级生命周期(我不得不清除我的熊猫的灰尘来做一些计时工作)micromaba
设置(再次,节省几个解决方案) https://github.com/conda-incubator/setup-miniconda/issues/75#issuecomment -698024879大多数时间花在安装 mamba 上是值得的:
相关配置:
- name: Cache conda
uses: actions/cache<strong i="9">@v2</strong>
env:
CACHE_NUMBER: 3
with:
path: ~/conda_pkgs_dir
key: conda-${{ runner.os }}-${{ env.CACHE_NUMBER }}-${{ hashFiles('env.yml') }}
- name: Setup conda
uses: conda-incubator/setup-miniconda<strong i="10">@v2</strong>
with:
python-version: 3.7
mamba-version: "*"
channels: conda-forge,defaults
channel-priority: true
use-only-tar-bz2: true
activate-environment: nova
可以使用像 micromamba 这样的东西而不是 miniconda 或 miniforge 吗?
查看详细信息,解决步骤需要花费 99% 的时间。
如果此问题得到解决,miniforge 路由将默认提供此:D
我确认最近发布的 MambaForge 安装程序使 CI 更快:
- name: Setup conda
uses: conda-incubator/setup-miniconda<strong i="6">@v2</strong>
with:
installer-url: https://github.com/conda-forge/miniforge/releases/download/4.9.2-2/Mambaforge-Linux-x86_64.sh
channel-priority: true
use-only-tar-bz2: true
activate-environment: my-env
- name: Anaconda Login
run: |
# Bypass the installation of anaconda-client
TOKEN_DIR="$HOME/.config/binstar"
TOKEN_PATH="$TOKEN_DIR/https%3A%2F%2Fapi.anaconda.org.token"
mkdir -p $TOKEN_DIR
echo -e "${ANACONDA_USER_TOKEN}\c" > $TOKEN_PATH
- name: Install Dependencies
run: mamba env update -f env.yml
(该片段还包括一种无需安装anaconda-client
即可登录 anaconda 的方法。可能对这里的某些人有所帮助。)
它如何与mamba-version
一起玩? 需要吗? 是否需要检查现有的mamba
是否已经到位?
好问题,我实际上不知道。 新安装程序默认提供mamba
,我直接使用没有mamba-version
。
我需要先登录 anaconda(参见代码段),所以我不依赖于setup-conda
来安装我的 env。
我想如果您想使用setup-conda
来安装 env 文件,则应该修改setup-conda
以确实检查 mamba 并绕过其安装(如果存在)。
也许来自@conda-incubator/setup-miniconda-team 的人可以确认?
现在有 _lot_ 更动人的部分,而不仅仅是 _use 磁盘上的内容_ vs _从 URL 获取安装程序,使用我们已经能够预测了五年的方案_,以及当前代码的行为 w/r/t 到mamba
很难推理。
我敢打赌,如果您提供mamba-version
,它_仍然_ 会尝试从conda-forge
安装mamba
conda-forge
,即使它已经存在,并且_仍然_ 使用conda
为所有_except_ 环境解决(例如conda config
)。 这些将打败已经在磁盘上安装后获得的大部分收益。 由于这样一个带有mamba
的安装程序直到 13 小时前才存在,这不是问题......我的想法是我们可能需要像conda-exe: mamba
这样的东西,如果你_知道_它已经存在了安装,即使它 _is_ 可用,您可能不想使用它,明天很可能会有来自 The Next Installer 的 The Next Tool ( lambada
, tarantala
)。
无论如何,我觉得解决其中一些问题需要进行一些非常激烈的重组......在#107(现在变成#108,#109,......等待审查)我尽最大努力让我们为下一个做好准备X,其中 X 可以是一/二文件 PR。 希望我们可以开始添加功能和解决性能问题,但我担心不首先解决当前的技术债务会使情况变得更糟。
conda-incubator/setup-miniconda@master
现在(有一段时间)支持以下组合:
miniforge-variable: Mambaforge
use-mamba: true
这应该主要回答这里的邮件......在一个完整的 conda+python+mamba 安装可以的范围内。 Micromamba 最近有很多更新,但我仍然无法评估我们是否希望将其支持/测试到与其他提供者相同的水平,但是……
最有用的评论
现在有 _lot_ 更动人的部分,而不仅仅是 _use 磁盘上的内容_ vs _从 URL 获取安装程序,使用我们已经能够预测了五年的方案_,以及当前代码的行为 w/r/t 到
mamba
很难推理。我敢打赌,如果您提供
mamba-version
,它_仍然_ 会尝试从conda-forge
安装mamba
conda-forge
,即使它已经存在,并且_仍然_ 使用conda
为所有_except_ 环境解决(例如conda config
)。 这些将打败已经在磁盘上安装后获得的大部分收益。 由于这样一个带有mamba
的安装程序直到 13 小时前才存在,这不是问题......我的想法是我们可能需要像conda-exe: mamba
这样的东西,如果你_知道_它已经存在了安装,即使它 _is_ 可用,您可能不想使用它,明天很可能会有来自 The Next Installer 的 The Next Tool (lambada
,tarantala
)。无论如何,我觉得解决其中一些问题需要进行一些非常激烈的重组......在#107(现在变成#108,#109,......等待审查)我尽最大努力让我们为下一个做好准备X,其中 X 可以是一/二文件 PR。 希望我们可以开始添加功能和解决性能问题,但我担心不首先解决当前的技术债务会使情况变得更糟。