ruby/setup-ruby
、2つ目は-を 提供します
actions/cache
。
- アクション/キャッシュは、Rubygemの一般的なキャッシュソリューションです。
- ruby/setup-ruby — , Ruby Ruby . , «» (, GitHub Actions «action»).
Actions/cache —
アクション/キャッシュは、データをキャッシュに配置し、次にプロジェクトビルドプロセスがCIシステムで開始されたときにキャッシュからデータを取得するために使用できる一般的なソリューションです。このアクションは、GitHubActionsでRubyバージョンを制御するアクションも使用するRoRプロジェクトでよく使用されます
actions/setup-ruby
。
GitHubActionsでキャッシュを整理するための構成ファイルの例を考えてみましょう
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
このファイルの主な機能を分析してみましょう。
- キャッシュするディレクトリへのパスを指定する必要があります。私たちの場合、それは-
vendor/bundle
です。 - さらに、ここでは
key
、オペレーティングシステムのバージョンとファイルに関する情報を使用して、一意のキャッシュキー()を生成しますGemfile.lock
。オペレーティングシステムのバージョンを変更するかGemfile.lock
、変更の原因となる新しいgemをインストールすると、新しい値が生成されますkey
。 - 次に、すべてのRubygemをディレクトリにインストールするようにバンドラーを構成する必要があります
vendor/bundle
。 - ここでは、次のバンドラーパラメーターを使用できます。
あなたはレールのプロジェクトのためのGitHubのアクションの設定で完全なYAMLファイルでご覧になることをに興味がある場合- ここでは、 ここでは、 そこに、 ここではこのトピックに関する私たちの記事の一部です。
Ruby / setup-ruby-Rubyのインストールとgemのキャッシュ
上記で、RoRプロジェクトでよく使用されることを説明しました
actions/setup-ruby
。しかし、このアクション
actions/setup-ruby
は非推奨になりました。最近では、代わりにアクションを使用することをお勧めします
ruby/setup-ruby
。その中には、他の機能の中でも、データをキャッシュする機能もあります。これは、使用することを意図した場合の構成ファイルの外観です
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
ご覧のとおり、gemキャッシュを整理するためのこのオプションは、前のセクションで説明したものよりも簡単です。さらに、ここでは、Rubyバージョン管理システムを自由に使用できます。本質的に、gemのキャッシュについて話す場合、それはすべて、構成ファイルに行を追加することになります
bundler-cache: true
。
しかし、あなたはを参照して調べることができます ドキュメントのために
ruby/setup-ruby
:
, , , . , -, , - — . , , actions/cache ( — , , , .lock-, , , ABI- ruby-head ). , , , bundler-cache: true…
CIGitHubアクションでRubygemをキャッシュする2つの方法について説明しました。Rubyプロジェクトの構築をスピードアップする必要がある人が、ここで考えるべき食べ物を見つけてくれることを願っています。ただし、もちろん、CIパイプラインを高速化する方法は他にもあります。たとえば、 テストの並列実行などです。
GitHubアクションを使用していますか?