ruby/setup-ruby
, y el segundo -
actions/cache
.
- actions / cache es una popular solución de almacenamiento en caché para las gemas Ruby.
- ruby/setup-ruby — , Ruby Ruby . , «» (, GitHub Actions «action»).
Actions/cache —
Acciones / caché es una solución popular que se puede utilizar para colocar datos en el caché y recuperarlos del caché la próxima vez que se inicie el proceso de construcción del proyecto en un sistema de CI. Esta acción se usa a menudo para proyectos RoR que también usan una acción para controlar versiones de Ruby en Acciones de GitHub
actions/setup-ruby
.
Consideremos un ejemplo de un archivo de configuración para organizar el almacenamiento en caché en Acciones de GitHub, que usa
actions/cache
:
# .github/workflows/main.yml
name: Main
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: vendor/bundle
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gems-
- name: Bundle install
env:
RAILS_ENV: test
run: |
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
Analicemos las principales características de este archivo:
- Debe especificar la ruta al directorio que desea almacenar en caché. En nuestro caso, es -
vendor/bundle
. - Además, aquí generamos una clave de
key
caché única ( ) utilizando información sobre la versión del sistema operativo y el archivoGemfile.lock
. Cambiar la versión del sistema operativo o instalar una nueva gemaGemfile.lock
que provoque el cambio generará un nuevo valorkey
. - A continuación, necesitamos configurar el paquete para que instale todas nuestras gemas Ruby en el directorio
vendor/bundle
. - Aquí puede utilizar los siguientes parámetros del paquete:
Si está interesado en echar un vistazo a los archivos YAML completos con la configuración de Acciones de GitHub para proyectos ferroviarios, aquí , aquí , allá , aquí están algunos de nuestros artículos sobre este tema.
Ruby / setup-ruby: instalación de Ruby y almacenamiento en caché de gemas
Anteriormente, mencionamos que se usa a menudo en proyectos RoR
actions/setup-ruby
. Pero la acción
actions/setup-ruby
quedó en desuso. Se recomienda utilizar una acción en lugar de ella en estos días
ruby/setup-ruby
. En él, entre otras características, también existe la posibilidad de almacenar datos en caché. Así es como se ve el archivo de configuración cuando está destinado a ser utilizado
ruby/setup-ruby
:
# .github/workflows/main.yml
name: Main
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
# .ruby-version
ruby-version: 2.7
# 'bundle install'
bundler-cache: true
# RSpec-
- run: bundle exec rspec
Como puede ver, esta opción para organizar el almacenamiento en caché de gemas es más simple de lo que describimos en la sección anterior. Y aquí, además, tenemos a nuestra disposición el sistema de control de versiones Ruby. En esencia, si hablamos de caché de gemas, todo se reduce a agregar una línea al archivo de configuración
bundler-cache: true
.
Pero lo que puede averiguar consultando la documentación para
ruby/setup-ruby
:
, , , . , -, , - — . , , actions/cache ( — , , , .lock-, , , ABI- ruby-head ). , , , bundler-cache: true…
Hemos cubierto dos formas de almacenar en caché las gemas Ruby en Acciones de CI GitHub. Esperamos que cualquiera que necesite acelerar la construcción de proyectos Ruby haya encontrado algo en lo que pensar aquí. Pero, por supuesto, hay otras formas de acelerar las canalizaciones de CI, por ejemplo, la ejecución paralela de pruebas.
¿Estás usando acciones de GitHub?