mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 14:34:21 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9bc07a3af0 | ||
|
|
63dde36864 | ||
|
|
fde3324171 | ||
|
|
59aafb8612 |
@@ -15,7 +15,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ ubuntu-16.04, ubuntu-18.04, ubuntu-20.04, macos-10.15, windows-2016, windows-2019 ]
|
||||
os: [ ubuntu-16.04, ubuntu-18.04, ubuntu-20.04, macos-10.15, macos-11.0, windows-2016, windows-2019 ]
|
||||
# Use various version syntax here for testing
|
||||
ruby: [ 2.1, 2.2, 2.3, 2.4, 2.5, 2.6.6, 2.7, ruby-head, debug, jruby-9.1, jruby, jruby-head, truffleruby, truffleruby-head ]
|
||||
include:
|
||||
@@ -29,6 +29,8 @@ jobs:
|
||||
- { os: windows-2019, ruby: debug }
|
||||
- { os: windows-2019, ruby: truffleruby }
|
||||
- { os: windows-2019, ruby: truffleruby-head }
|
||||
- { os: macos-11.0, ruby: truffleruby }
|
||||
- { os: macos-11.0, ruby: truffleruby-head }
|
||||
|
||||
name: ${{ matrix.os }} ${{ matrix.ruby }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
@@ -39,7 +39,7 @@ The action works for all [GitHub-hosted runners](https://help.github.com/en/acti
|
||||
| Operating System | Recommended | Other Supported Versions |
|
||||
| ----------- | -------- | -------- |
|
||||
| Ubuntu | `ubuntu-latest` (= `ubuntu-18.04`) | `ubuntu-20.04`, `ubuntu-16.04` |
|
||||
| macOS | `macos-latest` (= `macos-10.15`) | |
|
||||
| macOS | `macos-latest` (= `macos-10.15`) | `macos-11.0` |
|
||||
| Windows | `windows-latest` (= `windows-2019`) | `windows-2016` |
|
||||
|
||||
The prebuilt releases are generated by [ruby-builder](https://github.com/ruby/ruby-builder)
|
||||
@@ -67,7 +67,6 @@ jobs:
|
||||
with:
|
||||
ruby-version: 2.6 # Not needed with a .ruby-version file
|
||||
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
||||
- run: bundle install
|
||||
- run: bundle exec rake
|
||||
```
|
||||
|
||||
@@ -93,7 +92,6 @@ jobs:
|
||||
with:
|
||||
ruby-version: ${{ matrix.ruby }}
|
||||
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
||||
- run: bundle install
|
||||
- run: bundle exec rake
|
||||
```
|
||||
|
||||
@@ -142,35 +140,6 @@ If there is a `Gemfile.lock` (or `$BUNDLE_GEMFILE.lock` or `gems.locked`), `bund
|
||||
To perform caching, this action will use `bundle config --local path vendor/bundle`.
|
||||
Therefore, the Bundler `path` should not be changed in your workflow for the cache to work (no `bundle config path`).
|
||||
|
||||
### Caching `bundle install` manually
|
||||
|
||||
You can also cache gems manually,
|
||||
but this is not recommended because it is verbose and very difficult to use a correct cache key.
|
||||
You can cache the installed gems with these two steps:
|
||||
|
||||
```yaml
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: vendor/bundle
|
||||
key: bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/Gemfile.lock') }}
|
||||
restore-keys: |
|
||||
bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}-
|
||||
- name: bundle install
|
||||
run: |
|
||||
bundle config deployment true
|
||||
bundle config path vendor/bundle
|
||||
bundle install --jobs 4
|
||||
```
|
||||
|
||||
When using a single OS, replace `${{ matrix.os }}` with the OS.
|
||||
When using a single job with a Ruby version, replace `${{ matrix.ruby }}` with the Ruby version.
|
||||
When using `.ruby-version`, replace `${{ matrix.ruby }}` with `${{ hashFiles('.ruby-version') }}`.
|
||||
When using `.tool-versions`, replace `${{ matrix.ruby }}` with `${{ hashFiles('.tool-versions') }}`.
|
||||
|
||||
This uses the [cache action](https://github.com/actions/cache).
|
||||
The code above is a more complete version of the [Ruby - Bundler example](https://github.com/actions/cache/blob/master/examples.md#ruby---bundler).
|
||||
Make sure to include `use-ruby` in the `key` to avoid conflicting with previous caches.
|
||||
|
||||
## Windows
|
||||
|
||||
Note that running CI on Windows can be quite challenging if you are not very familiar with Windows.
|
||||
|
||||
@@ -52,9 +52,9 @@ export function getVirtualEnvironmentName() {
|
||||
return `ubuntu-${match[1]}.04`
|
||||
}
|
||||
|
||||
match = imageOS.match(/^macos(\d{2})(\d+)/) // e.g. macos1015
|
||||
match = imageOS.match(/^macos(\d{2})(\d+)?/) // e.g. macos1015, macos11
|
||||
if (match) {
|
||||
return `macos-${match[1]}.${match[2]}`
|
||||
return `macos-${match[1]}.${match[2] || '0'}`
|
||||
}
|
||||
|
||||
match = imageOS.match(/^win(\d+)/) // e.g. win19
|
||||
|
||||
+2
-2
@@ -32156,9 +32156,9 @@ function getVirtualEnvironmentName() {
|
||||
return `ubuntu-${match[1]}.04`
|
||||
}
|
||||
|
||||
match = imageOS.match(/^macos(\d{2})(\d+)/) // e.g. macos1015
|
||||
match = imageOS.match(/^macos(\d{2})(\d+)?/) // e.g. macos1015, macos11
|
||||
if (match) {
|
||||
return `macos-${match[1]}.${match[2]}`
|
||||
return `macos-${match[1]}.${match[2] || '0'}`
|
||||
}
|
||||
|
||||
match = imageOS.match(/^win(\d+)/) // e.g. win19
|
||||
|
||||
Reference in New Issue
Block a user