Compare commits

...
10 Commits
7 changed files with 22 additions and 37 deletions
+5 -1
View File
@@ -19,7 +19,6 @@ jobs:
# 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:
- { os: ubuntu-18.04, ruby: rubinius }
- { os: windows-2016, ruby: mingw }
- { os: windows-2019, ruby: mingw }
- { os: windows-2019, ruby: mswin }
@@ -60,6 +59,10 @@ jobs:
echo 'ridk is unavailable'
}
}
- name: RbConfig::CONFIG
run: ruby -rrbconfig -rpp -e 'pp RbConfig::CONFIG'
- name: RbConfig::MAKEFILE_CONFIG
run: ruby -rrbconfig -rpp -e 'pp RbConfig::MAKEFILE_CONFIG'
- name: Subprocess test
run: ruby test_subprocess.rb
@@ -71,6 +74,7 @@ jobs:
- name: C extension test
run: gem install json:2.2.0 --no-document
- run: bundle --version
# This step is redundant with `bundler-cache: true` but is there to check a redundant `bundle install` still works
- run: bundle install
- run: bundle exec rake --version
+5 -4
View File
@@ -17,7 +17,6 @@ This action currently supports these versions of MRI, JRuby and TruffleRuby:
| Ruby | 2.1.9, 2.2, 2.3.0 - 2.3.8, 2.4.0 - 2.4.10, 2.5.0 - 2.5.8, 2.6.0 - 2.6.6, 2.7.2, head, debug, mingw, mswin |
| JRuby | 9.1.17.0, 9.2.9.0 - 9.2.13.0, head |
| TruffleRuby | 19.3.0 - 20.2.0, head |
| Rubinius | 4.14 |
`ruby-debug` is the same as `ruby-head` but with assertions enabled (`-DRUBY_DEBUG=1`).
On Windows, `mingw` and `mswin` are `ruby-head` builds using the MSYS2/MinGW and the MSVC toolchains respectively.
@@ -40,8 +39,6 @@ The action works for all [GitHub-hosted runners](https://help.github.com/en/acti
| macOS | `macos-latest` (= `macos-10.15`) | |
| Windows | `windows-latest` (= `windows-2019`) | `windows-2016` |
Rubinius is only available on `ubuntu-18.04`.
The prebuilt releases are generated by [ruby-builder](https://github.com/ruby/ruby-builder)
and on Windows by [RubyInstaller2](https://github.com/oneclick/rubyinstaller2).
`mingw` and `mswin` builds are generated by [ruby-loco](https://github.com/MSP-Greg/ruby-loco).
@@ -66,6 +63,7 @@ jobs:
- uses: ruby/setup-ruby@v1
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
```
@@ -91,6 +89,7 @@ jobs:
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- run: bundle install
- run: bundle exec rake
```
@@ -131,12 +130,14 @@ This action provides a way to automatically run `bundle install` and cache the r
bundler-cache: true
```
Note that any step doing `bundle install` (for the root `Gemfile`) or `gem install bundler` can be removed with `bundler-cache: true`.
This caching speeds up installing gems significantly and avoids too many requests to RubyGems.org.
It needs a `Gemfile` (or `$BUNDLE_GEMFILE` or `gems.rb`) under the [`working-directory`](#working-directory).
If there is a `Gemfile.lock` (or `$BUNDLE_GEMFILE.lock` or `gems.locked`), `bundle config --local deployment true` is used.
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.
Therefore, the Bundler `path` should not be changed in your workflow for the cache to work (no `bundle config path`).
### Caching `bundle install` manually
Generated Vendored
+2 -13
View File
@@ -44499,12 +44499,6 @@ function getVersions(platform) {
]
}
if (platform === 'ubuntu-18.04') {
versions['rubinius'] = [
"4.14"
]
}
return versions
}
@@ -51349,8 +51343,6 @@ async function installBundler(bundlerVersionInput, lockFile, platform, rubyPrefi
console.log(`Using Bundler 2 shipped with ${engine}-${rubyVersion}`)
} else if (engine === 'truffleruby' && bundlerVersion === '1') {
console.log(`Using Bundler 1 shipped with ${engine}`)
} else if (engine === 'rubinius') {
console.log(`Rubinius only supports the version of Bundler shipped with it`)
} else {
const gem = path.join(rubyPrefix, 'bin', 'gem')
await exec.exec(gem, ['install', 'bundler', '-v', `~> ${bundlerVersion}`, '--no-document'])
@@ -52860,6 +52852,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "install", function() { return install; });
const os = __webpack_require__(87)
const path = __webpack_require__(622)
const core = __webpack_require__(186)
const exec = __webpack_require__(514)
const io = __webpack_require__(436)
const tc = __webpack_require__(188)
@@ -52885,11 +52878,7 @@ async function downloadAndExtract(platform, engine, version) {
const rubyPrefix = path.join(rubiesDir, `${engine}-${version}`)
// Set the PATH now, so the MSYS2 'tar' is in Path on Windows
if (engine === 'rubinius') {
common.setupPath([path.join(rubyPrefix, 'bin'), path.join(rubyPrefix, 'gems', 'bin')])
} else {
common.setupPath([path.join(rubyPrefix, 'bin')])
}
common.setupPath([path.join(rubyPrefix, 'bin')])
await io.mkdirP(rubiesDir)
-2
View File
@@ -227,8 +227,6 @@ async function installBundler(bundlerVersionInput, lockFile, platform, rubyPrefi
console.log(`Using Bundler 2 shipped with ${engine}-${rubyVersion}`)
} else if (engine === 'truffleruby' && bundlerVersion === '1') {
console.log(`Using Bundler 1 shipped with ${engine}`)
} else if (engine === 'rubinius') {
console.log(`Rubinius only supports the version of Bundler shipped with it`)
} else {
const gem = path.join(rubyPrefix, 'bin', 'gem')
await exec.exec(gem, ['install', 'bundler', '-v', `~> ${bundlerVersion}`, '--no-document'])
-6
View File
@@ -22,11 +22,5 @@ export function getVersions(platform) {
]
}
if (platform === 'ubuntu-18.04') {
versions['rubinius'] = [
"4.14"
]
}
return versions
}
+2 -5
View File
@@ -1,5 +1,6 @@
const os = require('os')
const path = require('path')
const core = require('@actions/core')
const exec = require('@actions/exec')
const io = require('@actions/io')
const tc = require('@actions/tool-cache')
@@ -25,11 +26,7 @@ async function downloadAndExtract(platform, engine, version) {
const rubyPrefix = path.join(rubiesDir, `${engine}-${version}`)
// Set the PATH now, so the MSYS2 'tar' is in Path on Windows
if (engine === 'rubinius') {
common.setupPath([path.join(rubyPrefix, 'bin'), path.join(rubyPrefix, 'gems', 'bin')])
} else {
common.setupPath([path.join(rubyPrefix, 'bin')])
}
common.setupPath([path.join(rubyPrefix, 'bin')])
await io.mkdirP(rubiesDir)
+8 -6
View File
@@ -3,14 +3,16 @@ versions = eval hash
by_minor = versions[:ruby].group_by { |v| v[/^\d\.\d/] }
p by_minor['2.1']
p by_minor['2.2']
p by_minor['2.3']
(4..7).each do |minor|
(1..7).each do |minor|
p by_minor["2.#{minor}"].map { |v| "ruby-#{v}" }
end
puts
p (versions[:truffleruby] - %w[head]).map { |v| "truffleruby-#{v}" }
puts
p (versions[:jruby] - %w[head]).map { |v| "jruby-#{v}" }
p (versions[:truffleruby] - %w[head]).map { |v| "truffleruby-#{v}" }
(versions[:jruby] - %w[head]).each do |v|
puts "- { os: windows-latest, jruby-version: #{v}, ruby: jruby-#{v} }"
end