ruby/setup-ruby
, e o segundo -
actions/cache
.
- actions / cache é uma solução de cache popular para joias Ruby.
- ruby/setup-ruby — , Ruby Ruby . , «» (, GitHub Actions «action»).
Actions/cache —
Ações / cache é uma solução popular que pode ser usada para colocar dados no cache e recuperá-los do cache na próxima vez que o processo de construção do projeto for iniciado em um sistema de CI. Esta ação é frequentemente usada para projetos RoR que também usam uma ação para controlar versões Ruby em Ações GitHub
actions/setup-ruby
.
Vamos considerar um exemplo de arquivo de configuração para organizar o armazenamento em cache no GitHub Actions, 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
Vamos analisar as principais características deste arquivo:
- Você precisa especificar o caminho para o diretório que deseja armazenar em cache. No nosso caso, é -
vendor/bundle
. - Além disso, aqui geramos uma chave de
key
cache exclusiva ( ) usando informações sobre a versão do sistema operacional e o arquivoGemfile.lock
. Mudar a versão do sistema operacional ou instalar uma nova gemaGemfile.lock
que causa a mudança irá gerar um novo valorkey
. - Em seguida, precisamos configurar o bundler para que ele instale todas as nossas joias Ruby no diretório
vendor/bundle
. - Aqui você pode usar os seguintes parâmetros do bundler:
Se você estiver interessado em dar uma olhada nos arquivos YAML completos com configurações de ações do GitHub para projetos Rail - aqui , aqui , ali , aqui estão alguns de nossos artigos sobre este tópico.
Ruby / setup-ruby - instalando Ruby e armazenando gemas em cache
Acima, mencionamos que ele é frequentemente usado em projetos RoR
actions/setup-ruby
. Mas a ação
actions/setup-ruby
foi descontinuada. Recomenda-se usar uma ação em vez dela nos dias de hoje
ruby/setup-ruby
. Nele, entre outros recursos, também existe a possibilidade de armazenar dados em cache. Esta é a aparência do arquivo de configuração quando se destina a ser usado
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 você pode ver, esta opção para organizar o cache de gemas é mais simples do que o que descrevemos na seção anterior. E aqui, além disso, temos à nossa disposição o sistema de controle de versões Ruby. Em essência, se falamos sobre gemas de cache, tudo se resume a adicionar uma linha ao arquivo de configuração
bundler-cache: true
.
Mas o que você pode descobrir consultando a documentação para
ruby/setup-ruby
:
, , , . , -, , - — . , , actions/cache ( — , , , .lock-, , , ABI- ruby-head ). , , , bundler-cache: true…
Cobrimos duas maneiras de armazenar gems Ruby em ações do CI GitHub. Esperamos que qualquer pessoa que precise acelerar a construção de projetos Ruby tenha encontrado algo para pensar aqui. Mas, é claro, existem outras maneiras de acelerar os pipelines de CI, por exemplo, a execução paralela de testes.
Você está usando o GitHub Actions?