Compare commits

...
8 Commits
Author SHA1 Message Date
Benoit Daloze d9a8687ae9 Add TruffleRuby 21.2.0.1 2021-08-04 15:35:20 +02:00
Benoit Daloze ae9cb3b565 Add Ruby 1.9 on Linux and macOS
* On Windows there are no 64-bit builds of Ruby 1.9.
* Fix floatVersion() for head versions.
* Use floatVersion() in more cases instead of regexps.
* Rely on ~/.gemrc to not install gem docs.
2021-08-01 14:56:11 +02:00
Benoit Daloze 77d7ca9909 Document a recent Bundler is needed on Windows 2021-07-29 14:18:45 +02:00
Benoit Daloze e08bf35edf Ensure the typical bundle exec rake works in all cases 2021-07-29 13:24:06 +02:00
Benoit Daloze 0997e21bf3 Fix check for TruffleRuby < 21.0 and Bundler 1 2021-07-27 13:35:24 +02:00
Benoit Daloze 0c7e9c4d53 Add TruffleRuby 21.2.0 2021-07-20 21:21:01 +02:00
Benoit Daloze ee30953387 Use an absolute path for BUNDLE_GEMFILE in tests too 2021-07-15 22:58:01 +02:00
Jonathan Hefner a4630ae79b Suggest absolute path for BUNDLE_GEMFILE
This ensures the gemfile can be found when a step changes the working
directory.
2021-07-15 22:57:05 +02:00
9 changed files with 68 additions and 35 deletions
+12 -6
View File
@@ -16,15 +16,17 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ ubuntu-18.04, ubuntu-20.04, macos-10.15, macos-11.0, windows-2016, windows-2019 ] os: [ ubuntu-18.04, ubuntu-20.04, macos-10.15, macos-11.0, windows-2016, windows-2019 ]
ruby: [ '2.0', 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, '3.0', ruby-head, jruby, jruby-head, truffleruby, truffleruby-head ] ruby: [ 1.9, '2.0', 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, '3.0', ruby-head, jruby, jruby-head, truffleruby, truffleruby-head ]
include: include:
- { os: windows-2016, ruby: mingw } - { os: windows-2016, ruby: mingw }
- { os: windows-2019, ruby: mingw } - { os: windows-2019, ruby: mingw }
- { os: windows-2019, ruby: mswin } - { os: windows-2019, ruby: mswin }
exclude: exclude:
- { os: windows-2016, ruby: 1.9 }
- { os: windows-2016, ruby: debug } - { os: windows-2016, ruby: debug }
- { os: windows-2016, ruby: truffleruby } - { os: windows-2016, ruby: truffleruby }
- { os: windows-2016, ruby: truffleruby-head } - { os: windows-2016, ruby: truffleruby-head }
- { os: windows-2019, ruby: 1.9 }
- { os: windows-2019, ruby: debug } - { os: windows-2019, ruby: debug }
- { os: windows-2019, ruby: truffleruby } - { os: windows-2019, ruby: truffleruby }
- { os: windows-2019, ruby: truffleruby-head } - { os: windows-2019, ruby: truffleruby-head }
@@ -67,18 +69,22 @@ jobs:
- name: Subprocess test - name: Subprocess test
run: ruby test_subprocess.rb run: ruby test_subprocess.rb
- name: OpenSSL version - name: OpenSSL compiled version
run: ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
- name: OpenSSL loaded version
run: ruby -ropenssl -e 'puts OpenSSL::OPENSSL_LIBRARY_VERSION' run: ruby -ropenssl -e 'puts OpenSSL::OPENSSL_LIBRARY_VERSION'
if: matrix.ruby != '1.9'
- name: OpenSSL test - name: OpenSSL test
run: ruby -ropen-uri -e 'puts URI.send(:open, %{https://rubygems.org/}) { |f| f.read(1024) }' run: ruby -ropen-uri -e 'puts URI.send(:open, %{https://rubygems.org/}) { |f| f.read(1024) }'
- run: gem env - run: gem env
- name: C extension test - name: C extension test
run: gem install json:2.2.0 --no-document run: gem install json -v 2.2.0
- run: bundle --version - run: bundle --version
# This step is redundant with `bundler-cache: true` but is there to check a redundant `bundle install` still works # This step is redundant with `bundler-cache: true` but is there to check a redundant `bundle install` still works
- run: bundle install - run: bundle install
- run: bundle exec rake --version - run: bundle exec rake --version
- run: bundle exec rake
- name: which ruby, rake - name: which ruby, rake
if: "!startsWith(matrix.os, 'windows')" if: "!startsWith(matrix.os, 'windows')"
@@ -116,7 +122,7 @@ jobs:
name: "Test gemfile depending on Bundler 1" name: "Test gemfile depending on Bundler 1"
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
BUNDLE_GEMFILE: gemfiles/bundler1.gemfile BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/bundler1.gemfile
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: ./ - uses: ./
@@ -134,7 +140,7 @@ jobs:
name: "Test with ${{ matrix.gemfile }} gemfile" name: "Test with ${{ matrix.gemfile }} gemfile"
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: ./ - uses: ./
@@ -147,7 +153,7 @@ jobs:
name: "Test installing a Gemfile with nokogiri on TruffleRuby" name: "Test installing a Gemfile with nokogiri on TruffleRuby"
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
BUNDLE_GEMFILE: gemfiles/nokogiri.gemfile BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/nokogiri.gemfile
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: ./ - uses: ./
+4 -3
View File
@@ -14,9 +14,9 @@ This action currently supports these versions of MRI, JRuby and TruffleRuby:
| Interpreter | Versions | | Interpreter | Versions |
| ----------- | -------- | | ----------- | -------- |
| `ruby` | 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.0.2, head, debug, mingw, mswin | | `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.0.2, head, debug, mingw, mswin |
| `jruby` | 9.1.17.0, 9.2.9.0 - 9.2.19.0, head | | `jruby` | 9.1.17.0, 9.2.9.0 - 9.2.19.0, head |
| `truffleruby` | 19.3.0 - 21.1.0, head | | `truffleruby` | 19.3.0 - 21.2.0.1, head |
`ruby-debug` is the same as `ruby-head` but with assertions enabled (`-DRUBY_DEBUG=1`). `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. On Windows, `mingw` and `mswin` are `ruby-head` builds using the MSYS2/MinGW and the MSVC toolchains respectively.
@@ -108,7 +108,7 @@ jobs:
gemfile: [ rails5, rails6 ] gemfile: [ rails5, rails6 ]
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1 - uses: ruby/setup-ruby@v1
@@ -205,6 +205,7 @@ So, please use `bundler-cache: true` instead and report any issue.
Note that running CI on Windows can be quite challenging if you are not very familiar with Windows. Note that running CI on Windows can be quite challenging if you are not very familiar with Windows.
It is recommended to first get your build working on Ubuntu and macOS before trying Windows. It is recommended to first get your build working on Ubuntu and macOS before trying Windows.
* Use Bundler 2.2.18+ on Windows (older versions have [bugs](https://github.com/ruby/setup-ruby/issues/209#issuecomment-889064123)) by not setting the `bundler:` input and ensuring there is no `BUNDLED WITH 1.x.y` in a checked-in `Gemfile.lock`.
* The default shell on Windows is not Bash but [PowerShell](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#using-a-specific-shell). * The default shell on Windows is not Bash but [PowerShell](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#using-a-specific-shell).
This can lead issues such as multi-line scripts [not working as expected](https://github.com/ruby/setup-ruby/issues/13). This can lead issues such as multi-line scripts [not working as expected](https://github.com/ruby/setup-ruby/issues/13).
* The `PATH` contains [multiple compiler toolchains](https://github.com/ruby/setup-ruby/issues/19). Use `where.exe` to debug which tool is used. * The `PATH` contains [multiple compiler toolchains](https://github.com/ruby/setup-ruby/issues/19). Use `where.exe` to debug which tool is used.
+3
View File
@@ -0,0 +1,3 @@
task :default do
puts "Hello World from Rake"
end
+4 -4
View File
@@ -71,7 +71,7 @@ export async function installBundler(bundlerVersionInput, lockFile, platform, ru
throw new Error(`Cannot parse bundler input: ${bundlerVersion}`) throw new Error(`Cannot parse bundler input: ${bundlerVersion}`)
} }
if (engine === 'ruby' && rubyVersion.match(/^2\.[012]/)) { if (engine === 'ruby' && common.floatVersion(rubyVersion) <= 2.2) {
console.log('Bundler 2 requires Ruby 2.3+, using Bundler 1 on Ruby <= 2.2') console.log('Bundler 2 requires Ruby 2.3+, using Bundler 1 on Ruby <= 2.2')
bundlerVersion = '1' bundlerVersion = '1'
} else if (engine === 'ruby' && rubyVersion.match(/^2\.3\.[01]/)) { } else if (engine === 'ruby' && rubyVersion.match(/^2\.3\.[01]/)) {
@@ -86,12 +86,12 @@ export async function installBundler(bundlerVersionInput, lockFile, platform, ru
// Avoid installing a newer Bundler version for head versions as it might not work. // Avoid installing a newer Bundler version for head versions as it might not work.
// For releases, even if they ship with Bundler 2 we install the latest Bundler. // For releases, even if they ship with Bundler 2 we install the latest Bundler.
console.log(`Using Bundler 2 shipped with ${engine}-${rubyVersion}`) console.log(`Using Bundler 2 shipped with ${engine}-${rubyVersion}`)
} else if (engine === 'truffleruby' && !common.isHeadVersion(rubyVersion) && bundlerVersion.startsWith('1')) { } else if (engine === 'truffleruby' && common.isBundler1Default(engine, rubyVersion) && bundlerVersion.startsWith('1')) {
console.log(`Using Bundler 1 shipped with ${engine}`) console.log(`Using Bundler 1 shipped with ${engine}-${rubyVersion}`)
} else { } else {
const gem = path.join(rubyPrefix, 'bin', 'gem') const gem = path.join(rubyPrefix, 'bin', 'gem')
const bundlerVersionConstraint = bundlerVersion.match(/^\d+\.\d+\.\d+/) ? bundlerVersion : `~> ${bundlerVersion}` const bundlerVersionConstraint = bundlerVersion.match(/^\d+\.\d+\.\d+/) ? bundlerVersion : `~> ${bundlerVersion}`
await exec.exec(gem, ['install', 'bundler', '-v', bundlerVersionConstraint, '--no-document']) await exec.exec(gem, ['install', 'bundler', '-v', bundlerVersionConstraint])
} }
return bundlerVersion return bundlerVersion
+10 -4
View File
@@ -55,13 +55,17 @@ export function isStableVersion(rubyVersion) {
return /^\d+(\.\d+)*$/.test(rubyVersion) return /^\d+(\.\d+)*$/.test(rubyVersion)
} }
export function isBundler1Default(engine, rubyVersion) {
return !isBundler2Default(engine, rubyVersion)
}
export function isBundler2Default(engine, rubyVersion) { export function isBundler2Default(engine, rubyVersion) {
if (engine === 'ruby') { if (engine === 'ruby') {
return isHeadVersion(rubyVersion) || floatVersion(rubyVersion) >= 2.7 return floatVersion(rubyVersion) >= 2.7
} else if (engine === 'truffleruby') { } else if (engine === 'truffleruby') {
return isHeadVersion(rubyVersion) || floatVersion(rubyVersion) >= 21.0 return floatVersion(rubyVersion) >= 21.0
} else if (engine === 'jruby') { } else if (engine === 'jruby') {
return isHeadVersion(rubyVersion) || floatVersion(rubyVersion) >= 9.3 return floatVersion(rubyVersion) >= 9.3
} else { } else {
return false return false
} }
@@ -71,8 +75,10 @@ export function floatVersion(rubyVersion) {
const match = rubyVersion.match(/^\d+\.\d+/) const match = rubyVersion.match(/^\d+\.\d+/)
if (match) { if (match) {
return parseFloat(match[0]) return parseFloat(match[0])
} else if (isHeadVersion(rubyVersion)) {
return 999.999
} else { } else {
return 0.0 throw new Error(`Could not convert version ${rubyVersion} to a float`)
} }
} }
Generated Vendored
+25 -13
View File
@@ -85,7 +85,7 @@ async function installBundler(bundlerVersionInput, lockFile, platform, rubyPrefi
throw new Error(`Cannot parse bundler input: ${bundlerVersion}`) throw new Error(`Cannot parse bundler input: ${bundlerVersion}`)
} }
if (engine === 'ruby' && rubyVersion.match(/^2\.[012]/)) { if (engine === 'ruby' && common.floatVersion(rubyVersion) <= 2.2) {
console.log('Bundler 2 requires Ruby 2.3+, using Bundler 1 on Ruby <= 2.2') console.log('Bundler 2 requires Ruby 2.3+, using Bundler 1 on Ruby <= 2.2')
bundlerVersion = '1' bundlerVersion = '1'
} else if (engine === 'ruby' && rubyVersion.match(/^2\.3\.[01]/)) { } else if (engine === 'ruby' && rubyVersion.match(/^2\.3\.[01]/)) {
@@ -100,12 +100,12 @@ async function installBundler(bundlerVersionInput, lockFile, platform, rubyPrefi
// Avoid installing a newer Bundler version for head versions as it might not work. // Avoid installing a newer Bundler version for head versions as it might not work.
// For releases, even if they ship with Bundler 2 we install the latest Bundler. // For releases, even if they ship with Bundler 2 we install the latest Bundler.
console.log(`Using Bundler 2 shipped with ${engine}-${rubyVersion}`) console.log(`Using Bundler 2 shipped with ${engine}-${rubyVersion}`)
} else if (engine === 'truffleruby' && !common.isHeadVersion(rubyVersion) && bundlerVersion.startsWith('1')) { } else if (engine === 'truffleruby' && common.isBundler1Default(engine, rubyVersion) && bundlerVersion.startsWith('1')) {
console.log(`Using Bundler 1 shipped with ${engine}`) console.log(`Using Bundler 1 shipped with ${engine}-${rubyVersion}`)
} else { } else {
const gem = path.join(rubyPrefix, 'bin', 'gem') const gem = path.join(rubyPrefix, 'bin', 'gem')
const bundlerVersionConstraint = bundlerVersion.match(/^\d+\.\d+\.\d+/) ? bundlerVersion : `~> ${bundlerVersion}` const bundlerVersionConstraint = bundlerVersion.match(/^\d+\.\d+\.\d+/) ? bundlerVersion : `~> ${bundlerVersion}`
await exec.exec(gem, ['install', 'bundler', '-v', bundlerVersionConstraint, '--no-document']) await exec.exec(gem, ['install', 'bundler', '-v', bundlerVersionConstraint])
} }
return bundlerVersion return bundlerVersion
@@ -229,6 +229,7 @@ __nccwpck_require__.r(__webpack_exports__);
/* harmony export */ "measure": () => (/* binding */ measure), /* harmony export */ "measure": () => (/* binding */ measure),
/* harmony export */ "isHeadVersion": () => (/* binding */ isHeadVersion), /* harmony export */ "isHeadVersion": () => (/* binding */ isHeadVersion),
/* harmony export */ "isStableVersion": () => (/* binding */ isStableVersion), /* harmony export */ "isStableVersion": () => (/* binding */ isStableVersion),
/* harmony export */ "isBundler1Default": () => (/* binding */ isBundler1Default),
/* harmony export */ "isBundler2Default": () => (/* binding */ isBundler2Default), /* harmony export */ "isBundler2Default": () => (/* binding */ isBundler2Default),
/* harmony export */ "floatVersion": () => (/* binding */ floatVersion), /* harmony export */ "floatVersion": () => (/* binding */ floatVersion),
/* harmony export */ "hashFile": () => (/* binding */ hashFile), /* harmony export */ "hashFile": () => (/* binding */ hashFile),
@@ -296,13 +297,17 @@ function isStableVersion(rubyVersion) {
return /^\d+(\.\d+)*$/.test(rubyVersion) return /^\d+(\.\d+)*$/.test(rubyVersion)
} }
function isBundler1Default(engine, rubyVersion) {
return !isBundler2Default(engine, rubyVersion)
}
function isBundler2Default(engine, rubyVersion) { function isBundler2Default(engine, rubyVersion) {
if (engine === 'ruby') { if (engine === 'ruby') {
return isHeadVersion(rubyVersion) || floatVersion(rubyVersion) >= 2.7 return floatVersion(rubyVersion) >= 2.7
} else if (engine === 'truffleruby') { } else if (engine === 'truffleruby') {
return isHeadVersion(rubyVersion) || floatVersion(rubyVersion) >= 21.0 return floatVersion(rubyVersion) >= 21.0
} else if (engine === 'jruby') { } else if (engine === 'jruby') {
return isHeadVersion(rubyVersion) || floatVersion(rubyVersion) >= 9.3 return floatVersion(rubyVersion) >= 9.3
} else { } else {
return false return false
} }
@@ -312,8 +317,10 @@ function floatVersion(rubyVersion) {
const match = rubyVersion.match(/^\d+\.\d+/) const match = rubyVersion.match(/^\d+\.\d+/)
if (match) { if (match) {
return parseFloat(match[0]) return parseFloat(match[0])
} else if (isHeadVersion(rubyVersion)) {
return 999.999
} else { } else {
return 0.0 throw new Error(`Could not convert version ${rubyVersion} to a float`)
} }
} }
@@ -58756,6 +58763,7 @@ __nccwpck_require__.r(__webpack_exports__);
function getVersions(platform) { function getVersions(platform) {
const versions = { const versions = {
"ruby": [ "ruby": [
"1.9.3-p551",
"2.0.0-p648", "2.0.0-p648",
"2.1.9", "2.1.9",
"2.2.10", "2.2.10",
@@ -58775,7 +58783,7 @@ function getVersions(platform) {
"truffleruby": [ "truffleruby": [
"19.3.0", "19.3.1", "19.3.0", "19.3.1",
"20.0.0", "20.1.0", "20.2.0", "20.3.0", "20.0.0", "20.1.0", "20.2.0", "20.3.0",
"21.0.0", "21.1.0", "21.0.0", "21.1.0", "21.2.0", "21.2.0.1",
"head" "head"
] ]
} }
@@ -59038,7 +59046,7 @@ async function downloadAndExtract(engine, version, url, base, rubyPrefix) {
async function setupMingw(version) { async function setupMingw(version) {
core.exportVariable('MAKE', 'make.exe') core.exportVariable('MAKE', 'make.exe')
if (version.match(/^2\.[0123]/)) { if (common.floatVersion(version) <= 2.3) {
core.exportVariable('SSL_CERT_FILE', certFile) core.exportVariable('SSL_CERT_FILE', certFile)
await common.measure('Installing MSYS', async () => installMSYS(version)) await common.measure('Installing MSYS', async () => installMSYS(version))
return msysPathEntries return msysPathEntries
@@ -59420,7 +59428,7 @@ async function setupRuby(options = {}) {
const engineVersions = installer.getAvailableVersions(platform, engine) const engineVersions = installer.getAvailableVersions(platform, engine)
const version = validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVersion) const version = validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVersion)
createGemRC() createGemRC(engine, version)
envPreInstall() envPreInstall()
const rubyPrefix = await installer.install(platform, engine, version) const rubyPrefix = await installer.install(platform, engine, version)
@@ -59510,10 +59518,14 @@ function validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVe
return version return version
} }
function createGemRC() { function createGemRC(engine, version) {
const gemrc = path.join(os.homedir(), '.gemrc') const gemrc = path.join(os.homedir(), '.gemrc')
if (!fs.existsSync(gemrc)) { if (!fs.existsSync(gemrc)) {
fs.writeFileSync(gemrc, `gem: --no-document${os.EOL}`) if (engine === 'ruby' && common.floatVersion(version) < 2.0) {
fs.writeFileSync(gemrc, `install: --no-rdoc --no-ri${os.EOL}update: --no-rdoc --no-ri${os.EOL}`)
} else {
fs.writeFileSync(gemrc, `gem: --no-document${os.EOL}`)
}
} }
} }
+7 -3
View File
@@ -48,7 +48,7 @@ export async function setupRuby(options = {}) {
const engineVersions = installer.getAvailableVersions(platform, engine) const engineVersions = installer.getAvailableVersions(platform, engine)
const version = validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVersion) const version = validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVersion)
createGemRC() createGemRC(engine, version)
envPreInstall() envPreInstall()
const rubyPrefix = await installer.install(platform, engine, version) const rubyPrefix = await installer.install(platform, engine, version)
@@ -138,10 +138,14 @@ function validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVe
return version return version
} }
function createGemRC() { function createGemRC(engine, version) {
const gemrc = path.join(os.homedir(), '.gemrc') const gemrc = path.join(os.homedir(), '.gemrc')
if (!fs.existsSync(gemrc)) { if (!fs.existsSync(gemrc)) {
fs.writeFileSync(gemrc, `gem: --no-document${os.EOL}`) if (engine === 'ruby' && common.floatVersion(version) < 2.0) {
fs.writeFileSync(gemrc, `install: --no-rdoc --no-ri${os.EOL}update: --no-rdoc --no-ri${os.EOL}`)
} else {
fs.writeFileSync(gemrc, `gem: --no-document${os.EOL}`)
}
} }
} }
+2 -1
View File
@@ -1,6 +1,7 @@
export function getVersions(platform) { export function getVersions(platform) {
const versions = { const versions = {
"ruby": [ "ruby": [
"1.9.3-p551",
"2.0.0-p648", "2.0.0-p648",
"2.1.9", "2.1.9",
"2.2.10", "2.2.10",
@@ -20,7 +21,7 @@ export function getVersions(platform) {
"truffleruby": [ "truffleruby": [
"19.3.0", "19.3.1", "19.3.0", "19.3.1",
"20.0.0", "20.1.0", "20.2.0", "20.3.0", "20.0.0", "20.1.0", "20.2.0", "20.3.0",
"21.0.0", "21.1.0", "21.0.0", "21.1.0", "21.2.0", "21.2.0.1",
"head" "head"
] ]
} }
+1 -1
View File
@@ -82,7 +82,7 @@ async function downloadAndExtract(engine, version, url, base, rubyPrefix) {
async function setupMingw(version) { async function setupMingw(version) {
core.exportVariable('MAKE', 'make.exe') core.exportVariable('MAKE', 'make.exe')
if (version.match(/^2\.[0123]/)) { if (common.floatVersion(version) <= 2.3) {
core.exportVariable('SSL_CERT_FILE', certFile) core.exportVariable('SSL_CERT_FILE', certFile)
await common.measure('Installing MSYS', async () => installMSYS(version)) await common.measure('Installing MSYS', async () => installMSYS(version))
return msysPathEntries return msysPathEntries