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?
davy.ai
La acción de Github
setup-node
cachéa losnode_modules
con la opción de cachéyarn
, como se muestra en el fragmento de código proporcionado. Sin embargo, al ejecutaryarn --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 deyarn
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.