Obrigado por criar / manter este grande Action!
Parece que configurar conda
sozinho leva mais tempo do que o normal. Por exemplo, dê uma olhada neste log , a etapa "Configurar conda". Leva 3 minutos e meio para configurar o conda (excluindo a instalação de dependências). Isso é esperado ou estou fazendo algo errado?
Agradeço novamente!
Olá @ ma-sadeghi, obrigado pelas amáveis palavras e por usar a ação :)
Parece que configurar o conda sozinho leva mais tempo do que o normal.
Isso mudou em alguma versão mais recente? Quando você percebeu que começou a perceber isso?
Só estou pensando para que possamos identificar qualquer problema potencial.
@ conda-incubator / setup-miniconda-team, você notou algo semelhante ao descrito?
Mesmo problema para mim usando mamba (sem instalar meu deps durante a ação) e com a última versão v2.
@bollwyvl eu poderia usar a depuração manual disso
Caso ajude (não consigo compartilhar os registros):
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
Obrigado @hadim pelo exemplo. Adicionará um PR para verificar as mudanças que introduziram a regressão.
Olá @ ma-sadeghi, obrigado pelas amáveis palavras e por usar a ação :)
Parece que configurar o conda sozinho leva mais tempo do que o normal.
Isso mudou em alguma versão mais recente? Quando você percebeu que começou a perceber isso?
Só estou pensando para que possamos identificar qualquer problema potencial.
@ conda-incubator / setup-miniconda-team, você notou algo semelhante ao descrito?
Tenho quase certeza que costumava ser muito mais rápido na primeira vez que usei essa ação, de cabeça, talvez demorasse 1 minuto ou mais para configurar o conda, agora são 3:30 minutos. Nosso projeto é público e já faz um tempo que estamos usando esta ação, então fique à vontade para verificar nossos registros caso isso ajude a depurar o problema: https://github.com/PMEAL/OpenPNM/actions
Dos registros vinculados:
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 ##
Portanto, temos, de forma um tanto não científica:
A única coisa em que consigo pensar é conda-forge
sendo adicionado, o que coloca o solucionador em over-drive com 10k + pacotes extras (e todas as suas versões).
Algumas opções, em cima da minha cabeça:
auto-update-conda
para false
conda-lock
conda-update-channels: defaults
::group::Boring stuff
::endgroup::
log de saída para que o ciclo de vida de nível superior dos comandos que esta ação executa sejam mais fáceis de rastrear (tive que tirar a poeira dos meus pandas para fazer algumas das coisas de tempo)micromaba
(novamente, economizando algumas soluções) https://github.com/conda-incubator/setup-miniconda/issues/75#issuecomment -698024879Pois vale a pena gastar a maior parte do tempo na instalação do mamba:
Configuração associada:
- 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
É possível usar algo como micromamba em vez de miniconda ou miniforge?
Observar os detalhes da etapa de solução é o que leva 99% do tempo.
Se esse problema for resolvido, a rota do miniforge fornecerá isso por padrão: D
Confirmo que o instalador MambaForge lançado recentemente torna o CI mais rápido:
- 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
(o trecho também inclui uma maneira de fazer o login no anaconda sem a necessidade de instalar anaconda-client
. Pode ser útil para alguns aqui.)
Como é que joga com mamba-version
? É necessário? É necessário verificar se um mamba
já está instalado?
Boa pergunta e eu realmente não sei. O novo instalador vem mamba
por padrão e eu uso diretamente sem mamba-version
.
Eu preciso primeiro fazer o login no anaconda (veja o trecho), então não confio em setup-conda
para instalar meu env.
Eu acho que se você quiser usar setup-conda
para instalar um arquivo env, setup-conda
deve ser modificado para verificar se há mamba e ignorar sua instalação, se ela existir.
Talvez alguém da @conda-incubator / setup-miniconda-team possa confirmar ou não?
Existem _muito_ mais peças móveis surgindo agora do que apenas _usar o que está no disco_ vs _obter um instalador de uma URL com um esquema que pudemos prever por meia década_ e o comportamento do código atual w / r / t para mamba
é difícil de raciocinar.
Aposto que se você fornecer um mamba-version
, _ainda_ tentará instalar mamba
de conda-forge
, mesmo que já esteja lá, e _ainda_ use conda
para tudo _exceto_ o ambiente resolver (por exemplo, conda config
). Isso prejudicaria a maioria dos ganhos de já tê-lo no disco, pós-instalador. Uma vez que esse instalador com mamba
não existia até 13 horas atrás, isso não foi um problema ... meu pensamento é que provavelmente precisaremos de algo como conda-exe: mamba
se você _sabe_ já instalado, mesmo se _estar_ disponível, você pode não querer usá-lo, e amanhã pode muito bem haver a próxima ferramenta ( lambada
, tarantala
) do próximo instalador.
De qualquer forma, achei que consertar alguns desses problemas requer uma reestruturação bem drástica ... no nº 107 (que está se tornando nº 108, nº 109, ... com revisão pendente) Fiz o melhor esforço para nos preparar para o The Next X, onde X pode ser um arquivo PR de um / dois. Esperançosamente, podemos chegar onde podemos começar a adicionar recursos e abordar o desempenho, mas temo que não resolver primeiro o problema técnico atual piorará a situação.
conda-incubator/setup-miniconda@master
agora (por um tempo) suportou a combinação de:
miniforge-variable: Mambaforge
use-mamba: true
Que deve principalmente responder ao e-mail aqui ... na medida em que uma instalação completa conda + python + mamba pode. Micromamba teve muitas atualizações recentemente, mas eu ainda não fui capaz de avaliar se queremos suportá-lo / testá-lo no mesmo nível que os outros provedores, ainda ...
Comentários muito úteis
Existem _muito_ mais peças móveis surgindo agora do que apenas _usar o que está no disco_ vs _obter um instalador de uma URL com um esquema que pudemos prever por meia década_ e o comportamento do código atual w / r / t para
mamba
é difícil de raciocinar.Aposto que se você fornecer um
mamba-version
, _ainda_ tentará instalarmamba
deconda-forge
, mesmo que já esteja lá, e _ainda_ useconda
para tudo _exceto_ o ambiente resolver (por exemplo,conda config
). Isso prejudicaria a maioria dos ganhos de já tê-lo no disco, pós-instalador. Uma vez que esse instalador commamba
não existia até 13 horas atrás, isso não foi um problema ... meu pensamento é que provavelmente precisaremos de algo comoconda-exe: mamba
se você _sabe_ já instalado, mesmo se _estar_ disponível, você pode não querer usá-lo, e amanhã pode muito bem haver a próxima ferramenta (lambada
,tarantala
) do próximo instalador.De qualquer forma, achei que consertar alguns desses problemas requer uma reestruturação bem drástica ... no nº 107 (que está se tornando nº 108, nº 109, ... com revisão pendente) Fiz o melhor esforço para nos preparar para o The Next X, onde X pode ser um arquivo PR de um / dois. Esperançosamente, podemos chegar onde podemos começar a adicionar recursos e abordar o desempenho, mas temo que não resolver primeiro o problema técnico atual piorará a situação.