ruby/setup-ruby
, et le second -
actions/cache
.
- actions / cache est une solution de mise en cache populaire pour les gemmes Ruby.
- ruby/setup-ruby — , Ruby Ruby . , «» (, GitHub Actions «action»).
Actions/cache —
Actions / cache est une solution populaire qui peut être utilisée pour placer des données dans le cache et pour les récupérer à partir du cache la prochaine fois que le processus de création de projet démarre dans un système CI. Cette action est souvent utilisée pour les projets RoR qui utilisent également une action pour contrôler les versions Ruby dans les actions GitHub
actions/setup-ruby
.
Prenons un exemple de fichier de configuration pour organiser la mise en cache dans GitHub Actions, qui utilise
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
Analysons les principales caractéristiques de ce fichier:
- Vous devez spécifier le chemin d'accès au répertoire que vous souhaitez mettre en cache. Dans notre cas, c'est -
vendor/bundle
. - De plus, nous générons ici une clé de
key
cache unique ( ) en utilisant des informations sur la version du système d'exploitation et le fichierGemfile.lock
. La modification de la version du système d'exploitation ou l'installation d'une nouvelle gemme àGemfile.lock
l'origine du changement générera une nouvelle valeurkey
. - Ensuite, nous devons configurer le bundler pour qu'il installe toutes nos gemmes Ruby dans le répertoire
vendor/bundle
. - Ici, vous pouvez utiliser les paramètres de bundler suivants:
Si vous souhaitez consulter les fichiers YAML complets avec les paramètres d'actions GitHub pour les projets ferroviaires - ici , ici , là , voici quelques-uns de nos articles sur ce sujet.
Ruby / setup-ruby - Installation de Ruby et mise en cache des gemmes
Ci-dessus, nous avons mentionné qu'il est souvent utilisé dans les projets RoR
actions/setup-ruby
. Mais l'action
actions/setup-ruby
était obsolète. Il est recommandé d'utiliser une action au lieu de celle-ci ces jours-ci
ruby/setup-ruby
. Dans celui-ci, entre autres fonctionnalités, il y a également la possibilité de mettre en cache des données. Voici à quoi ressemble le fichier de configuration lorsqu'il est destiné à être utilisé
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
Comme vous pouvez le voir, cette option pour organiser la mise en cache des gemmes est plus simple que ce que nous avons décrit dans la section précédente. Et ici, en plus, nous avons à notre disposition le système de contrôle de version Ruby. En substance, si nous parlons de la mise en cache des gemmes, tout se résume à ajouter une ligne au fichier de configuration
bundler-cache: true
.
Mais ce que vous pouvez découvrir en vous référant à la documentation pour
ruby/setup-ruby
:
, , , . , -, , - — . , , actions/cache ( — , , , .lock-, , , ABI- ruby-head ). , , , bundler-cache: true…
Nous avons couvert deux façons de mettre en cache les gemmes Ruby dans les actions CI GitHub. Nous espérons que tous ceux qui ont besoin d'accélérer la construction de projets Ruby ont trouvé ici matière à réflexion. Mais, bien sûr, il existe d'autres moyens d'accélérer les pipelines CI, par exemple, l' exécution parallèle de tests.
Utilisez-vous des actions GitHub?