# RubyGems

import { Tabs, TabItem } from '@astrojs/starlight/components';

Avrea caches gems from rubygems.org so that `bundle install` and `gem fetch`
resolve dependencies from colocated cache on repeat runs.

## On Avrea runners

Bundler is pre-configured with a mirror for rubygems.org:

```bash
bundle config --global mirror.https://rubygems.org https://cache.avrea.com:8443/rubygems
```

Your workflow needs no changes:

```yaml title="workflow.yml"
jobs:
  build:
    runs-on: avrea-ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: '3.3'
      - run: bundle install
```

## Manual setup

<Tabs>
  <TabItem label="Bundler">
Configure Bundler to mirror rubygems.org through the cache:

```bash
bundle config --global mirror.https://rubygems.org https://cache.avrea.com:8443/rubygems
```

Or per-project, set the source in your `Gemfile`:

```ruby title="Gemfile"
source "https://cache.avrea.com:8443/rubygems/"

gem "rails"
```

  </TabItem>
  <TabItem label="gem">
Replace the default rubygems.org source:

```bash
gem sources --remove https://rubygems.org/
gem sources --add https://cache.avrea.com:8443/rubygems/
gem sources --update
```

  </TabItem>
</Tabs>