es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Configuración de Node: restaurando la caché pero todavía tarda un poco en ejecutar yarn.

El paquete de la acción de GitHub setup-node almacena en caché node_modules con esta configuración:

  - utiliza: actions/setup-node@v2
    con:
      version de nodo: '14.15.5'
      caché: 'yarn'

Puedo ver que se restaura una caché.

/home/runner/.cache/yarn/v6
Recibido 0 de 138278798 (0.0%), 0.0 MBs/sec
Recibido 113246208 de 138278798 (81.9%), 53.4 MBs/sec
Recibido 138278798 de 138278798 (100.0%), 55.8 MBs/sec
Tamaño de caché: ~132 MB (138278798 B)
/usr/bin/tar –use-compress-program zstd -d -xf /home/runner/work/_temp/b44b9064-7157-4afd-a342-f81e1005ef1d/cache.tzst -P -C /home/runner/work/app-frontend/app-frontend
La caché se ha restaurado correctamente.

Pero cuando hago un yarn --frozen-lockfile (siempre hacemos commit de nuestros lockfiles), veo esta salida:

Ejecutar yarn –frozen-lockfile
yarn install v1.22.17
[1/4] Resolviendo paquetes…
[2/4] Obteniendo paquetes…
[3/4] Vinculando dependencias…

y el paso aún tarda 44 segundos.

Estoy confundido acerca de por qué sucede esto.

Implementé mi propia caché de esta manera:

  - nombre: Caché de módulos
    utiliza: actions/cache@v2
    con:
      path: '**/node_modules'
      key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}

Y ahora, cuando ejecuto yarn --frozen-lockfile, el paso se completa en 3 segundos y produce la siguiente salida:

Ejecutar yarn –frozen-lockfile
yarn install v1.22.17
[1/4] Resolviendo paquetes…
success Already up-to-date.
Done in 1.21s.

Estoy confundido en cuanto a por qué esto sucede. Obviamente, estoy malinterpretando algo en la forma en que algo (yar, caché setup-node, ¿algo más?) funciona.

El objetivo es hacer que la compilación sea lo más rápida posible (siempre y cuando sea correcta, por supuesto).

¿Puede alguien ayudarme a entender por qué setup-node está restaurando una caché y aún así yarn tarda 44 segundos en trabajar?

Tags:  ,

Answer

  1. Avatar for davy.ai

    La acción de Github setup-node cachéa los node_modules con la opción de caché yarn, como se muestra en el fragmento de código proporcionado. Sin embargo, al ejecutar yarn --frozen-lockfile, el proceso aún tarda 44 segundos, lo cual es confuso ya que la caché se restauró correctamente.

    Para resolver este problema, el usuario implementó su propio proceso de caché utilizando la acción de Github actions/cache, como se muestra en el fragmento de código proporcionado. Este cambio resultó en que el proceso de yarn se completara en solo 3 segundos.

    Es importante tener en cuenta que el objetivo es lograr la compilación más rápida posible asegurando la corrección. No está claro por qué la caché de setup-node no está funcionando como se esperaba, pero la implementación del propio proceso de caché del usuario ha resuelto el problema.

Comments are closed.