¡Gracias por crear / mantener esta gran acción!
Parece que configurar conda
solo lleva más tiempo de lo habitual. Por ejemplo, eche un vistazo a este registro , el paso "Configurar conda". Se necesitan 3 minutos y medio para configurar conda (excluyendo la instalación de dependencias). ¿Es eso esperado o estoy haciendo algo mal?
¡Gracias otra vez!
Hola @ ma-sadeghi, gracias por las amables palabras y por usar la acción :)
Parece que configurar conda solo lleva más tiempo de lo habitual.
¿Ha cambiado esto en alguna versión más reciente? ¿Cuándo te diste cuenta de que empezaste a notar esto?
Solo me pregunto para que podamos identificar cualquier problema potencial.
@ conda-incubator / setup-miniconda-team, ¿ha notado algo similar a lo descrito?
El mismo problema para mí usando mamba (sin instalar mis departamentos durante la acción) y con la última versión v2.
@bollwyvl Me vendría bien depurar esto a mano
En caso de que ayude (no puedo compartir los 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
Gracias @hadim por el ejemplo. Agregará un PR para verificar los cambios que introdujeron la regresión.
Hola @ ma-sadeghi, gracias por las amables palabras y por usar la acción :)
Parece que configurar conda solo lleva más tiempo de lo habitual.
¿Ha cambiado esto en alguna versión más reciente? ¿Cuándo te diste cuenta de que empezaste a notar esto?
Solo me pregunto para que podamos identificar cualquier problema potencial.
@ conda-incubator / setup-miniconda-team, ¿ha notado algo similar a lo descrito?
Estoy casi seguro de que solía ser mucho más rápido la primera vez que usé esta Acción, fuera de mi cabeza, tal vez me tomó 1 minuto más o menos configurar la conda, ahora es a las 3:30 minutos. Nuestro proyecto es público y ha pasado un tiempo desde que usamos esta acción, así que no dude en consultar nuestros registros en caso de que ayude a depurar el problema: https://github.com/PMEAL/OpenPNM/actions
De los 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 ##
Así que tenemos, de forma poco científica:
Lo único que se me ocurre es que se agregará conda-forge
, lo que pone al solucionador en over-drive con paquetes adicionales de 10k + (y todas sus versiones).
Algunas opciones, fuera de mi cabeza:
auto-update-conda
en false
conda-lock
conda-update-channels: defaults
::group::Boring stuff
::endgroup::
para que el ciclo de vida de nivel superior de los comandos que ejecuta esta acción sea más fácil de rastrear (tuve que desempolvar mis pandas para hacer algunas de las cosas de sincronización)micromaba
(nuevamente, guardando un par de soluciones) https://github.com/conda-incubator/setup-miniconda/issues/75#issuecomment -698024879Por lo que vale, la mayor parte del tiempo se dedica a instalar mamba:
Configuración asociada:
- 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
¿Es posible usar algo como micromamba en lugar de miniconda o miniforge?
En cuanto a los detalles, el paso de resolución es lo que lleva el 99% del tiempo.
Si se soluciona este problema , la ruta miniforge proporcionará esto de forma predeterminada: D
Confirmo que el instalador MambaForge lanzado recientemente hace que el CI sea más 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
(el fragmento también incluye una forma de iniciar sesión en anaconda sin la necesidad de instalar anaconda-client
. Podría ser útil para algunos aquí).
¿Cómo se juega con mamba-version
? ¿Es necesario? ¿Es necesario comprobar si ya existe un mamba
existente?
Buena pregunta y en realidad no lo sé. El nuevo instalador envía mamba
por defecto y lo uso directamente sin mamba-version
.
Primero necesito iniciar sesión en anaconda primero (ver fragmento), así que no confío en setup-conda
para instalar mi env.
Supongo que si desea usar setup-conda
para instalar un archivo env, setup-conda
debería modificarse para comprobar si existe mamba y omitir su instalación si existe.
¿Quizás alguien de @ conda-incubator / setup-miniconda-team pueda confirmarlo o no?
Hay muchas más piezas en movimiento que vienen ahora que solo usar lo que hay en el disco en lugar de obtener un instalador de una URL con un esquema que hemos podido predecir durante media década, y el comportamiento del código actual w / r / t a mamba
es difícil de razonar.
Apuesto a que, si proporciona un mamba-version
, _todavía_ intentará instalar mamba
desde conda-forge
, incluso si ya está allí, y _todavía_ usará conda
para todo _excepto_ que el entorno resuelva (por ejemplo, conda config
). Estos derrotarían la mayoría de las ganancias de tenerlo ya en el disco, después del instalador. Dado que un instalador de este tipo con mamba
no existía hasta hace 13 horas, esto no fue un problema ... creo que es probable que necesitemos algo como conda-exe: mamba
si _ sabes_ que ya está instalado, ya que incluso si _est_ disponible, es posible que no desee utilizarlo, y mañana bien puede haber The Next Tool ( lambada
, tarantala
) de The Next Installer.
De todos modos, sentí que solucionar algunos de estos problemas requiere una reestructuración bastante drástica ... en el n. ° 107 (que se está convirtiendo en el n. ° 108, n. ° 109, ... pendiente de revisión) Hice un gran esfuerzo para prepararnos para The Next X, donde X puede ser un PR de uno o dos archivos. Con suerte, podemos llegar a donde podemos comenzar a agregar funciones y abordar el rendimiento, pero me temo que no abordar primero la deuda técnica actual empeorará la situación.
conda-incubator/setup-miniconda@master
ahora (por un tiempo) ha apoyado la combinación de:
miniforge-variable: Mambaforge
use-mamba: true
Lo que debería responder principalmente al correo aquí ... en la medida en que una instalación completa de conda + python + mamba pueda hacerlo. Micromamba ha tenido muchas actualizaciones recientemente, pero todavía no he podido evaluar si queremos admitirlo / probarlo al mismo nivel que los otros proveedores, todavía ...
Comentario más útil
Hay muchas más piezas en movimiento que vienen ahora que solo usar lo que hay en el disco en lugar de obtener un instalador de una URL con un esquema que hemos podido predecir durante media década, y el comportamiento del código actual w / r / t a
mamba
es difícil de razonar.Apuesto a que, si proporciona un
mamba-version
, _todavía_ intentará instalarmamba
desdeconda-forge
, incluso si ya está allí, y _todavía_ usaráconda
para todo _excepto_ que el entorno resuelva (por ejemplo,conda config
). Estos derrotarían la mayoría de las ganancias de tenerlo ya en el disco, después del instalador. Dado que un instalador de este tipo conmamba
no existía hasta hace 13 horas, esto no fue un problema ... creo que es probable que necesitemos algo comoconda-exe: mamba
si _ sabes_ que ya está instalado, ya que incluso si _est_ disponible, es posible que no desee utilizarlo, y mañana bien puede haber The Next Tool (lambada
,tarantala
) de The Next Installer.De todos modos, sentí que solucionar algunos de estos problemas requiere una reestructuración bastante drástica ... en el n. ° 107 (que se está convirtiendo en el n. ° 108, n. ° 109, ... pendiente de revisión) Hice un gran esfuerzo para prepararnos para The Next X, donde X puede ser un PR de uno o dos archivos. Con suerte, podemos llegar a donde podemos comenzar a agregar funciones y abordar el rendimiento, pero me temo que no abordar primero la deuda técnica actual empeorará la situación.