diff --git a/examples.md b/examples.md index 4e3f64a..19b4dab 100644 --- a/examples.md +++ b/examples.md @@ -430,21 +430,28 @@ Replace `~/.local/share/renv` with the correct `path` if not using Ubuntu. ## Ruby - Bundler +[`ruby/setup-ruby`](https://github.com/ruby/setup-ruby) provides a way to automatically run `bundle install` and cache the result: + +```yaml +- uses: ruby/setup-ruby@v1 + with: + bundler-cache: true +``` + +If necessary, you can also cache gems manually using `actions/cache`: + ```yaml - uses: actions/cache@v2 with: path: vendor/bundle - key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} + key: bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/Gemfile.lock') }} restore-keys: | - ${{ runner.os }}-gems- -``` -When dependencies are installed later in the workflow, we must specify the same path for the bundler. - -```yaml -- name: Bundle install + bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}- +- name: bundle install run: | + bundle config deployment true bundle config path vendor/bundle - bundle install --jobs 4 --retry 3 + bundle install --jobs 4 ``` ## Rust - Cargo