ruby/setup-ruby
, dan yang kedua -
actions/cache
.
- actions / cache adalah solusi caching yang populer untuk gem Ruby.
- ruby/setup-ruby β , Ruby Ruby . , «» (, GitHub Actions Β«actionΒ»).
Actions/cache β
Tindakan / cache adalah solusi populer yang dapat digunakan untuk menempatkan data di cache dan mengambilnya dari cache saat proses pembuatan proyek dimulai di sistem CI lagi. Tindakan ini sering digunakan untuk proyek RoR yang juga menggunakan tindakan untuk mengontrol versi Ruby di Tindakan GitHub
actions/setup-ruby
.
Mari pertimbangkan contoh file konfigurasi untuk mengatur caching di GitHub Actions, yang menggunakan
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
Mari menganalisis fitur utama file ini:
- Anda perlu menentukan jalur ke direktori yang ingin Anda cache. Dalam kasus kami, ini adalah -
vendor/bundle
. - Selain itu, di sini kami membuat kunci
key
cache unik ( ) menggunakan informasi tentang versi sistem operasi dan fileGemfile.lock
. Mengubah versi sistem operasi atau memasang permata baruGemfile.lock
yang menyebabkan perubahan akan menghasilkan nilai barukey
. - Selanjutnya, kita perlu mengkonfigurasi bundler sehingga ia menginstal semua permata Ruby kita ke dalam direktori
vendor/bundle
. - Di sini Anda dapat menggunakan parameter bundler berikut:
Jika Anda tertarik untuk melihat file YAML lengkap dengan pengaturan Tindakan GitHub untuk proyek Rail - di sini , di sini , di sana , berikut beberapa artikel kami tentang topik ini.
Ruby / setup-ruby - menginstal Ruby dan menyimpan permata di cache
Di atas, kami menyebutkan bahwa ini sering digunakan dalam proyek RoR
actions/setup-ruby
. Tapi tindakan
actions/setup-ruby
itu sudah tidak digunakan lagi. Disarankan untuk menggunakan tindakan alih-alih hari ini
ruby/setup-ruby
. Di dalamnya, di antara fitur-fitur lainnya, ada juga kemampuan untuk meng-cache data. Seperti inilah tampilan file konfigurasi ketika dimaksudkan untuk digunakan
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
Seperti yang Anda lihat, opsi untuk mengatur cache permata ini lebih sederhana daripada yang kami jelaskan di bagian sebelumnya. Dan di sini, sebagai tambahan, kami memiliki sistem kontrol versi Ruby. Intinya, jika kita berbicara tentang permata cache, semuanya bermuara pada menambahkan baris ke file konfigurasi
bundler-cache: true
.
Tetapi apa yang dapat Anda temukan dengan merujuk ke dokumentasi untuk
ruby/setup-ruby
:
, , , . , -, , - β . , , actions/cache ( β , , , .lock-, , , ABI- ruby-head ). , , , bundler-cache: trueβ¦
Kami telah membahas dua cara untuk menyimpan permata Ruby di CI GitHub Actions. Kami berharap siapa pun yang perlu mempercepat pembangunan proyek Ruby dapat menemukan bahan pemikirannya di sini. Namun, tentu saja, ada cara lain untuk mempercepat pipeline CI, misalnya, menjalankan pengujian secara paralel .
Apakah Anda menggunakan GitHub Actions?