mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 22:44:20 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
08245253a7 | ||
|
|
51df335734 | ||
|
|
c4167d16b3 | ||
|
|
d97cd77c44 | ||
|
|
706bae07c5 | ||
|
|
2489e28c66 | ||
|
|
d20d4c5fed | ||
|
|
ad637dce55 | ||
|
|
8029ebd6e5 | ||
|
|
356354c8aa | ||
|
|
be54de855e | ||
|
|
cd4241788a | ||
|
|
3c76dcfa76 | ||
|
|
a7439cf424 | ||
|
|
b9675e15ad | ||
|
|
57a3395c80 | ||
|
|
296bf7f67a | ||
|
|
e92b7971f0 | ||
|
|
b2e1b33839 | ||
|
|
645077fe5e | ||
|
|
301d3e0984 | ||
|
|
8c72644a0b | ||
|
|
d02b65e726 | ||
|
|
d246303ba7 | ||
|
|
d78e94b867 | ||
|
|
793715001d | ||
|
|
69fe46858b | ||
|
|
dcbc29fae9 | ||
|
|
3f53c4ecc2 | ||
|
|
9b993bc63c | ||
|
|
d6a695ac2a | ||
|
|
e404913b05 | ||
|
|
eb938a806e | ||
|
|
ee5764de2c | ||
|
|
2b019609e2 | ||
|
|
7e21bdc34c | ||
|
|
b37f0a38ea | ||
|
|
ebaea52cb2 | ||
|
|
382b2c5e9b | ||
|
|
0d85c5bbb7 | ||
|
|
b80945c764 | ||
|
|
1a68550f2e | ||
|
|
bd94d6a504 | ||
|
|
b9d02e5f7e | ||
|
|
4d8ce7b87d | ||
|
|
cd9d3de43b | ||
|
|
7baabd2c5d | ||
|
|
e5517072e8 | ||
|
|
cca23415f7 | ||
|
|
cb1708a42d | ||
|
|
339cddd0ab | ||
|
|
0bb302e3c3 | ||
|
|
359bebbc29 | ||
|
|
fabf2515e6 | ||
|
|
51c0d59222 | ||
|
|
6d62a2dcce | ||
|
|
8a48a656bf | ||
|
|
32c0569c64 | ||
|
|
f302e4ff49 | ||
|
|
3065f0b392 | ||
|
|
cf617ba62d | ||
|
|
c96a8640af | ||
|
|
d359377deb | ||
|
|
4a1b0853ab | ||
|
|
c36d5afe85 | ||
|
|
8781aa98b4 | ||
|
|
578365d08b | ||
|
|
c3f0cb18af | ||
|
|
180e1d1f1c | ||
|
|
238b81ee64 | ||
|
|
8f312efe12 | ||
|
|
26470672e5 | ||
|
|
fb94cfb62e | ||
|
|
f51e04d8c5 | ||
|
|
e9c1c1bf40 | ||
|
|
24d6deea38 | ||
|
|
3b96304b91 | ||
|
|
18485596cf | ||
|
|
70ec766ec5 | ||
|
|
ffd46bd1d2 | ||
|
|
480fe921a2 | ||
|
|
4fbcf63963 | ||
|
|
66308367ad | ||
|
|
b0aab3e1cf | ||
|
|
23b44d8ec5 | ||
|
|
6cc535991c | ||
|
|
226c4cceaa | ||
|
|
4726835508 | ||
|
|
bee16c98fd |
@@ -0,0 +1 @@
|
|||||||
|
github: [eregon]
|
||||||
@@ -6,7 +6,7 @@ jobs:
|
|||||||
release:
|
release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- run: git push origin HEAD:v1
|
- run: git push origin HEAD:v1
|
||||||
|
|||||||
+105
-21
@@ -15,32 +15,36 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
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, macos-12, windows-2019, windows-2022 ]
|
||||||
ruby: [ 1.9, '2.0', 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, '3.0', 3.1, ruby-head, jruby, jruby-head, truffleruby, truffleruby-head, truffleruby+graalvm, truffleruby+graalvm-head ]
|
ruby: [ '1.9', '2.0', '2.1', '2.2', '2.3', '2.4', '2.5', '2.6', '2.7', '3.0', '3.1', ruby-head, jruby, jruby-head, truffleruby, truffleruby-head, truffleruby+graalvm, truffleruby+graalvm-head ]
|
||||||
include:
|
include:
|
||||||
- { os: windows-2016, ruby: mingw }
|
- { os: ubuntu-22.04, ruby: '3.1.0' }
|
||||||
|
- { os: ubuntu-22.04, ruby: '3.1' }
|
||||||
|
- { os: ubuntu-22.04, ruby: '3.2.0-preview1' }
|
||||||
|
- { os: ubuntu-22.04, ruby: ruby-head }
|
||||||
- { os: windows-2019, ruby: mingw }
|
- { os: windows-2019, ruby: mingw }
|
||||||
- { os: windows-2019, ruby: mswin }
|
- { os: windows-2019, ruby: mswin }
|
||||||
|
- { os: windows-2022, ruby: mingw }
|
||||||
|
- { os: windows-2022, ruby: mswin }
|
||||||
|
- { os: windows-2022, ruby: ucrt }
|
||||||
exclude:
|
exclude:
|
||||||
- { os: windows-2016, ruby: 1.9 }
|
- { os: windows-2019, ruby: '1.9' }
|
||||||
- { os: windows-2016, ruby: 3.1 }
|
|
||||||
- { os: windows-2016, ruby: debug }
|
|
||||||
- { os: windows-2016, ruby: truffleruby }
|
|
||||||
- { os: windows-2016, ruby: truffleruby-head }
|
|
||||||
- { os: windows-2016, ruby: truffleruby+graalvm }
|
|
||||||
- { os: windows-2016, ruby: truffleruby+graalvm-head }
|
|
||||||
- { os: windows-2019, ruby: 1.9 }
|
|
||||||
- { os: windows-2019, ruby: 3.1 }
|
|
||||||
- { 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 }
|
||||||
- { os: windows-2019, ruby: truffleruby+graalvm }
|
- { os: windows-2019, ruby: truffleruby+graalvm }
|
||||||
- { os: windows-2019, ruby: truffleruby+graalvm-head }
|
- { os: windows-2019, ruby: truffleruby+graalvm-head }
|
||||||
|
- { os: windows-2022, ruby: '1.9' }
|
||||||
|
- { os: windows-2022, ruby: debug }
|
||||||
|
- { os: windows-2022, ruby: truffleruby }
|
||||||
|
- { os: windows-2022, ruby: truffleruby-head }
|
||||||
|
- { os: windows-2022, ruby: truffleruby+graalvm }
|
||||||
|
- { os: windows-2022, ruby: truffleruby+graalvm-head }
|
||||||
|
|
||||||
name: ${{ matrix.os }} ${{ matrix.ruby }}
|
name: ${{ matrix.os }} ${{ matrix.ruby }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -67,6 +71,8 @@ jobs:
|
|||||||
} else {
|
} else {
|
||||||
echo 'ridk is unavailable'
|
echo 'ridk is unavailable'
|
||||||
}
|
}
|
||||||
|
} elseif ($plat.Contains('mswin')) {
|
||||||
|
&"$env:VCPKG_INSTALLATION_ROOT\vcpkg" list
|
||||||
}
|
}
|
||||||
- name: RbConfig::CONFIG
|
- name: RbConfig::CONFIG
|
||||||
run: ruby -rrbconfig -rpp -e 'pp RbConfig::CONFIG'
|
run: ruby -rrbconfig -rpp -e 'pp RbConfig::CONFIG'
|
||||||
@@ -113,14 +119,92 @@ jobs:
|
|||||||
if: startsWith(matrix.os, 'windows') && startsWith(matrix.ruby, 'jruby')
|
if: startsWith(matrix.os, 'windows') && startsWith(matrix.ruby, 'jruby')
|
||||||
run: gem install sassc
|
run: gem install sassc
|
||||||
|
|
||||||
|
testLatestRubygemsVersion:
|
||||||
|
name: "Test rubygems: latest upgrades the default RubyGems version"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: ./
|
||||||
|
with:
|
||||||
|
ruby-version: '2.6'
|
||||||
|
rubygems: latest
|
||||||
|
- run: ruby -e "exit(Gem.rubygems_version > Gem::Version.new('3.0.3'))"
|
||||||
|
|
||||||
|
testFixedRubygemsVersionUpgrades:
|
||||||
|
name: "Test rubygems: version upgrades RubyGems to that version if the default is older"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: ./
|
||||||
|
with:
|
||||||
|
ruby-version: '2.6'
|
||||||
|
rubygems: 3.2.3
|
||||||
|
- run: gem --version | grep -F "3.2.3"
|
||||||
|
|
||||||
|
testFixedRubygemsVersionNoop:
|
||||||
|
name: "Test rubygems: version noops if the default is newer"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: ./
|
||||||
|
with:
|
||||||
|
ruby-version: '3.1.0'
|
||||||
|
rubygems: 3.2.3
|
||||||
|
- run: gem --version | grep -F "3.3.3"
|
||||||
|
|
||||||
|
testUseBundlerFromRubyGemsUpdate:
|
||||||
|
name: "Test rubygems: version uses the Bundler installed by the rubygems update"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: ./
|
||||||
|
with:
|
||||||
|
ruby-version: '2.2'
|
||||||
|
rubygems: 2.7.11
|
||||||
|
- run: gem --version | grep -F "2.7.11"
|
||||||
|
- run: bundle --version | grep -F "1.16.6"
|
||||||
|
|
||||||
|
testFixedBundlerVersionForOldRuby:
|
||||||
|
name: "Test bundler: 1.x for old Ruby"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: ./
|
||||||
|
with:
|
||||||
|
ruby-version: '2.2'
|
||||||
|
bundler: 1.16.6
|
||||||
|
- run: bundle --version | grep -F "1.16.6" # And not 1.17.x from ~> 1
|
||||||
|
|
||||||
|
testMajorBundlerVersion:
|
||||||
|
name: "Test with a major Bundler version"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: ./
|
||||||
|
with:
|
||||||
|
ruby-version: '2.6'
|
||||||
|
bundler: 2
|
||||||
|
- run: bundle --version | grep -P "Bundler version 2\.\d+\.\d+"
|
||||||
|
|
||||||
|
testMinorBundlerVersion:
|
||||||
|
name: "Test with a minor Bundler version"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: ./
|
||||||
|
with:
|
||||||
|
ruby-version: '2.6'
|
||||||
|
bundler: 2.2
|
||||||
|
- run: bundle --version | grep -P "Bundler version 2\.2\.\d+"
|
||||||
|
|
||||||
testExactBundlerVersion:
|
testExactBundlerVersion:
|
||||||
name: "Test with an exact Bundler version"
|
name: "Test with an exact Bundler version"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: 2.6
|
ruby-version: '2.6'
|
||||||
bundler: 2.2.3
|
bundler: 2.2.3
|
||||||
- run: bundle --version | grep -F "Bundler version 2.2.3"
|
- run: bundle --version | grep -F "Bundler version 2.2.3"
|
||||||
|
|
||||||
@@ -130,10 +214,10 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/bundler1.gemfile
|
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/bundler1.gemfile
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: 2.7
|
ruby-version: '2.7'
|
||||||
bundler: 1
|
bundler: 1
|
||||||
bundler-cache: true
|
bundler-cache: true
|
||||||
- run: bundle --version | grep -F "Bundler version 1."
|
- run: bundle --version | grep -F "Bundler version 1."
|
||||||
@@ -148,10 +232,10 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
|
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: 2.6
|
ruby-version: '2.6'
|
||||||
bundler-cache: true
|
bundler-cache: true
|
||||||
- run: bundle exec rails --version
|
- run: bundle exec rails --version
|
||||||
|
|
||||||
@@ -161,7 +245,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/nokogiri.gemfile
|
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/nokogiri.gemfile
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: truffleruby-head
|
ruby-version: truffleruby-head
|
||||||
@@ -171,7 +255,7 @@ jobs:
|
|||||||
lint:
|
lint:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- run: yarn install
|
- run: yarn install
|
||||||
- run: yarn run package
|
- run: yarn run package
|
||||||
- name: Check generated files are up to date
|
- name: Check generated files are up to date
|
||||||
|
|||||||
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
nodejs 12.0.0
|
nodejs 16.0.0
|
||||||
ruby 2.7.0
|
ruby 2.7.0
|
||||||
|
|||||||
+2
-1
@@ -22,4 +22,5 @@ $ cp pre-commit .git/hooks/pre-commit
|
|||||||
|
|
||||||
## Adding a new Ruby version
|
## Adding a new Ruby version
|
||||||
|
|
||||||
Add the new version in `ruby-builder-versions.js`, then follow the steps above in [Regenerating dist/index.js](#regenerating-distindexjs) to update `dist/index.js`. Finally, update the "Supported Versions" section of the README if needed.
|
This is entirely automated now since [this issue](https://github.com/ruby/setup-ruby/issues/254).
|
||||||
|
If you do not see a new version more than 24 hours after it was released feel free to file an issue.
|
||||||
|
|||||||
@@ -14,10 +14,10 @@ This action currently supports these versions of MRI, JRuby and TruffleRuby:
|
|||||||
|
|
||||||
| Interpreter | Versions |
|
| Interpreter | Versions |
|
||||||
| ----------- | -------- |
|
| ----------- | -------- |
|
||||||
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.1.0, head, debug, mingw, mswin |
|
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.2.0-preview1, head, debug, mingw, mswin |
|
||||||
| `jruby` | 9.1.17.0 - 9.3.2.0, head |
|
| `jruby` | 9.1.17.0 - 9.3.6.0, head |
|
||||||
| `truffleruby` | 19.3.0 - 21.3.0, head |
|
| `truffleruby` | 19.3.0 - 22.1.0, head |
|
||||||
| `truffleruby+graalvm` | 21.2.0 - 21.3.0, head |
|
| `truffleruby+graalvm` | 21.2.0 - 22.1.0, 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.
|
||||||
@@ -35,13 +35,15 @@ which means Ruby ≤ 2.4 is unmaintained and considered insecure.
|
|||||||
|
|
||||||
### Supported Platforms
|
### Supported Platforms
|
||||||
|
|
||||||
The action works for all [GitHub-hosted runners](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/virtual-environments-for-github-hosted-runners).
|
The action works on these [GitHub-hosted runners](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/virtual-environments-for-github-hosted-runners) virtual environments. Virtual environments not listed below are unsupported.
|
||||||
|
|
||||||
| Operating System | Recommended | Other Supported Versions |
|
| Operating System | Recommended | Other Supported Versions |
|
||||||
| ----------- | -------- | -------- |
|
| ----------- | -------- | -------- |
|
||||||
| Ubuntu | `ubuntu-latest` (= `ubuntu-20.04`) | `ubuntu-18.04`, `ubuntu-16.04` |
|
| Ubuntu | `ubuntu-latest` (= `ubuntu-20.04`) | `ubuntu-18.04`, `ubuntu-22.04` (beta, only `ruby: 3.1 - head`) |
|
||||||
| macOS | `macos-latest` (= `macos-10.15`) | `macos-11.0` |
|
| macOS | `macos-latest` (= `macos-11`) | `macos-10.15`, `macos-12` (beta) |
|
||||||
| Windows | `windows-latest` (= `windows-2019`) | `windows-2016` |
|
| Windows | `windows-latest` (= `windows-2022`) | `windows-2019` |
|
||||||
|
|
||||||
|
On `ubuntu-22.04` (beta), only `ruby: 3.1 - head` are supported, due to Ubuntu 22.04 only supporting OpenSSL 3.
|
||||||
|
|
||||||
The prebuilt releases are generated by [ruby-builder](https://github.com/ruby/ruby-builder)
|
The prebuilt releases are generated by [ruby-builder](https://github.com/ruby/ruby-builder)
|
||||||
and on Windows by [RubyInstaller2](https://github.com/oneclick/rubyinstaller2).
|
and on Windows by [RubyInstaller2](https://github.com/oneclick/rubyinstaller2).
|
||||||
@@ -50,8 +52,8 @@ and on Windows by [RubyInstaller2](https://github.com/oneclick/rubyinstaller2).
|
|||||||
`jruby-head` is generated by [jruby-dev-builder](https://github.com/ruby/jruby-dev-builder),
|
`jruby-head` is generated by [jruby-dev-builder](https://github.com/ruby/jruby-dev-builder),
|
||||||
`truffleruby-head` is generated by [truffleruby-dev-builder](https://github.com/ruby/truffleruby-dev-builder)
|
`truffleruby-head` is generated by [truffleruby-dev-builder](https://github.com/ruby/truffleruby-dev-builder)
|
||||||
and `truffleruby+graalvm` is generated by [graalvm-ce-dev-builds](https://github.com/graalvm/graalvm-ce-dev-builds).
|
and `truffleruby+graalvm` is generated by [graalvm-ce-dev-builds](https://github.com/graalvm/graalvm-ce-dev-builds).
|
||||||
The full list of available Ruby versions can be seen in [ruby-builder-versions.js](ruby-builder-versions.js)
|
The full list of available Ruby versions can be seen in [ruby-builder-versions.json](ruby-builder-versions.json)
|
||||||
for Ubuntu and macOS and in [windows-versions.js](windows-versions.js) for Windows.
|
for Ubuntu and macOS and in [windows-versions.json](windows-versions.json) for Windows.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
@@ -64,10 +66,10 @@ jobs:
|
|||||||
test:
|
test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- uses: ruby/setup-ruby@v1
|
- uses: ruby/setup-ruby@v1
|
||||||
with:
|
with:
|
||||||
ruby-version: 2.6 # Not needed with a .ruby-version file
|
ruby-version: '3.0' # Not needed with a .ruby-version file
|
||||||
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
||||||
- run: bundle exec rake
|
- run: bundle exec rake
|
||||||
```
|
```
|
||||||
@@ -86,10 +88,10 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest]
|
os: [ubuntu-latest, macos-latest]
|
||||||
# Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0'
|
# Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0'
|
||||||
ruby: [2.6, 2.7, '3.0', 3.1, head, jruby, jruby-head, truffleruby, truffleruby-head]
|
ruby: ['2.7', '3.0', '3.1', head, jruby, jruby-head, truffleruby, truffleruby-head]
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- uses: ruby/setup-ruby@v1
|
- uses: ruby/setup-ruby@v1
|
||||||
with:
|
with:
|
||||||
ruby-version: ${{ matrix.ruby }}
|
ruby-version: ${{ matrix.ruby }}
|
||||||
@@ -112,10 +114,10 @@ jobs:
|
|||||||
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: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
|
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- uses: ruby/setup-ruby@v1
|
- uses: ruby/setup-ruby@v1
|
||||||
with:
|
with:
|
||||||
ruby-version: 2.6
|
ruby-version: '3.0'
|
||||||
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
||||||
- run: bundle exec rake
|
- run: bundle exec rake
|
||||||
```
|
```
|
||||||
@@ -127,8 +129,8 @@ and the [condition and expression syntax](https://help.github.com/en/actions/ref
|
|||||||
### Supported Version Syntax
|
### Supported Version Syntax
|
||||||
|
|
||||||
* engine-version like `ruby-2.6.5` and `truffleruby-19.3.0`
|
* engine-version like `ruby-2.6.5` and `truffleruby-19.3.0`
|
||||||
* short version like `2.6`, automatically using the latest release matching that version (`2.6.5`)
|
* short version like `'2.6'`, automatically using the latest release matching that version (`2.6.10`)
|
||||||
* version only like `2.6.5`, assumes MRI for the engine
|
* version only like `'2.6.5'`, assumes MRI for the engine
|
||||||
* engine only like `truffleruby`, uses the latest stable release of that implementation
|
* engine only like `truffleruby`, uses the latest stable release of that implementation
|
||||||
* `.ruby-version` reads from the project's `.ruby-version` file
|
* `.ruby-version` reads from the project's `.ruby-version` file
|
||||||
* `.tool-versions` reads from the project's `.tool-versions` file
|
* `.tool-versions` reads from the project's `.tool-versions` file
|
||||||
@@ -139,6 +141,18 @@ and the [condition and expression syntax](https://help.github.com/en/actions/ref
|
|||||||
The `working-directory` input can be set to resolve `.ruby-version`, `.tool-versions` and `Gemfile.lock`
|
The `working-directory` input can be set to resolve `.ruby-version`, `.tool-versions` and `Gemfile.lock`
|
||||||
if they are not at the root of the repository, see [action.yml](action.yml) for details.
|
if they are not at the root of the repository, see [action.yml](action.yml) for details.
|
||||||
|
|
||||||
|
### RubyGems
|
||||||
|
|
||||||
|
By default, the default RubyGems version that comes with each Ruby is used.
|
||||||
|
However, users can optionally customize the RubyGems version that they want by
|
||||||
|
setting the `rubygems` input.
|
||||||
|
|
||||||
|
See [action.yml](action.yml) for more details about the `rubygems` input.
|
||||||
|
|
||||||
|
If you're running into `ArgumentError: wrong number of arguments (given 4,
|
||||||
|
expected 1)` errors with a stacktrace including Psych and RubyGems entries, you
|
||||||
|
should be able to fix them by setting `rubygems: 3.0.0` or higher.
|
||||||
|
|
||||||
### Bundler
|
### Bundler
|
||||||
|
|
||||||
By default, if there is a `Gemfile.lock` file (or `$BUNDLE_GEMFILE.lock` or `gems.locked`) with a `BUNDLED WITH` section,
|
By default, if there is a `Gemfile.lock` file (or `$BUNDLE_GEMFILE.lock` or `gems.locked`) with a `BUNDLED WITH` section,
|
||||||
@@ -213,7 +227,8 @@ It is recommended to first get your build working on Ubuntu and macOS before try
|
|||||||
* 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.
|
||||||
* For Ruby ≥ 2.4, MSYS2 is prepended to the `Path`, similar to what RubyInstaller2 does.
|
* For Ruby ≥ 2.4, MSYS2 is prepended to the `Path`, similar to what RubyInstaller2 does.
|
||||||
* For Ruby < 2.4, the DevKit MSYS tools are installed and prepended to the `Path`.
|
* For Ruby < 2.4, the DevKit MSYS tools are installed and prepended to the `Path`.
|
||||||
* JRuby on Windows has a known bug that `bundle exec rake` [fails](https://github.com/ruby/setup-ruby/issues/18).
|
* Use JRuby 9.2.20+ on Windows (older versions have [bugs](https://github.com/ruby/setup-ruby/issues/18#issuecomment-889072695)).
|
||||||
|
* JRuby on Windows has multiple issues ([jruby/jruby#7106](https://github.com/jruby/jruby/issues/7106), [jruby/jruby#7182](https://github.com/jruby/jruby/issues/7182)).
|
||||||
|
|
||||||
## Versioning
|
## Versioning
|
||||||
|
|
||||||
@@ -235,7 +250,7 @@ if the [virtual environment](https://github.com/actions/virtual-environments) is
|
|||||||
* Make sure to use the same operating system and version.
|
* Make sure to use the same operating system and version.
|
||||||
* Set the environment variable `ImageOS` on the runner to the corresponding value on GitHub-hosted runners (e.g. `ubuntu18`/`macos1015`/`win19`). This is necessary to detect the operating system and version.
|
* Set the environment variable `ImageOS` on the runner to the corresponding value on GitHub-hosted runners (e.g. `ubuntu18`/`macos1015`/`win19`). This is necessary to detect the operating system and version.
|
||||||
* Make sure to use the same version of libssl.
|
* Make sure to use the same version of libssl.
|
||||||
* Make sure that the operating system has `libyaml-0` installed
|
* Make sure that the operating system has `libyaml-0` and [`libgmp`](https://stackoverflow.com/questions/26555902/ruby-v-dyld-library-not-loaded-usr-local-lib-libgmp-10-dylib) installed
|
||||||
* The default tool cache directory (`/opt/hostedtoolcache` on Linux, `/Users/runner/hostedtoolcache` on macOS,
|
* The default tool cache directory (`/opt/hostedtoolcache` on Linux, `/Users/runner/hostedtoolcache` on macOS,
|
||||||
`C:/hostedtoolcache/windows` on Windows) must be writable by the `runner` user.
|
`C:/hostedtoolcache/windows` on Windows) must be writable by the `runner` user.
|
||||||
This is necessary since the Ruby builds embed the install path when built and cannot be moved around.
|
This is necessary since the Ruby builds embed the install path when built and cannot be moved around.
|
||||||
|
|||||||
+9
-11
@@ -7,32 +7,30 @@ branding:
|
|||||||
inputs:
|
inputs:
|
||||||
ruby-version:
|
ruby-version:
|
||||||
description: 'Engine and version to use, see the syntax in the README. Reads from .ruby-version or .tool-versions if unset.'
|
description: 'Engine and version to use, see the syntax in the README. Reads from .ruby-version or .tool-versions if unset.'
|
||||||
required: false
|
|
||||||
default: 'default'
|
default: 'default'
|
||||||
|
rubygems:
|
||||||
|
description: |
|
||||||
|
The version of RubyGems to use. Either 'default' (the default), 'latest', or a version number (e.g., 3.3.5).
|
||||||
|
For 'default', no action is taken and the version of RubyGems that comes with Ruby by default is used.
|
||||||
|
For 'latest', `gem update --system` is run to update to the latest RubyGems version.
|
||||||
|
Similarly, if a version number is given, `gem update --system <version>` is run to update to that version of RubyGems, as long as that version is newer than the one provided by default.
|
||||||
bundler:
|
bundler:
|
||||||
description: |
|
description: |
|
||||||
The version of Bundler to install. Either 'none', 'latest', 'Gemfile.lock', or a version number (e.g., 1, 2, 2.1.4).
|
The version of Bundler to install. Either 'none', 'latest', 'Gemfile.lock', or a version number (e.g., 1, 2, 2.1, 2.1.4).
|
||||||
For 'Gemfile.lock', the version is determined based on the BUNDLED WITH section from the file Gemfile.lock, $BUNDLE_GEMFILE.lock or gems.locked.
|
For 'Gemfile.lock', the version is determined based on the BUNDLED WITH section from the file Gemfile.lock, $BUNDLE_GEMFILE.lock or gems.locked.
|
||||||
Defaults to 'Gemfile.lock' if the file exists and 'latest' otherwise.
|
Defaults to 'default', which means 'Gemfile.lock' if the file exists and 'latest' otherwise.
|
||||||
required: false
|
|
||||||
default: 'default'
|
|
||||||
bundler-cache:
|
bundler-cache:
|
||||||
description: 'Run "bundle install", and cache the result automatically. Either true or false.'
|
description: 'Run "bundle install", and cache the result automatically. Either true or false.'
|
||||||
required: false
|
|
||||||
default: 'false'
|
default: 'false'
|
||||||
working-directory:
|
working-directory:
|
||||||
description: 'The working directory to use for resolving paths for .ruby-version, .tool-versions and Gemfile.lock.'
|
description: 'The working directory to use for resolving paths for .ruby-version, .tool-versions and Gemfile.lock.'
|
||||||
required: false
|
|
||||||
default: '.'
|
|
||||||
cache-version:
|
cache-version:
|
||||||
description: |
|
description: |
|
||||||
Arbitrary string that will be added to the cache key of the bundler cache. Set or change it if you need
|
Arbitrary string that will be added to the cache key of the bundler cache. Set or change it if you need
|
||||||
to invalidate the cache.
|
to invalidate the cache.
|
||||||
required: false
|
|
||||||
default: '0'
|
|
||||||
outputs:
|
outputs:
|
||||||
ruby-prefix:
|
ruby-prefix:
|
||||||
description: 'The prefix of the installed ruby'
|
description: 'The prefix of the installed ruby'
|
||||||
runs:
|
runs:
|
||||||
using: 'node12'
|
using: 'node16'
|
||||||
main: 'dist/index.js'
|
main: 'dist/index.js'
|
||||||
|
|||||||
+41
-19
@@ -50,9 +50,14 @@ async function afterLockFile(lockFile, platform, engine, rubyVersion) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function installBundler(bundlerVersionInput, lockFile, platform, rubyPrefix, engine, rubyVersion) {
|
export async function installBundler(bundlerVersionInput, rubygemsInputSet, lockFile, platform, rubyPrefix, engine, rubyVersion) {
|
||||||
let bundlerVersion = bundlerVersionInput
|
let bundlerVersion = bundlerVersionInput
|
||||||
|
|
||||||
|
if (rubygemsInputSet && bundlerVersion === 'default') {
|
||||||
|
console.log('Using the Bundler installed by updating RubyGems')
|
||||||
|
return 'unknown'
|
||||||
|
}
|
||||||
|
|
||||||
if (bundlerVersion === 'default' || bundlerVersion === 'Gemfile.lock') {
|
if (bundlerVersion === 'default' || bundlerVersion === 'Gemfile.lock') {
|
||||||
bundlerVersion = readBundledWithFromGemfileLock(lockFile)
|
bundlerVersion = readBundledWithFromGemfileLock(lockFile)
|
||||||
|
|
||||||
@@ -65,33 +70,51 @@ export async function installBundler(bundlerVersionInput, lockFile, platform, ru
|
|||||||
bundlerVersion = '2'
|
bundlerVersion = '2'
|
||||||
}
|
}
|
||||||
|
|
||||||
if (/^\d+/.test(bundlerVersion)) {
|
if (/^\d+(?:\.\d+){0,2}$/.test(bundlerVersion)) {
|
||||||
// OK
|
// OK - input is a 1, 2, or 3 part version number
|
||||||
} else {
|
} else {
|
||||||
throw new Error(`Cannot parse bundler input: ${bundlerVersion}`)
|
throw new Error(`Cannot parse bundler input: ${bundlerVersion}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (engine === 'ruby' && common.floatVersion(rubyVersion) <= 2.2) {
|
const floatVersion = common.floatVersion(rubyVersion)
|
||||||
console.log('Bundler 2 requires Ruby 2.3+, using Bundler 1 on Ruby <= 2.2')
|
|
||||||
bundlerVersion = '1'
|
// Use Bundler 1 when we know Bundler 2 does not work
|
||||||
} else if (engine === 'ruby' && /^2\.3\.[01]/.test(rubyVersion)) {
|
if (bundlerVersion.startsWith('2')) {
|
||||||
console.log('Ruby 2.3.0 and 2.3.1 have shipped with an old rubygems that only works with Bundler 1')
|
if (engine === 'ruby' && floatVersion <= 2.2) {
|
||||||
bundlerVersion = '1'
|
console.log('Bundler 2 requires Ruby 2.3+, using Bundler 1 on Ruby <= 2.2')
|
||||||
} else if (engine === 'jruby' && rubyVersion.startsWith('9.1')) { // JRuby 9.1 targets Ruby 2.3, treat it the same
|
bundlerVersion = '1'
|
||||||
console.log('JRuby 9.1 has a bug with Bundler 2 (https://github.com/ruby/setup-ruby/issues/108), using Bundler 1 instead on JRuby 9.1')
|
} else if (engine === 'ruby' && /^2\.3\.[01]/.test(rubyVersion)) {
|
||||||
bundlerVersion = '1'
|
console.log('Ruby 2.3.0 and 2.3.1 have shipped with an old rubygems that only works with Bundler 1')
|
||||||
|
bundlerVersion = '1'
|
||||||
|
} else if (engine === 'jruby' && rubyVersion.startsWith('9.1')) { // JRuby 9.1 targets Ruby 2.3, treat it the same
|
||||||
|
console.log('JRuby 9.1 has a bug with Bundler 2 (https://github.com/ruby/setup-ruby/issues/108), using Bundler 1 instead on JRuby 9.1')
|
||||||
|
bundlerVersion = '1'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (common.isHeadVersion(rubyVersion) && common.isBundler2Default(engine, rubyVersion) && bundlerVersion.startsWith('2')) {
|
// Workaround for truffleruby 22.0 + latest Bundler, use shipped Bundler instead: https://github.com/oracle/truffleruby/issues/2586
|
||||||
|
const truffleruby22workaround = engine.startsWith('truffleruby') && rubyVersion.startsWith('22.0')
|
||||||
|
const useShippedBundler2 = common.isHeadVersion(rubyVersion) || truffleruby22workaround
|
||||||
|
|
||||||
|
if (useShippedBundler2 && common.isBundler2Default(engine, rubyVersion) && bundlerVersion.startsWith('2')) {
|
||||||
// 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}`)
|
if (truffleruby22workaround) {
|
||||||
|
console.log(`Using Bundler 2 shipped with ${engine}-${rubyVersion} (workaround for https://github.com/oracle/truffleruby/issues/2586 on truffleruby 22.0)`)
|
||||||
|
} else {
|
||||||
|
console.log(`Using Bundler 2 shipped with ${engine}-${rubyVersion} (head versions do not always support the latest Bundler release)`)
|
||||||
|
}
|
||||||
} else if (engine.startsWith('truffleruby') && common.isBundler1Default(engine, rubyVersion) && bundlerVersion.startsWith('1')) {
|
} else if (engine.startsWith('truffleruby') && common.isBundler1Default(engine, rubyVersion) && bundlerVersion.startsWith('1')) {
|
||||||
console.log(`Using Bundler 1 shipped with ${engine}-${rubyVersion}`)
|
console.log(`Using Bundler 1 shipped with ${engine}-${rubyVersion} (required for truffleruby < 21.0)`)
|
||||||
} else {
|
} else {
|
||||||
const gem = path.join(rubyPrefix, 'bin', 'gem')
|
const gem = path.join(rubyPrefix, 'bin', 'gem')
|
||||||
const bundlerVersionConstraint = /^\d+\.\d+\.\d+/.test(bundlerVersion) ? bundlerVersion : `~> ${bundlerVersion}`
|
// Workaround for https://github.com/rubygems/rubygems/issues/5245
|
||||||
await exec.exec(gem, ['install', 'bundler', '-v', bundlerVersionConstraint])
|
const force = (platform.startsWith('windows-') && engine === 'ruby' && floatVersion >= 3.1) ? ['--force'] : []
|
||||||
|
|
||||||
|
const versionParts = [...bundlerVersion.matchAll(/\d+/g)].length
|
||||||
|
const bundlerVersionConstraint = versionParts === 3 ? bundlerVersion : `~> ${bundlerVersion}.0`
|
||||||
|
|
||||||
|
await exec.exec(gem, ['install', 'bundler', ...force, '-v', bundlerVersionConstraint])
|
||||||
}
|
}
|
||||||
|
|
||||||
return bundlerVersion
|
return bundlerVersion
|
||||||
@@ -185,8 +208,7 @@ async function computeBaseKey(platform, engine, version, lockFile, cacheVersion)
|
|||||||
|
|
||||||
if (common.isHeadVersion(version)) {
|
if (common.isHeadVersion(version)) {
|
||||||
if (engine !== 'jruby') {
|
if (engine !== 'jruby') {
|
||||||
// CRuby dev versions do not change the ABI version when the ABI changes, so use the commit as the ABI version
|
let print_abi = "print RbConfig::CONFIG['ruby_version']"
|
||||||
let print_abi = engine === 'ruby' ? 'print RUBY_REVISION' : "print RbConfig::CONFIG['ruby_version']"
|
|
||||||
let abi = ''
|
let abi = ''
|
||||||
await exec.exec('ruby', ['-e', print_abi], {
|
await exec.exec('ruby', ['-e', print_abi], {
|
||||||
silent: true,
|
silent: true,
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ export async function measure(name, block) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function isHeadVersion(rubyVersion) {
|
export function isHeadVersion(rubyVersion) {
|
||||||
return rubyVersion === 'head' || rubyVersion === 'debug' || rubyVersion === 'mingw' || rubyVersion === 'mswin'
|
return ['head', 'debug', 'mingw', 'mswin', 'ucrt'].includes(rubyVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isStableVersion(rubyVersion) {
|
export function isStableVersion(rubyVersion) {
|
||||||
@@ -98,6 +98,17 @@ function getImageOS() {
|
|||||||
return imageOS
|
return imageOS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const supportedPlatforms = [
|
||||||
|
'ubuntu-18.04',
|
||||||
|
'ubuntu-20.04',
|
||||||
|
'ubuntu-22.04',
|
||||||
|
'macos-10.15',
|
||||||
|
'macos-11',
|
||||||
|
'macos-12',
|
||||||
|
'windows-2019',
|
||||||
|
'windows-2022',
|
||||||
|
]
|
||||||
|
|
||||||
export function getVirtualEnvironmentName() {
|
export function getVirtualEnvironmentName() {
|
||||||
const imageOS = getImageOS()
|
const imageOS = getImageOS()
|
||||||
|
|
||||||
@@ -108,7 +119,11 @@ export function getVirtualEnvironmentName() {
|
|||||||
|
|
||||||
match = imageOS.match(/^macos(\d{2})(\d+)?/) // e.g. macos1015, macos11
|
match = imageOS.match(/^macos(\d{2})(\d+)?/) // e.g. macos1015, macos11
|
||||||
if (match) {
|
if (match) {
|
||||||
return `macos-${match[1]}.${match[2] || '0'}`
|
if (match[2]) {
|
||||||
|
return `macos-${match[1]}.${match[2]}`
|
||||||
|
} else {
|
||||||
|
return `macos-${match[1]}`
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
match = imageOS.match(/^win(\d+)/) // e.g. win19
|
match = imageOS.match(/^win(\d+)/) // e.g. win19
|
||||||
@@ -155,7 +170,15 @@ export function win2nix(path) {
|
|||||||
return path.replace(/\\/g, '/').replace(/ /g, '\\ ')
|
return path.replace(/\\/g, '/').replace(/ /g, '\\ ')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// JRuby is installed after setupPath is called, so folder doesn't exist
|
||||||
|
function rubyIsUCRT(path) {
|
||||||
|
return !!(fs.existsSync(path) &&
|
||||||
|
fs.readdirSync(path, { withFileTypes: true }).find(dirent =>
|
||||||
|
dirent.isFile() && dirent.name.match(/^x64-(ucrt|vcruntime\d{3})-ruby\d{3}\.dll$/)))
|
||||||
|
}
|
||||||
|
|
||||||
export function setupPath(newPathEntries) {
|
export function setupPath(newPathEntries) {
|
||||||
|
let msys2Type = null
|
||||||
const envPath = windows ? 'Path' : 'PATH'
|
const envPath = windows ? 'Path' : 'PATH'
|
||||||
const originalPath = process.env[envPath].split(path.delimiter)
|
const originalPath = process.env[envPath].split(path.delimiter)
|
||||||
let cleanPath = originalPath.filter(entry => !/\bruby\b/i.test(entry))
|
let cleanPath = originalPath.filter(entry => !/\bruby\b/i.test(entry))
|
||||||
@@ -176,8 +199,11 @@ export function setupPath(newPathEntries) {
|
|||||||
// Then add new path entries using core.addPath()
|
// Then add new path entries using core.addPath()
|
||||||
let newPath
|
let newPath
|
||||||
if (windows) {
|
if (windows) {
|
||||||
|
// main Ruby dll determines whether mingw or ucrt build
|
||||||
|
msys2Type = rubyIsUCRT(newPathEntries[0]) ? 'ucrt64' : 'mingw64'
|
||||||
|
|
||||||
// add MSYS2 in path for all Rubies on Windows, as it provides a better bash shell and a native toolchain
|
// add MSYS2 in path for all Rubies on Windows, as it provides a better bash shell and a native toolchain
|
||||||
const msys2 = ['C:\\msys64\\mingw64\\bin', 'C:\\msys64\\usr\\bin']
|
const msys2 = [`C:\\msys64\\${msys2Type}\\bin`, 'C:\\msys64\\usr\\bin']
|
||||||
newPath = [...newPathEntries, ...msys2]
|
newPath = [...newPathEntries, ...msys2]
|
||||||
} else {
|
} else {
|
||||||
newPath = newPathEntries
|
newPath = newPathEntries
|
||||||
@@ -189,4 +215,5 @@ export function setupPath(newPathEntries) {
|
|||||||
core.endGroup()
|
core.endGroup()
|
||||||
|
|
||||||
core.addPath(newPath.join(path.delimiter))
|
core.addPath(newPath.join(path.delimiter))
|
||||||
|
return msys2Type
|
||||||
}
|
}
|
||||||
|
|||||||
+21102
-14899
File diff suppressed because one or more lines are too long
@@ -28,6 +28,6 @@ versions = entries.select { |entry|
|
|||||||
versions['head'] = 'https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-head-x64.7z'
|
versions['head'] = 'https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-head-x64.7z'
|
||||||
versions['mingw'] = 'https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mingw.7z'
|
versions['mingw'] = 'https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mingw.7z'
|
||||||
versions['mswin'] = 'https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mswin.7z'
|
versions['mswin'] = 'https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mswin.7z'
|
||||||
|
versions['ucrt'] = 'https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-ucrt.7z'
|
||||||
|
|
||||||
js = "export const versions = #{JSON.pretty_generate(versions)}\n"
|
File.binwrite 'windows-versions.json', "#{JSON.pretty_generate(versions)}\n"
|
||||||
File.binwrite 'windows-versions.js', js
|
|
||||||
|
|||||||
@@ -2,15 +2,18 @@ const os = require('os')
|
|||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const core = require('@actions/core')
|
const core = require('@actions/core')
|
||||||
|
const exec = require('@actions/exec')
|
||||||
const common = require('./common')
|
const common = require('./common')
|
||||||
|
const rubygems = require('./rubygems')
|
||||||
const bundler = require('./bundler')
|
const bundler = require('./bundler')
|
||||||
|
|
||||||
const windows = common.windows
|
const windows = common.windows
|
||||||
|
|
||||||
const inputDefaults = {
|
const inputDefaults = {
|
||||||
'ruby-version': 'default',
|
'ruby-version': 'default',
|
||||||
|
'rubygems': 'default',
|
||||||
'bundler': 'default',
|
'bundler': 'default',
|
||||||
'bundler-cache': 'true',
|
'bundler-cache': 'false',
|
||||||
'working-directory': '.',
|
'working-directory': '.',
|
||||||
'cache-version': bundler.DEFAULT_CACHE_VERSION,
|
'cache-version': bundler.DEFAULT_CACHE_VERSION,
|
||||||
}
|
}
|
||||||
@@ -20,7 +23,7 @@ export async function run() {
|
|||||||
try {
|
try {
|
||||||
await setupRuby()
|
await setupRuby()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
core.setFailed(error.message)
|
core.setFailed(error.stack)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -39,7 +42,7 @@ export async function setupRuby(options = {}) {
|
|||||||
const [engine, parsedVersion] = parseRubyEngineAndVersion(inputs['ruby-version'])
|
const [engine, parsedVersion] = parseRubyEngineAndVersion(inputs['ruby-version'])
|
||||||
|
|
||||||
let installer
|
let installer
|
||||||
if (platform.startsWith('windows-') && engine !== 'jruby') {
|
if (platform.startsWith('windows-') && engine === 'ruby') {
|
||||||
installer = require('./windows')
|
installer = require('./windows')
|
||||||
} else {
|
} else {
|
||||||
installer = require('./ruby-builder')
|
installer = require('./ruby-builder')
|
||||||
@@ -51,8 +54,24 @@ export async function setupRuby(options = {}) {
|
|||||||
createGemRC(engine, version)
|
createGemRC(engine, version)
|
||||||
envPreInstall()
|
envPreInstall()
|
||||||
|
|
||||||
|
// JRuby can use compiled extension code, so make sure gcc exists.
|
||||||
|
// As of Jan-2022, JRuby compiles against msvcrt.
|
||||||
|
if (platform.startsWith('windows') && (engine === 'jruby') &&
|
||||||
|
!fs.existsSync('C:\\msys64\\mingw64\\bin\\gcc.exe')) {
|
||||||
|
await require('./windows').installJRubyTools()
|
||||||
|
}
|
||||||
|
|
||||||
const rubyPrefix = await installer.install(platform, engine, version)
|
const rubyPrefix = await installer.install(platform, engine, version)
|
||||||
|
|
||||||
|
await common.measure('Print Ruby version', async () =>
|
||||||
|
await exec.exec('ruby', ['--version']))
|
||||||
|
|
||||||
|
const rubygemsInputSet = inputs['rubygems'] !== 'default'
|
||||||
|
if (rubygemsInputSet) {
|
||||||
|
await common.measure('Updating RubyGems', async () =>
|
||||||
|
rubygems.rubygemsUpdate(inputs['rubygems'], rubyPrefix))
|
||||||
|
}
|
||||||
|
|
||||||
// When setup-ruby is used by other actions, this allows code in them to run
|
// When setup-ruby is used by other actions, this allows code in them to run
|
||||||
// before 'bundle install'. Installed dependencies may require additional
|
// before 'bundle install'. Installed dependencies may require additional
|
||||||
// libraries & headers, build tools, etc.
|
// libraries & headers, build tools, etc.
|
||||||
@@ -60,16 +79,17 @@ export async function setupRuby(options = {}) {
|
|||||||
await inputs['afterSetupPathHook']({ platform, rubyPrefix, engine, version })
|
await inputs['afterSetupPathHook']({ platform, rubyPrefix, engine, version })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const [gemfile, lockFile] = bundler.detectGemfiles()
|
||||||
|
let bundlerVersion = 'unknown'
|
||||||
|
|
||||||
if (inputs['bundler'] !== 'none') {
|
if (inputs['bundler'] !== 'none') {
|
||||||
const [gemfile, lockFile] = bundler.detectGemfiles()
|
bundlerVersion = await common.measure('Installing Bundler', async () =>
|
||||||
|
bundler.installBundler(inputs['bundler'], rubygemsInputSet, lockFile, platform, rubyPrefix, engine, version))
|
||||||
|
}
|
||||||
|
|
||||||
const bundlerVersion = await common.measure('Installing Bundler', async () =>
|
if (inputs['bundler-cache'] === 'true') {
|
||||||
bundler.installBundler(inputs['bundler'], lockFile, platform, rubyPrefix, engine, version))
|
await common.measure('bundle install', async () =>
|
||||||
|
bundler.bundleInstall(gemfile, lockFile, platform, engine, version, bundlerVersion, inputs['cache-version']))
|
||||||
if (inputs['bundler-cache'] === 'true') {
|
|
||||||
await common.measure('bundle install', async () =>
|
|
||||||
bundler.bundleInstall(gemfile, lockFile, platform, engine, version, bundlerVersion, inputs['cache-version']))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
core.setOutput('ruby-prefix', rubyPrefix)
|
core.setOutput('ruby-prefix', rubyPrefix)
|
||||||
@@ -130,8 +150,7 @@ function validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVe
|
|||||||
} else {
|
} else {
|
||||||
throw new Error(`Unknown version ${parsedVersion} for ${engine} on ${platform}
|
throw new Error(`Unknown version ${parsedVersion} for ${engine} on ${platform}
|
||||||
available versions for ${engine} on ${platform}: ${engineVersions.join(', ')}
|
available versions for ${engine} on ${platform}: ${engineVersions.join(', ')}
|
||||||
Make sure you use the latest version of the action with - uses: ruby/setup-ruby@v1
|
Make sure you use the latest version of the action with - uses: ruby/setup-ruby@v1`)
|
||||||
File an issue at https://github.com/ruby/setup-ruby/issues if would like support for a new version`)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,62 @@
|
|||||||
|
engine_input, version = ARGV.fetch(0).split('-', 2)
|
||||||
|
|
||||||
|
if engine_input == 'windows'
|
||||||
|
require_relative 'generate-windows-versions'
|
||||||
|
exit
|
||||||
|
end
|
||||||
|
|
||||||
|
MATCH = case engine_input
|
||||||
|
when 'ruby', 'jruby'
|
||||||
|
/^\d+\.\d+\./
|
||||||
|
when 'truffleruby'
|
||||||
|
/^\d+\./
|
||||||
|
end
|
||||||
|
|
||||||
|
raise unless version[MATCH]
|
||||||
|
|
||||||
|
engines = [engine_input]
|
||||||
|
engines << 'truffleruby+graalvm' if engine_input == 'truffleruby'
|
||||||
|
|
||||||
|
engines.each do |engine|
|
||||||
|
puts engine
|
||||||
|
|
||||||
|
# Update ruby-builder-versions.json
|
||||||
|
file = "#{__dir__}/ruby-builder-versions.json"
|
||||||
|
lines = File.readlines(file, chomp: true)
|
||||||
|
|
||||||
|
from = lines.index { |line| line.include?(%{"#{engine}": [}) }
|
||||||
|
raise "Could not find start of #{engine}" unless from
|
||||||
|
to = from
|
||||||
|
to += 1 until lines[to].include?(']')
|
||||||
|
|
||||||
|
from += 1 # [
|
||||||
|
to -= 2 # head, ]
|
||||||
|
|
||||||
|
puts lines[from..to]
|
||||||
|
|
||||||
|
release_line = lines[from..to].find { |line|
|
||||||
|
v = line[/"([^"]+)"/, 1] and v[MATCH] == version[MATCH]
|
||||||
|
}
|
||||||
|
|
||||||
|
if release_line
|
||||||
|
append = " #{version.inspect},"
|
||||||
|
release_line << append unless release_line.end_with?(append)
|
||||||
|
else
|
||||||
|
lines.insert to+1, " #{version.inspect},"
|
||||||
|
end
|
||||||
|
|
||||||
|
File.write(file, lines.join("\n") + "\n")
|
||||||
|
|
||||||
|
# Update README.md
|
||||||
|
file = "#{__dir__}/README.md"
|
||||||
|
lines = File.readlines(file)
|
||||||
|
engine_line = lines.find { |line| line.start_with?("| `#{engine}`") }
|
||||||
|
engine_line.sub!(/(.+ (?:-|until)) (\d+(?:\.\d+)+)/) do
|
||||||
|
if Gem::Version.new(version) > Gem::Version.new($2)
|
||||||
|
"#{$1} #{version}"
|
||||||
|
else
|
||||||
|
$&
|
||||||
|
end
|
||||||
|
end
|
||||||
|
File.write(file, lines.join)
|
||||||
|
end
|
||||||
+7
-6
@@ -22,13 +22,14 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/ruby/setup-ruby",
|
"homepage": "https://github.com/ruby/setup-ruby",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/cache": "^1.0.8",
|
"@actions/cache": "^2.0.2",
|
||||||
"@actions/core": "^1.4.0",
|
"@actions/core": "^1.7.0",
|
||||||
"@actions/exec": "^1.1.0",
|
"@actions/exec": "^1.1.1",
|
||||||
"@actions/io": "^1.1.1",
|
"@actions/io": "^1.1.2",
|
||||||
"@actions/tool-cache": "^1.7.1"
|
"@actions/tool-cache": "^1.7.2",
|
||||||
|
"semver": "^7.3.7"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vercel/ncc": "^0.28.6"
|
"@vercel/ncc": "^0.33.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
export function getVersions(platform) {
|
|
||||||
const versions = {
|
|
||||||
"ruby": [
|
|
||||||
"1.9.3-p551",
|
|
||||||
"2.0.0-p648",
|
|
||||||
"2.1.9",
|
|
||||||
"2.2.10",
|
|
||||||
"2.3.0", "2.3.1", "2.3.2", "2.3.3", "2.3.4", "2.3.5", "2.3.6", "2.3.7", "2.3.8",
|
|
||||||
"2.4.0", "2.4.1", "2.4.2", "2.4.3", "2.4.4", "2.4.5", "2.4.6", "2.4.7", "2.4.9", "2.4.10",
|
|
||||||
"2.5.0", "2.5.1", "2.5.2", "2.5.3", "2.5.4", "2.5.5", "2.5.6", "2.5.7", "2.5.8", "2.5.9",
|
|
||||||
"2.6.0", "2.6.1", "2.6.2", "2.6.3", "2.6.4", "2.6.5", "2.6.6", "2.6.7", "2.6.8", "2.6.9",
|
|
||||||
"2.7.0", "2.7.1", "2.7.2", "2.7.3", "2.7.4", "2.7.5",
|
|
||||||
"3.0.0-preview1", "3.0.0-preview2", "3.0.0-rc1", "3.0.0", "3.0.1", "3.0.2", "3.0.3",
|
|
||||||
"3.1.0-preview1", "3.1.0",
|
|
||||||
"head", "debug"
|
|
||||||
],
|
|
||||||
"jruby": [
|
|
||||||
"9.1.17.0",
|
|
||||||
"9.2.9.0", "9.2.10.0", "9.2.11.0", "9.2.11.1", "9.2.12.0", "9.2.13.0", "9.2.14.0", "9.2.15.0", "9.2.16.0", "9.2.17.0", "9.2.18.0", "9.2.19.0", "9.2.20.0", "9.2.20.1",
|
|
||||||
"9.3.0.0", "9.3.1.0", "9.3.2.0",
|
|
||||||
"head"
|
|
||||||
],
|
|
||||||
"truffleruby": [
|
|
||||||
"19.3.0", "19.3.1",
|
|
||||||
"20.0.0", "20.1.0", "20.2.0", "20.3.0",
|
|
||||||
"21.0.0", "21.1.0", "21.2.0", "21.2.0.1", "21.3.0",
|
|
||||||
"head"
|
|
||||||
],
|
|
||||||
"truffleruby+graalvm": [
|
|
||||||
"21.2.0", "21.3.0",
|
|
||||||
"head"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
return versions
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"ruby": [
|
||||||
|
"1.9.3-p551",
|
||||||
|
"2.0.0-p648",
|
||||||
|
"2.1.9",
|
||||||
|
"2.2.10",
|
||||||
|
"2.3.0", "2.3.1", "2.3.2", "2.3.3", "2.3.4", "2.3.5", "2.3.6", "2.3.7", "2.3.8",
|
||||||
|
"2.4.0", "2.4.1", "2.4.2", "2.4.3", "2.4.4", "2.4.5", "2.4.6", "2.4.7", "2.4.9", "2.4.10",
|
||||||
|
"2.5.0", "2.5.1", "2.5.2", "2.5.3", "2.5.4", "2.5.5", "2.5.6", "2.5.7", "2.5.8", "2.5.9",
|
||||||
|
"2.6.0", "2.6.1", "2.6.2", "2.6.3", "2.6.4", "2.6.5", "2.6.6", "2.6.7", "2.6.8", "2.6.9", "2.6.10",
|
||||||
|
"2.7.0", "2.7.1", "2.7.2", "2.7.3", "2.7.4", "2.7.5", "2.7.6",
|
||||||
|
"3.0.0-preview1", "3.0.0-preview2", "3.0.0-rc1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4",
|
||||||
|
"3.1.0-preview1", "3.1.0", "3.1.1", "3.1.2",
|
||||||
|
"3.2.0-preview1",
|
||||||
|
"head", "debug"
|
||||||
|
],
|
||||||
|
"jruby": [
|
||||||
|
"9.1.17.0",
|
||||||
|
"9.2.9.0", "9.2.10.0", "9.2.11.0", "9.2.11.1", "9.2.12.0", "9.2.13.0", "9.2.14.0", "9.2.15.0", "9.2.16.0", "9.2.17.0", "9.2.18.0", "9.2.19.0", "9.2.20.0", "9.2.20.1", "9.2.21.0",
|
||||||
|
"9.3.0.0", "9.3.1.0", "9.3.2.0", "9.3.3.0", "9.3.4.0", "9.3.6.0",
|
||||||
|
"head"
|
||||||
|
],
|
||||||
|
"truffleruby": [
|
||||||
|
"19.3.0", "19.3.1",
|
||||||
|
"20.0.0", "20.1.0", "20.2.0", "20.3.0",
|
||||||
|
"21.0.0", "21.1.0", "21.2.0", "21.2.0.1", "21.3.0",
|
||||||
|
"22.0.0.2", "22.1.0",
|
||||||
|
"head"
|
||||||
|
],
|
||||||
|
"truffleruby+graalvm": [
|
||||||
|
"21.2.0", "21.3.0",
|
||||||
|
"22.0.0.2", "22.1.0",
|
||||||
|
"head"
|
||||||
|
]
|
||||||
|
}
|
||||||
+13
-2
@@ -13,7 +13,18 @@ const releasesURL = 'https://github.com/ruby/ruby-builder/releases'
|
|||||||
const windows = common.windows
|
const windows = common.windows
|
||||||
|
|
||||||
export function getAvailableVersions(platform, engine) {
|
export function getAvailableVersions(platform, engine) {
|
||||||
return rubyBuilderVersions.getVersions(platform)[engine]
|
if (!common.supportedPlatforms.includes(platform)) {
|
||||||
|
throw new Error(`Unsupported platform ${platform}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (platform === 'ubuntu-22.04') {
|
||||||
|
const rubyVersions = rubyBuilderVersions['ruby']
|
||||||
|
return {
|
||||||
|
ruby: rubyVersions.slice(rubyVersions.indexOf('3.1.0')),
|
||||||
|
}[engine]
|
||||||
|
}
|
||||||
|
|
||||||
|
return rubyBuilderVersions[engine]
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function install(platform, engine, version) {
|
export async function install(platform, engine, version) {
|
||||||
@@ -79,7 +90,7 @@ async function downloadAndExtract(platform, engine, version, rubyPrefix) {
|
|||||||
return await tc.downloadTool(url)
|
return await tc.downloadTool(url)
|
||||||
})
|
})
|
||||||
|
|
||||||
await common.measure('Extracting Ruby', async () => {
|
await common.measure('Extracting Ruby', async () => {
|
||||||
if (windows) {
|
if (windows) {
|
||||||
// Windows 2016 doesn't have system tar, use MSYS2's, it needs unix style paths
|
// Windows 2016 doesn't have system tar, use MSYS2's, it needs unix style paths
|
||||||
await exec.exec('tar', ['-xz', '-C', common.win2nix(parentDir), '-f', common.win2nix(downloadPath)])
|
await exec.exec('tar', ['-xz', '-C', common.win2nix(parentDir), '-f', common.win2nix(downloadPath)])
|
||||||
|
|||||||
+30
@@ -0,0 +1,30 @@
|
|||||||
|
const path = require('path')
|
||||||
|
const exec = require('@actions/exec')
|
||||||
|
const semver = require('semver')
|
||||||
|
|
||||||
|
export async function rubygemsUpdate(rubygemsVersionInput, rubyPrefix) {
|
||||||
|
const gem = path.join(rubyPrefix, 'bin', 'gem')
|
||||||
|
|
||||||
|
let gemVersion = ''
|
||||||
|
|
||||||
|
await exec.exec(gem, ['--version'], {
|
||||||
|
listeners: {
|
||||||
|
stdout: (data) => (gemVersion += data.toString()),
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
gemVersion = semver.coerce(gemVersion.trim())
|
||||||
|
console.log(`Default RubyGems version is ${gemVersion}`)
|
||||||
|
|
||||||
|
if (rubygemsVersionInput === 'latest') {
|
||||||
|
console.log('Updating RubyGems to latest version')
|
||||||
|
await exec.exec(gem, ['update', '--system'])
|
||||||
|
} else if (semver.gt(rubygemsVersionInput, gemVersion)) {
|
||||||
|
console.log(`Updating RubyGems to ${rubygemsVersionInput}`)
|
||||||
|
await exec.exec(gem, ['update', '--system', rubygemsVersionInput])
|
||||||
|
} else {
|
||||||
|
console.log(`Skipping RubyGems update because the given version (${rubygemsVersionInput}) is not newer than the default version (${gemVersion})`)
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
hash = File.read('ruby-builder-versions.js')[/\bversions = {[^}]+}/]
|
require 'json'
|
||||||
versions = eval hash
|
hash = File.read('ruby-builder-versions.json')
|
||||||
|
versions = JSON.load(hash).transform_keys(&:to_sym)
|
||||||
|
|
||||||
by_minor = versions[:ruby].group_by { |v| v[/^\d\.\d/] }
|
by_minor = versions[:ruby].group_by { |v| v[/^\d\.\d/] }
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
export const versions = {
|
{
|
||||||
"2.0.0": "https://github.com/oneclick/rubyinstaller/releases/download/ruby-2.0.0-p648/ruby-2.0.0-p648-x64-mingw32.7z",
|
"2.0.0": "https://github.com/oneclick/rubyinstaller/releases/download/ruby-2.0.0-p648/ruby-2.0.0-p648-x64-mingw32.7z",
|
||||||
"2.1.9": "https://github.com/oneclick/rubyinstaller/releases/download/ruby-2.1.9/ruby-2.1.9-x64-mingw32.7z",
|
"2.1.9": "https://github.com/oneclick/rubyinstaller/releases/download/ruby-2.1.9/ruby-2.1.9-x64-mingw32.7z",
|
||||||
"2.2.6": "https://github.com/oneclick/rubyinstaller/releases/download/ruby-2.2.6/ruby-2.2.6-x64-mingw32.7z",
|
"2.2.6": "https://github.com/oneclick/rubyinstaller/releases/download/ruby-2.2.6/ruby-2.2.6-x64-mingw32.7z",
|
||||||
@@ -32,17 +32,24 @@ export const versions = {
|
|||||||
"2.6.7": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.7-1/rubyinstaller-2.6.7-1-x64.7z",
|
"2.6.7": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.7-1/rubyinstaller-2.6.7-1-x64.7z",
|
||||||
"2.6.8": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.8-1/rubyinstaller-2.6.8-1-x64.7z",
|
"2.6.8": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.8-1/rubyinstaller-2.6.8-1-x64.7z",
|
||||||
"2.6.9": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.9-1/rubyinstaller-2.6.9-1-x64.7z",
|
"2.6.9": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.9-1/rubyinstaller-2.6.9-1-x64.7z",
|
||||||
|
"2.6.10": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.10-1/rubyinstaller-2.6.10-1-x64.7z",
|
||||||
"2.7.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.0-1/rubyinstaller-2.7.0-1-x64.7z",
|
"2.7.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.0-1/rubyinstaller-2.7.0-1-x64.7z",
|
||||||
"2.7.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.1-1/rubyinstaller-2.7.1-1-x64.7z",
|
"2.7.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.1-1/rubyinstaller-2.7.1-1-x64.7z",
|
||||||
"2.7.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.2-1/rubyinstaller-2.7.2-1-x64.7z",
|
"2.7.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.2-1/rubyinstaller-2.7.2-1-x64.7z",
|
||||||
"2.7.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.3-1/rubyinstaller-2.7.3-1-x64.7z",
|
"2.7.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.3-1/rubyinstaller-2.7.3-1-x64.7z",
|
||||||
"2.7.4": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.4-1/rubyinstaller-2.7.4-1-x64.7z",
|
"2.7.4": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.4-1/rubyinstaller-2.7.4-1-x64.7z",
|
||||||
"2.7.5": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.5-1/rubyinstaller-2.7.5-1-x64.7z",
|
"2.7.5": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.5-1/rubyinstaller-2.7.5-1-x64.7z",
|
||||||
|
"2.7.6": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.6-1/rubyinstaller-2.7.6-1-x64.7z",
|
||||||
"3.0.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.0-1/rubyinstaller-3.0.0-1-x64.7z",
|
"3.0.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.0-1/rubyinstaller-3.0.0-1-x64.7z",
|
||||||
"3.0.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.1-1/rubyinstaller-3.0.1-1-x64.7z",
|
"3.0.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.1-1/rubyinstaller-3.0.1-1-x64.7z",
|
||||||
"3.0.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.2-1/rubyinstaller-3.0.2-1-x64.7z",
|
"3.0.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.2-1/rubyinstaller-3.0.2-1-x64.7z",
|
||||||
"3.0.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.3-1/rubyinstaller-3.0.3-1-x64.7z",
|
"3.0.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.3-1/rubyinstaller-3.0.3-1-x64.7z",
|
||||||
|
"3.0.4": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.4-1/rubyinstaller-3.0.4-1-x64.7z",
|
||||||
|
"3.1.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.0-1/rubyinstaller-3.1.0-1-x64.7z",
|
||||||
|
"3.1.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.1-1/rubyinstaller-3.1.1-1-x64.7z",
|
||||||
|
"3.1.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.2-1/rubyinstaller-3.1.2-1-x64.7z",
|
||||||
"head": "https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-head-x64.7z",
|
"head": "https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-head-x64.7z",
|
||||||
"mingw": "https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mingw.7z",
|
"mingw": "https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mingw.7z",
|
||||||
"mswin": "https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mswin.7z"
|
"mswin": "https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mswin.7z",
|
||||||
|
"ucrt": "https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-ucrt.7z"
|
||||||
}
|
}
|
||||||
+163
-23
@@ -1,5 +1,5 @@
|
|||||||
// Most of this logic is from
|
// 7z arguments
|
||||||
// https://github.com/MSP-Greg/actions-ruby/blob/master/lib/main.js
|
// -aoa overwrite existing, -bd disable progress indicator
|
||||||
|
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
@@ -9,18 +9,29 @@ const exec = require('@actions/exec')
|
|||||||
const io = require('@actions/io')
|
const io = require('@actions/io')
|
||||||
const tc = require('@actions/tool-cache')
|
const tc = require('@actions/tool-cache')
|
||||||
const common = require('./common')
|
const common = require('./common')
|
||||||
const rubyInstallerVersions = require('./windows-versions').versions
|
const rubyInstallerVersions = require('./windows-versions.json')
|
||||||
|
|
||||||
const drive = common.drive
|
const drive = common.drive
|
||||||
|
|
||||||
// needed for 2.0-2.3, and mswin, cert file used by Git for Windows
|
const msys2GCCReleaseURI = 'https://github.com/ruby/setup-msys2-gcc/releases/download'
|
||||||
|
|
||||||
|
const msys2BasePath = process.env['GHCUP_MSYS2']
|
||||||
|
const vcPkgBasePath = process.env['VCPKG_INSTALLATION_ROOT']
|
||||||
|
|
||||||
|
// needed for Ruby 2.0-2.3, and mswin, cert file used by Git for Windows
|
||||||
const certFile = 'C:\\Program Files\\Git\\mingw64\\ssl\\cert.pem'
|
const certFile = 'C:\\Program Files\\Git\\mingw64\\ssl\\cert.pem'
|
||||||
|
|
||||||
// location & path for old RubyInstaller DevKit (MSYS), Ruby 2.0-2.3
|
// location & path for old RubyInstaller DevKit (MSYS1), used with Ruby 2.0-2.3
|
||||||
const msys = `${drive}:\\DevKit64`
|
const msys1 = `${drive}:\\DevKit64`
|
||||||
const msysPathEntries = [`${msys}\\mingw\\x86_64-w64-mingw32\\bin`, `${msys}\\mingw\\bin`, `${msys}\\bin`]
|
const msysPathEntries = [`${msys1}\\mingw\\x86_64-w64-mingw32\\bin`, `${msys1}\\mingw\\bin`, `${msys1}\\bin`]
|
||||||
|
|
||||||
|
const virtualEnv = common.getVirtualEnvironmentName()
|
||||||
|
|
||||||
export function getAvailableVersions(platform, engine) {
|
export function getAvailableVersions(platform, engine) {
|
||||||
|
if (!common.supportedPlatforms.includes(platform)) {
|
||||||
|
throw new Error(`Unsupported platform ${platform}`)
|
||||||
|
}
|
||||||
|
|
||||||
if (engine === 'ruby') {
|
if (engine === 'ruby') {
|
||||||
return Object.keys(rubyInstallerVersions)
|
return Object.keys(rubyInstallerVersions)
|
||||||
} else {
|
} else {
|
||||||
@@ -31,6 +42,10 @@ export function getAvailableVersions(platform, engine) {
|
|||||||
export async function install(platform, engine, version) {
|
export async function install(platform, engine, version) {
|
||||||
const url = rubyInstallerVersions[version]
|
const url = rubyInstallerVersions[version]
|
||||||
|
|
||||||
|
// The windows-2016 and windows-2019 images have MSYS2 build tools (C:/msys64/usr)
|
||||||
|
// and MinGW build tools installed. The windows-2022 image has neither.
|
||||||
|
const hasMSYS2PreInstalled = ['windows-2019', 'windows-2016'].includes(virtualEnv)
|
||||||
|
|
||||||
if (!url.endsWith('.7z')) {
|
if (!url.endsWith('.7z')) {
|
||||||
throw new Error(`URL should end in .7z: ${url}`)
|
throw new Error(`URL should end in .7z: ${url}`)
|
||||||
}
|
}
|
||||||
@@ -50,15 +65,85 @@ export async function install(platform, engine, version) {
|
|||||||
|
|
||||||
let toolchainPaths = (version === 'mswin') ? await setupMSWin() : await setupMingw(version)
|
let toolchainPaths = (version === 'mswin') ? await setupMSWin() : await setupMingw(version)
|
||||||
|
|
||||||
common.setupPath([`${rubyPrefix}\\bin`, ...toolchainPaths])
|
|
||||||
|
|
||||||
if (!inToolCache) {
|
if (!inToolCache) {
|
||||||
await downloadAndExtract(engine, version, url, base, rubyPrefix);
|
await downloadAndExtract(engine, version, url, base, rubyPrefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const msys2Type = common.setupPath([`${rubyPrefix}\\bin`, ...toolchainPaths])
|
||||||
|
|
||||||
|
// install msys2 tools for all Ruby versions, only install mingw or ucrt for Rubies >= 2.4
|
||||||
|
|
||||||
|
if (!hasMSYS2PreInstalled) {
|
||||||
|
await installMSYS2Tools()
|
||||||
|
}
|
||||||
|
|
||||||
|
// windows 2016 and 2019 need ucrt64 installed, 2022 and future images need
|
||||||
|
// ucrt64 or mingw64 installed, depending on Ruby version
|
||||||
|
if (((msys2Type === 'ucrt64') || !hasMSYS2PreInstalled) && common.floatVersion(version) >= 2.4) {
|
||||||
|
await installGCCTools(msys2Type)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (version === 'mswin') {
|
||||||
|
await installVCPkg()
|
||||||
|
}
|
||||||
|
|
||||||
|
const ridk = `${rubyPrefix}\\bin\\ridk.cmd`
|
||||||
|
if (fs.existsSync(ridk)) {
|
||||||
|
await common.measure('Adding ridk env variables', async () => addRidkEnv(ridk))
|
||||||
|
}
|
||||||
|
|
||||||
return rubyPrefix
|
return rubyPrefix
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Actions windows-2022 image does not contain any mingw or ucrt build tools. Install tools for it,
|
||||||
|
// and also install ucrt tools on earlier versions, which have msys2 and mingw tools preinstalled.
|
||||||
|
async function installGCCTools(type) {
|
||||||
|
const downloadPath = await common.measure(`Downloading ${type} build tools`, async () => {
|
||||||
|
let url = `${msys2GCCReleaseURI}/msys2-gcc-pkgs/${type}.7z`
|
||||||
|
console.log(url)
|
||||||
|
return await tc.downloadTool(url)
|
||||||
|
})
|
||||||
|
|
||||||
|
await common.measure(`Extracting ${type} build tools`, async () =>
|
||||||
|
exec.exec('7z', ['x', downloadPath, '-aoa', '-bd', `-o${msys2BasePath}`], { silent: true }))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Actions windows-2022 image does not contain any MSYS2 build tools. Install tools for it.
|
||||||
|
// A subset of the MSYS2 base-devel group
|
||||||
|
async function installMSYS2Tools() {
|
||||||
|
const downloadPath = await common.measure(`Downloading msys2 build tools`, async () => {
|
||||||
|
let url = `${msys2GCCReleaseURI}/msys2-gcc-pkgs/msys2.7z`
|
||||||
|
console.log(url)
|
||||||
|
return await tc.downloadTool(url)
|
||||||
|
})
|
||||||
|
|
||||||
|
// need to remove all directories, since they may indicate old packages are installed,
|
||||||
|
// otherwise, error of "error: duplicated database entry"
|
||||||
|
fs.rmSync(`${msys2BasePath}\\var\\lib\\pacman\\local`, { recursive: true, force: true })
|
||||||
|
|
||||||
|
await common.measure(`Extracting msys2 build tools`, async () =>
|
||||||
|
exec.exec('7z', ['x', downloadPath, '-aoa', '-bd', `-o${msys2BasePath}`], { silent: true }))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Windows JRuby can install gems that require compile tools, only needed for
|
||||||
|
// windows-2022 and later images
|
||||||
|
export async function installJRubyTools() {
|
||||||
|
await installMSYS2Tools()
|
||||||
|
await installGCCTools('mingw64')
|
||||||
|
}
|
||||||
|
|
||||||
|
// Install vcpkg files needed to build mswin Ruby
|
||||||
|
async function installVCPkg() {
|
||||||
|
const downloadPath = await common.measure(`Downloading mswin vcpkg packages`, async () => {
|
||||||
|
let url = `${msys2GCCReleaseURI}/msys2-gcc-pkgs/mswin.7z`
|
||||||
|
console.log(url)
|
||||||
|
return await tc.downloadTool(url)
|
||||||
|
})
|
||||||
|
|
||||||
|
await common.measure(`Extracting mswin vcpkg packages`, async () =>
|
||||||
|
exec.exec('7z', ['x', downloadPath, '-aoa', '-bd', `-o${vcPkgBasePath}`], { silent: true }))
|
||||||
|
}
|
||||||
|
|
||||||
async function downloadAndExtract(engine, version, url, base, rubyPrefix) {
|
async function downloadAndExtract(engine, version, url, base, rubyPrefix) {
|
||||||
const parentDir = path.dirname(rubyPrefix)
|
const parentDir = path.dirname(rubyPrefix)
|
||||||
|
|
||||||
@@ -67,8 +152,9 @@ async function downloadAndExtract(engine, version, url, base, rubyPrefix) {
|
|||||||
return await tc.downloadTool(url)
|
return await tc.downloadTool(url)
|
||||||
})
|
})
|
||||||
|
|
||||||
await common.measure('Extracting Ruby', async () =>
|
await common.measure('Extracting Ruby', async () =>
|
||||||
exec.exec('7z', ['x', downloadPath, `-xr!${base}\\share\\doc`, `-o${parentDir}`], { silent: true }))
|
// -xr extract but exclude share\doc files
|
||||||
|
exec.exec('7z', ['x', downloadPath, '-bd', `-xr!${base}\\share\\doc`, `-o${parentDir}`], { silent: true }))
|
||||||
|
|
||||||
if (base !== path.basename(rubyPrefix)) {
|
if (base !== path.basename(rubyPrefix)) {
|
||||||
await io.mv(path.join(parentDir, base), rubyPrefix)
|
await io.mv(path.join(parentDir, base), rubyPrefix)
|
||||||
@@ -82,23 +168,29 @@ 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')
|
||||||
|
|
||||||
|
// rename these to avoid confusion when Ruby is using OpenSSL 1.0.2.
|
||||||
|
// most current extconf files look for 1.1.x dll files first, which is the version of the renamed files
|
||||||
|
if (common.floatVersion(version) <= 2.4) {
|
||||||
|
renameSystem32Dlls()
|
||||||
|
}
|
||||||
|
|
||||||
if (common.floatVersion(version) <= 2.3) {
|
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 MSYS1', async () => installMSYS1(version))
|
||||||
return msysPathEntries
|
return msysPathEntries
|
||||||
} else {
|
} else {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ruby 2.0, 2.1, 2.2 and 2.3
|
// Ruby 2.0-2.3
|
||||||
async function installMSYS(version) {
|
async function installMSYS1(version) {
|
||||||
const url = 'https://github.com/oneclick/rubyinstaller/releases/download/devkit-4.7.2/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe'
|
const url = 'https://github.com/oneclick/rubyinstaller/releases/download/devkit-4.7.2/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe'
|
||||||
const downloadPath = await tc.downloadTool(url)
|
const downloadPath = await tc.downloadTool(url)
|
||||||
await exec.exec('7z', ['x', downloadPath, `-o${msys}`], { silent: true })
|
await exec.exec('7z', ['x', downloadPath, `-o${msys1}`], { silent: true })
|
||||||
|
|
||||||
// below are set in the old devkit.rb file ?
|
// below are set in the old devkit.rb file ?
|
||||||
core.exportVariable('RI_DEVKIT', msys)
|
core.exportVariable('RI_DEVKIT', msys1)
|
||||||
core.exportVariable('CC' , 'gcc')
|
core.exportVariable('CC' , 'gcc')
|
||||||
core.exportVariable('CXX', 'g++')
|
core.exportVariable('CXX', 'g++')
|
||||||
core.exportVariable('CPP', 'cpp')
|
core.exportVariable('CPP', 'cpp')
|
||||||
@@ -108,31 +200,47 @@ async function installMSYS(version) {
|
|||||||
async function setupMSWin() {
|
async function setupMSWin() {
|
||||||
core.exportVariable('MAKE', 'nmake.exe')
|
core.exportVariable('MAKE', 'nmake.exe')
|
||||||
|
|
||||||
// All standard MSVC OpenSSL builds use C:\Program Files\Common Files\SSL
|
// Pre-installed OpenSSL use C:\Program Files\Common Files\SSL
|
||||||
const certsDir = 'C:\\Program Files\\Common Files\\SSL\\certs'
|
let certsDir = 'C:\\Program Files\\Common Files\\SSL\\certs'
|
||||||
if (!fs.existsSync(certsDir)) {
|
if (!fs.existsSync(certsDir)) {
|
||||||
fs.mkdirSync(certsDir)
|
fs.mkdirSync(certsDir, { recursive: true })
|
||||||
}
|
}
|
||||||
|
|
||||||
// cert.pem location is hard-coded by OpenSSL msvc builds
|
// cert.pem location is hard-coded by OpenSSL msvc builds
|
||||||
const cert = 'C:\\Program Files\\Common Files\\SSL\\cert.pem'
|
let cert = 'C:\\Program Files\\Common Files\\SSL\\cert.pem'
|
||||||
if (!fs.existsSync(cert)) {
|
if (!fs.existsSync(cert)) {
|
||||||
fs.copyFileSync(certFile, cert)
|
fs.copyFileSync(certFile, cert)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// vcpkg openssl uses packages\openssl_x64-windows\certs
|
||||||
|
certsDir = `${vcPkgBasePath}\\packages\\openssl_x64-windows\\certs`
|
||||||
|
if (!fs.existsSync(certsDir)) {
|
||||||
|
fs.mkdirSync(certsDir, { recursive: true })
|
||||||
|
}
|
||||||
|
|
||||||
|
// vcpkg openssl uses packages\openssl_x64-windows\cert.pem
|
||||||
|
cert = `${vcPkgBasePath}\\packages\\openssl_x64-windows\\cert.pem`
|
||||||
|
fs.copyFileSync(certFile, cert)
|
||||||
|
|
||||||
return await common.measure('Setting up MSVC environment', async () => addVCVARSEnv())
|
return await common.measure('Setting up MSVC environment', async () => addVCVARSEnv())
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Sets MSVC environment for use in Actions
|
/* Sets MSVC environment for use in Actions
|
||||||
* allows steps to run without running vcvars*.bat, also for PowerShell
|
* allows steps to run without running vcvars*.bat, also for PowerShell
|
||||||
* adds a convenience VCVARS environment variable
|
* adds a convenience VCVARS environment variable
|
||||||
* this assumes a single Visual Studio version being available in the windows-latest image */
|
* this assumes a single Visual Studio version being available in the Windows images */
|
||||||
export function addVCVARSEnv() {
|
export function addVCVARSEnv() {
|
||||||
const vcVars = '"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Auxiliary\\Build\\vcvars64.bat"'
|
let cmd = 'vswhere -latest -property installationPath'
|
||||||
|
let vcVars = `${cp.execSync(cmd).toString().trim()}\\VC\\Auxiliary\\Build\\vcvars64.bat`
|
||||||
|
|
||||||
|
if (!fs.existsSync(vcVars)) {
|
||||||
|
throw new Error(`Missing vcVars file: ${vcVars}`)
|
||||||
|
}
|
||||||
core.exportVariable('VCVARS', vcVars)
|
core.exportVariable('VCVARS', vcVars)
|
||||||
|
|
||||||
|
cmd = `cmd.exe /c ""${vcVars}" && set"`
|
||||||
|
|
||||||
let newEnv = new Map()
|
let newEnv = new Map()
|
||||||
let cmd = `cmd.exe /c "${vcVars} && set"`
|
|
||||||
let newSet = cp.execSync(cmd).toString().trim().split(/\r?\n/)
|
let newSet = cp.execSync(cmd).toString().trim().split(/\r?\n/)
|
||||||
newSet = newSet.filter(line => /\S=\S/.test(line))
|
newSet = newSet.filter(line => /\S=\S/.test(line))
|
||||||
newSet.forEach(s => {
|
newSet.forEach(s => {
|
||||||
@@ -153,3 +261,35 @@ export function addVCVARSEnv() {
|
|||||||
}
|
}
|
||||||
return newPathEntries
|
return newPathEntries
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ssl files cause issues with non RI2 Rubies (<2.4) and ruby/ruby's CI from build folder due to dll resolution
|
||||||
|
function renameSystem32Dlls() {
|
||||||
|
const sys32 = 'C:\\Windows\\System32\\'
|
||||||
|
const badFiles = [`${sys32}libcrypto-1_1-x64.dll`, `${sys32}libssl-1_1-x64.dll`]
|
||||||
|
const existing = badFiles.filter((dll) => fs.existsSync(dll))
|
||||||
|
if (existing.length > 0) {
|
||||||
|
console.log(`Renaming ${existing.join(' and ')} to avoid dll resolution conflicts on Ruby <= 2.4`)
|
||||||
|
existing.forEach(dll => fs.renameSync(dll, `${dll}_`))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sets MSYS2 ENV variables set from running `ridk enable`
|
||||||
|
function addRidkEnv(ridk) {
|
||||||
|
let newEnv = new Map()
|
||||||
|
let cmd = `cmd.exe /c "${ridk} enable && set"`
|
||||||
|
let newSet = cp.execSync(cmd).toString().trim().split(/\r?\n/)
|
||||||
|
newSet = newSet.filter(line => /^\S+=\S+/.test(line))
|
||||||
|
newSet.forEach(s => {
|
||||||
|
let [k, v] = common.partition(s, '=')
|
||||||
|
newEnv.set(k, v)
|
||||||
|
})
|
||||||
|
|
||||||
|
for (let [k, v] of newEnv) {
|
||||||
|
if (process.env[k] !== v) {
|
||||||
|
if (!/^Path$/i.test(k)) {
|
||||||
|
console.log(`${k}=${v}`)
|
||||||
|
core.exportVariable(k, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,30 +2,32 @@
|
|||||||
# yarn lockfile v1
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
"@actions/cache@^1.0.8":
|
"@actions/cache@^2.0.2":
|
||||||
version "1.0.8"
|
version "2.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/@actions/cache/-/cache-1.0.8.tgz#426ad3a2127b35a4e21ad906e02202dc8b96663f"
|
resolved "https://registry.yarnpkg.com/@actions/cache/-/cache-2.0.2.tgz#e38167f5de20be8f61452ff1f0bb44b02558905e"
|
||||||
integrity sha512-GWNNB67w93HGJRQXlsV56YqrdAuDoP3esK/mo5mzU8WoDCVjtQgJGsTdkYUX7brswtT7xnI30bWNo1WLKQ8FZQ==
|
integrity sha512-K1DCaW/OtHj5mV7hI7HEXiceX3rM4Nc0iG2hfYsrkEy6GiOeqlCC/LyICrBZIRDM6+vSrS12tg1ORl4hghomBA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@actions/core" "^1.2.6"
|
"@actions/core" "^1.2.6"
|
||||||
"@actions/exec" "^1.0.1"
|
"@actions/exec" "^1.0.1"
|
||||||
"@actions/glob" "^0.1.0"
|
"@actions/glob" "^0.1.0"
|
||||||
"@actions/http-client" "^1.0.9"
|
"@actions/http-client" "^1.0.9"
|
||||||
"@actions/io" "^1.0.1"
|
"@actions/io" "^1.0.1"
|
||||||
"@azure/ms-rest-js" "^2.0.7"
|
"@azure/ms-rest-js" "^2.6.0"
|
||||||
"@azure/storage-blob" "^12.1.2"
|
"@azure/storage-blob" "^12.8.0"
|
||||||
semver "^6.1.0"
|
semver "^6.1.0"
|
||||||
uuid "^3.3.3"
|
uuid "^3.3.3"
|
||||||
|
|
||||||
"@actions/core@^1.2.6", "@actions/core@^1.4.0":
|
"@actions/core@^1.2.6", "@actions/core@^1.7.0":
|
||||||
version "1.4.0"
|
version "1.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.4.0.tgz#cf2e6ee317e314b03886adfeb20e448d50d6e524"
|
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.7.0.tgz#f179a5a0bf5c1102d89b8cf1712825e763feaee4"
|
||||||
integrity sha512-CGx2ilGq5i7zSLgiiGUtBCxhRRxibJYU6Fim0Q1Wg2aQL2LTnF27zbqZOrxfvFQ55eSBW0L8uVStgtKMpa0Qlg==
|
integrity sha512-7fPSS7yKOhTpgLMbw7lBLc1QJWvJBBAgyTX2PEhagWcKK8t0H8AKCoPMfnrHqIm5cRYH4QFPqD1/ruhuUE7YcQ==
|
||||||
|
dependencies:
|
||||||
|
"@actions/http-client" "^1.0.11"
|
||||||
|
|
||||||
"@actions/exec@^1.0.0", "@actions/exec@^1.0.1", "@actions/exec@^1.1.0":
|
"@actions/exec@^1.0.0", "@actions/exec@^1.0.1", "@actions/exec@^1.1.1":
|
||||||
version "1.1.0"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@actions/exec/-/exec-1.1.0.tgz#53441d968e56d2fec69ad3f15773d4d94e01162c"
|
resolved "https://registry.yarnpkg.com/@actions/exec/-/exec-1.1.1.tgz#2e43f28c54022537172819a7cf886c844221a611"
|
||||||
integrity sha512-LImpN9AY0J1R1mEYJjVJfSZWU4zYOlEcwSTgPve1rFQqK5AwrEs6uWW5Rv70gbDIQIAUwI86z6B+9mPK4w9Sbg==
|
integrity sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@actions/io" "^1.0.1"
|
"@actions/io" "^1.0.1"
|
||||||
|
|
||||||
@@ -37,22 +39,22 @@
|
|||||||
"@actions/core" "^1.2.6"
|
"@actions/core" "^1.2.6"
|
||||||
minimatch "^3.0.4"
|
minimatch "^3.0.4"
|
||||||
|
|
||||||
"@actions/http-client@^1.0.8", "@actions/http-client@^1.0.9":
|
"@actions/http-client@^1.0.11", "@actions/http-client@^1.0.8", "@actions/http-client@^1.0.9":
|
||||||
version "1.0.11"
|
version "1.0.11"
|
||||||
resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-1.0.11.tgz#c58b12e9aa8b159ee39e7dd6cbd0e91d905633c0"
|
resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-1.0.11.tgz#c58b12e9aa8b159ee39e7dd6cbd0e91d905633c0"
|
||||||
integrity sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==
|
integrity sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==
|
||||||
dependencies:
|
dependencies:
|
||||||
tunnel "0.0.6"
|
tunnel "0.0.6"
|
||||||
|
|
||||||
"@actions/io@^1.0.1", "@actions/io@^1.1.1":
|
"@actions/io@^1.0.1", "@actions/io@^1.1.1", "@actions/io@^1.1.2":
|
||||||
version "1.1.1"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.1.tgz#4a157406309e212ab27ed3ae30e8c1d641686a66"
|
resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.2.tgz#766ac09674a289ce0f1550ffe0a6eac9261a8ea9"
|
||||||
integrity sha512-Qi4JoKXjmE0O67wAOH6y0n26QXhMKMFo7GD/4IXNVcrtLjUlGjGuVys6pQgwF3ArfGTQu0XpqaNr0YhED2RaRA==
|
integrity sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw==
|
||||||
|
|
||||||
"@actions/tool-cache@^1.7.1":
|
"@actions/tool-cache@^1.7.2":
|
||||||
version "1.7.1"
|
version "1.7.2"
|
||||||
resolved "https://registry.yarnpkg.com/@actions/tool-cache/-/tool-cache-1.7.1.tgz#f9f4f822cb639da6facdf3e22ea571361ab26f92"
|
resolved "https://registry.yarnpkg.com/@actions/tool-cache/-/tool-cache-1.7.2.tgz#389ad15916f91999959c6b2865144839ecc571a9"
|
||||||
integrity sha512-y1xxxOhXaBUIUit3lhepmu/0xdgiTMpnZRLmVdtF0hTm521doi+MdRRRP62czHvM7wxH6epj4JPNJQ3iJpOrkQ==
|
integrity sha512-GYlcgg/PK2RWBrGG2sFg6s7im3S94LMKuqAv8UPDq/pGTZbuEvmN4a95Fn1Z19OE+vt7UbUHeewOD5tEBT+4TQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@actions/core" "^1.2.6"
|
"@actions/core" "^1.2.6"
|
||||||
"@actions/exec" "^1.0.0"
|
"@actions/exec" "^1.0.0"
|
||||||
@@ -69,32 +71,32 @@
|
|||||||
tslib "^2.0.0"
|
tslib "^2.0.0"
|
||||||
|
|
||||||
"@azure/core-asynciterator-polyfill@^1.0.0":
|
"@azure/core-asynciterator-polyfill@^1.0.0":
|
||||||
version "1.0.0"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.0.tgz#dcccebb88406e5c76e0e1d52e8cc4c43a68b3ee7"
|
resolved "https://registry.yarnpkg.com/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.2.tgz#0dd3849fb8d97f062a39db0e5cadc9ffaf861fec"
|
||||||
integrity sha512-kmv8CGrPfN9SwMwrkiBK9VTQYxdFQEGe0BmQk+M8io56P9KNzpAxcWE/1fxJj7uouwN4kXF0BHW8DNlgx+wtCg==
|
integrity sha512-3rkP4LnnlWawl0LZptJOdXNrT/fHp2eQMadoasa6afspXdpGrtPZuAQc2PD0cpgyuoXtUWyC3tv7xfntjGS5Dw==
|
||||||
|
|
||||||
"@azure/core-auth@^1.1.4", "@azure/core-auth@^1.3.0":
|
"@azure/core-auth@^1.1.4", "@azure/core-auth@^1.3.0":
|
||||||
version "1.3.0"
|
version "1.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.3.0.tgz#0d55517cf0650aefe755669aca8a2f3724fcf536"
|
resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.3.2.tgz#6a2c248576c26df365f6c7881ca04b7f6d08e3d0"
|
||||||
integrity sha512-kSDSZBL6c0CYdhb+7KuutnKGf2geeT+bCJAgccB0DD7wmNJSsQPcF7TcuoZX83B7VK4tLz/u+8sOO/CnCsYp8A==
|
integrity sha512-7CU6DmCHIZp5ZPiZ9r3J17lTKMmYsm/zGvNkjArQwPkrLlZ1TZ+EUYfGgh2X31OLMVAQCTJZW4cXHJi02EbJnA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@azure/abort-controller" "^1.0.0"
|
"@azure/abort-controller" "^1.0.0"
|
||||||
tslib "^2.0.0"
|
tslib "^2.2.0"
|
||||||
|
|
||||||
"@azure/core-http@^1.2.0":
|
"@azure/core-http@^2.0.0":
|
||||||
version "1.2.6"
|
version "2.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/core-http/-/core-http-1.2.6.tgz#9cd508418572d2062fd3175274219438772bdb65"
|
resolved "https://registry.yarnpkg.com/@azure/core-http/-/core-http-2.2.4.tgz#df5a5b4138dbbc4299879f2fc6f257d0a5f0401e"
|
||||||
integrity sha512-odtH7UMKtekc5YQ86xg9GlVHNXR6pq2JgJ5FBo7/jbOjNGdBqcrIVrZx2bevXVJz/uUTSx6vUf62gzTXTfqYSQ==
|
integrity sha512-QmmJmexXKtPyc3/rsZR/YTLDvMatzbzAypJmLzvlfxgz/SkgnqV/D4f6F2LsK6tBj1qhyp8BoXiOebiej0zz3A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@azure/abort-controller" "^1.0.0"
|
"@azure/abort-controller" "^1.0.0"
|
||||||
"@azure/core-asynciterator-polyfill" "^1.0.0"
|
"@azure/core-asynciterator-polyfill" "^1.0.0"
|
||||||
"@azure/core-auth" "^1.3.0"
|
"@azure/core-auth" "^1.3.0"
|
||||||
"@azure/core-tracing" "1.0.0-preview.11"
|
"@azure/core-tracing" "1.0.0-preview.13"
|
||||||
"@azure/logger" "^1.0.0"
|
"@azure/logger" "^1.0.0"
|
||||||
"@types/node-fetch" "^2.5.0"
|
"@types/node-fetch" "^2.5.0"
|
||||||
"@types/tunnel" "^0.0.1"
|
"@types/tunnel" "^0.0.3"
|
||||||
form-data "^3.0.0"
|
form-data "^4.0.0"
|
||||||
node-fetch "^2.6.0"
|
node-fetch "^2.6.7"
|
||||||
process "^0.11.10"
|
process "^0.11.10"
|
||||||
tough-cookie "^4.0.0"
|
tough-cookie "^4.0.0"
|
||||||
tslib "^2.2.0"
|
tslib "^2.2.0"
|
||||||
@@ -102,103 +104,97 @@
|
|||||||
uuid "^8.3.0"
|
uuid "^8.3.0"
|
||||||
xml2js "^0.4.19"
|
xml2js "^0.4.19"
|
||||||
|
|
||||||
"@azure/core-lro@^1.0.2":
|
"@azure/core-lro@^2.2.0":
|
||||||
version "1.0.5"
|
version "2.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/core-lro/-/core-lro-1.0.5.tgz#856a2cb6a9bec739ee9cde33a27cc28f81ac0522"
|
resolved "https://registry.yarnpkg.com/@azure/core-lro/-/core-lro-2.2.4.tgz#42fbf4ae98093c59005206a4437ddcd057c57ca1"
|
||||||
integrity sha512-0EFCFZxARrIoLWMIRt4vuqconRVIO2Iin7nFBfJiYCCbKp5eEmxutNk8uqudPmG0XFl5YqlVh68/al/vbE5OOg==
|
integrity sha512-e1I2v2CZM0mQo8+RSix0x091Av493e4bnT22ds2fcQGslTHzM2oTbswkB65nP4iEpCxBrFxOSDPKExmTmjCVtQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@azure/abort-controller" "^1.0.0"
|
"@azure/abort-controller" "^1.0.0"
|
||||||
"@azure/core-http" "^1.2.0"
|
"@azure/core-tracing" "1.0.0-preview.13"
|
||||||
"@azure/core-tracing" "1.0.0-preview.11"
|
"@azure/logger" "^1.0.0"
|
||||||
events "^3.0.0"
|
tslib "^2.2.0"
|
||||||
tslib "^2.0.0"
|
|
||||||
|
|
||||||
"@azure/core-paging@^1.1.1":
|
"@azure/core-paging@^1.1.1":
|
||||||
version "1.1.3"
|
version "1.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/core-paging/-/core-paging-1.1.3.tgz#3587c9898a0530cacb64bab216d7318468aa5efc"
|
resolved "https://registry.yarnpkg.com/@azure/core-paging/-/core-paging-1.2.1.tgz#1b884f563b6e49971e9a922da3c7a20931867b54"
|
||||||
integrity sha512-his7Ah40ThEYORSpIAwuh6B8wkGwO/zG7gqVtmSE4WAJ46e36zUDXTKReUCLBDc6HmjjApQQxxcRFy5FruG79A==
|
integrity sha512-UtH5iMlYsvg+nQYIl4UHlvvSrsBjOlRF4fs0j7mxd3rWdAStrKYrh2durOpHs5C9yZbVhsVDaisoyaf/lL1EVA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@azure/core-asynciterator-polyfill" "^1.0.0"
|
"@azure/core-asynciterator-polyfill" "^1.0.0"
|
||||||
|
tslib "^2.2.0"
|
||||||
|
|
||||||
"@azure/core-tracing@1.0.0-preview.11":
|
"@azure/core-tracing@1.0.0-preview.13":
|
||||||
version "1.0.0-preview.11"
|
version "1.0.0-preview.13"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.0.0-preview.11.tgz#bdfb2ba73cd6c39b7d6c207b9522eb98e08b4ddd"
|
resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz#55883d40ae2042f6f1e12b17dd0c0d34c536d644"
|
||||||
integrity sha512-frF0pJc9HTmKncVokhBxCqipjbql02DThQ1ZJ9wLi7SDMLdPAFyDI5xZNzX5guLz+/DtPkY+SGK2li9FIXqshQ==
|
integrity sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@opencensus/web-types" "0.0.7"
|
"@opentelemetry/api" "^1.0.1"
|
||||||
"@opentelemetry/api" "1.0.0-rc.0"
|
tslib "^2.2.0"
|
||||||
tslib "^2.0.0"
|
|
||||||
|
|
||||||
"@azure/logger@^1.0.0":
|
"@azure/logger@^1.0.0":
|
||||||
version "1.0.2"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.0.2.tgz#ad2d06478eeda7835f53def7e4566981b47d9787"
|
resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.0.3.tgz#6e36704aa51be7d4a1bae24731ea580836293c96"
|
||||||
integrity sha512-YZNjNV0vL3nN2nedmcjQBcpCTo3oqceXmgiQtEm6fLpucjRZyQKAQruhCmCpRlB1iykqKJJ/Y8CDmT5rIE6IJw==
|
integrity sha512-aK4s3Xxjrx3daZr3VylxejK3vG5ExXck5WOHDJ8in/k9AqlfIyFMMT1uG7u8mNjX+QRILTIn0/Xgschfh/dQ9g==
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib "^2.0.0"
|
tslib "^2.2.0"
|
||||||
|
|
||||||
"@azure/ms-rest-js@^2.0.7":
|
"@azure/ms-rest-js@^2.6.0":
|
||||||
version "2.5.2"
|
version "2.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-2.5.2.tgz#41d2e12456447dc21b4aaa09e74d1550eaf38f14"
|
resolved "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-2.6.1.tgz#4f94688a750d51afcbab4b55d6ecb9d3df4ddd94"
|
||||||
integrity sha512-9nCuuoYwHZEZw1t0MVtENH+c1k2R4maYAlBBDSZhZu6bEucyfYUUigNXXKjt2cFBt4sO+sTzi0uI0f/fiPFr+Q==
|
integrity sha512-LLi4jRe/qy5IM8U2CkoDgSZp2OH+MgDe2wePmhz8uY84Svc53EhHaamVyoU6BjjHBxvCRh1vcD1urJDccrxqIw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@azure/core-auth" "^1.1.4"
|
"@azure/core-auth" "^1.1.4"
|
||||||
abort-controller "^3.0.0"
|
abort-controller "^3.0.0"
|
||||||
form-data "^2.5.0"
|
form-data "^2.5.0"
|
||||||
node-fetch "^2.6.0"
|
node-fetch "^2.6.7"
|
||||||
tough-cookie "^3.0.1"
|
tough-cookie "^3.0.1"
|
||||||
tslib "^1.10.0"
|
tslib "^1.10.0"
|
||||||
tunnel "0.0.6"
|
tunnel "0.0.6"
|
||||||
uuid "^3.3.2"
|
uuid "^8.3.2"
|
||||||
xml2js "^0.4.19"
|
xml2js "^0.4.19"
|
||||||
|
|
||||||
"@azure/storage-blob@^12.1.2":
|
"@azure/storage-blob@^12.8.0":
|
||||||
version "12.6.0"
|
version "12.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/storage-blob/-/storage-blob-12.6.0.tgz#9905d80e5f908a573cc65e1cb8302abc32818844"
|
resolved "https://registry.yarnpkg.com/@azure/storage-blob/-/storage-blob-12.9.0.tgz#4cbd8b4c7a47dd064867430db892f4ef2d8f17ab"
|
||||||
integrity sha512-cAzsae+5ZdhugQfIT7o5SlVyF2Sc+HygZdPO41ZYdXklfGUyEt+5K4PyM5HQDc0MTVt6x7+waXcaAXT2eF9E6A==
|
integrity sha512-ank38FdCLfJ+EoeMzCz3hkYJuZAd63ARvDKkxZYRDb+beBYf+/+gx8jNTqkq/hfyUl4dJQ/a7tECU0Y0F98CHg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@azure/abort-controller" "^1.0.0"
|
"@azure/abort-controller" "^1.0.0"
|
||||||
"@azure/core-http" "^1.2.0"
|
"@azure/core-http" "^2.0.0"
|
||||||
"@azure/core-lro" "^1.0.2"
|
"@azure/core-lro" "^2.2.0"
|
||||||
"@azure/core-paging" "^1.1.1"
|
"@azure/core-paging" "^1.1.1"
|
||||||
"@azure/core-tracing" "1.0.0-preview.11"
|
"@azure/core-tracing" "1.0.0-preview.13"
|
||||||
"@azure/logger" "^1.0.0"
|
"@azure/logger" "^1.0.0"
|
||||||
events "^3.0.0"
|
events "^3.0.0"
|
||||||
tslib "^2.0.0"
|
tslib "^2.2.0"
|
||||||
|
|
||||||
"@opencensus/web-types@0.0.7":
|
"@opentelemetry/api@^1.0.1":
|
||||||
version "0.0.7"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/@opencensus/web-types/-/web-types-0.0.7.tgz#4426de1fe5aa8f624db395d2152b902874f0570a"
|
resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.1.0.tgz#563539048255bbe1a5f4f586a4a10a1bb737f44a"
|
||||||
integrity sha512-xB+w7ZDAu3YBzqH44rCmG9/RlrOmFuDPt/bpf17eJr8eZSrLt7nc7LnWdxM9Mmoj/YKMHpxRg28txu3TcpiL+g==
|
integrity sha512-hf+3bwuBwtXsugA2ULBc95qxrOqP2pOekLz34BJhcAKawt94vfeNyUKpYc0lZQ/3sCP6LqRa7UAdHA7i5UODzQ==
|
||||||
|
|
||||||
"@opentelemetry/api@1.0.0-rc.0":
|
|
||||||
version "1.0.0-rc.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.0.0-rc.0.tgz#0c7c3f5e1285f99cedb563d74ad1adb9822b5144"
|
|
||||||
integrity sha512-iXKByCMfrlO5S6Oh97BuM56tM2cIBB0XsL/vWF/AtJrJEKx4MC/Xdu0xDsGXMGcNWpqF7ujMsjjnp0+UHBwnDQ==
|
|
||||||
|
|
||||||
"@types/node-fetch@^2.5.0":
|
"@types/node-fetch@^2.5.0":
|
||||||
version "2.5.10"
|
version "2.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.10.tgz#9b4d4a0425562f9fcea70b12cb3fcdd946ca8132"
|
resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.1.tgz#8f127c50481db65886800ef496f20bbf15518975"
|
||||||
integrity sha512-IpkX0AasN44hgEad0gEF/V6EgR5n69VEqPEgnmoM8GsIGro3PowbWs4tR6IhxUTyPLpOn+fiGG6nrQhcmoCuIQ==
|
integrity sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
form-data "^3.0.0"
|
form-data "^3.0.0"
|
||||||
|
|
||||||
"@types/node@*":
|
"@types/node@*":
|
||||||
version "15.12.3"
|
version "17.0.31"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.3.tgz#2817bf5f25bc82f56579018c53f7d41b1830b1af"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.31.tgz#a5bb84ecfa27eec5e1c802c6bbf8139bdb163a5d"
|
||||||
integrity sha512-SNt65CPCXvGNDZ3bvk1TQ0Qxoe3y1RKH88+wZ2Uf05dduBCqqFQ76ADP9pbT+Cpvj60SkRppMCh2Zo8tDixqjQ==
|
integrity sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==
|
||||||
|
|
||||||
"@types/tunnel@^0.0.1":
|
"@types/tunnel@^0.0.3":
|
||||||
version "0.0.1"
|
version "0.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@types/tunnel/-/tunnel-0.0.1.tgz#0d72774768b73df26f25df9184273a42da72b19c"
|
resolved "https://registry.yarnpkg.com/@types/tunnel/-/tunnel-0.0.3.tgz#f109e730b072b3136347561fc558c9358bb8c6e9"
|
||||||
integrity sha512-AOqu6bQu5MSWwYvehMXLukFHnupHrpZ8nvgae5Ggie9UwzDR1CCwoXgSSWNZJuyOlCdfdsWMA5F2LlmvyoTv8A==
|
integrity sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
"@vercel/ncc@^0.28.6":
|
"@vercel/ncc@^0.33.4":
|
||||||
version "0.28.6"
|
version "0.33.4"
|
||||||
resolved "https://registry.yarnpkg.com/@vercel/ncc/-/ncc-0.28.6.tgz#073c0ce8e0269210c0a9f180fb0bf949eecc20e0"
|
resolved "https://registry.yarnpkg.com/@vercel/ncc/-/ncc-0.33.4.tgz#e44a87511f583b7ba88e4b9ae90eeb7ba252b872"
|
||||||
integrity sha512-t4BoSSuyK8BZaUE0gV18V6bkFs4st7baumtFGa50dv1tMu2GDBEBF8sUZaKBdKiL6DzJ2D2+XVCwYWWDcQOYdQ==
|
integrity sha512-ln18hs7dMffelP47tpkaR+V5Tj6coykNyxJrlcmCormPqRQjB/Gv4cu2FfBG+PMzIfdZp2CLDsrrB1NPU22Qhg==
|
||||||
|
|
||||||
abort-controller@^3.0.0:
|
abort-controller@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
@@ -270,34 +266,52 @@ form-data@^3.0.0:
|
|||||||
combined-stream "^1.0.8"
|
combined-stream "^1.0.8"
|
||||||
mime-types "^2.1.12"
|
mime-types "^2.1.12"
|
||||||
|
|
||||||
|
form-data@^4.0.0:
|
||||||
|
version "4.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
|
||||||
|
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
|
||||||
|
dependencies:
|
||||||
|
asynckit "^0.4.0"
|
||||||
|
combined-stream "^1.0.8"
|
||||||
|
mime-types "^2.1.12"
|
||||||
|
|
||||||
ip-regex@^2.1.0:
|
ip-regex@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
|
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
|
||||||
integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
|
integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
|
||||||
|
|
||||||
mime-db@1.48.0:
|
lru-cache@^6.0.0:
|
||||||
version "1.48.0"
|
version "6.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d"
|
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
|
||||||
integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==
|
integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
|
||||||
|
dependencies:
|
||||||
|
yallist "^4.0.0"
|
||||||
|
|
||||||
|
mime-db@1.52.0:
|
||||||
|
version "1.52.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
|
||||||
|
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
|
||||||
|
|
||||||
mime-types@^2.1.12:
|
mime-types@^2.1.12:
|
||||||
version "2.1.31"
|
version "2.1.35"
|
||||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b"
|
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
|
||||||
integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==
|
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
|
||||||
dependencies:
|
dependencies:
|
||||||
mime-db "1.48.0"
|
mime-db "1.52.0"
|
||||||
|
|
||||||
minimatch@^3.0.4:
|
minimatch@^3.0.4:
|
||||||
version "3.0.4"
|
version "3.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
|
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
|
||||||
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
|
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
|
||||||
dependencies:
|
dependencies:
|
||||||
brace-expansion "^1.1.7"
|
brace-expansion "^1.1.7"
|
||||||
|
|
||||||
node-fetch@^2.6.0:
|
node-fetch@^2.6.7:
|
||||||
version "2.6.1"
|
version "2.6.7"
|
||||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
|
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
|
||||||
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
|
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
|
||||||
|
dependencies:
|
||||||
|
whatwg-url "^5.0.0"
|
||||||
|
|
||||||
process@^0.11.10:
|
process@^0.11.10:
|
||||||
version "0.11.10"
|
version "0.11.10"
|
||||||
@@ -324,6 +338,13 @@ semver@^6.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
||||||
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
||||||
|
|
||||||
|
semver@^7.3.7:
|
||||||
|
version "7.3.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f"
|
||||||
|
integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
|
||||||
|
dependencies:
|
||||||
|
lru-cache "^6.0.0"
|
||||||
|
|
||||||
tough-cookie@^3.0.1:
|
tough-cookie@^3.0.1:
|
||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2"
|
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2"
|
||||||
@@ -342,15 +363,20 @@ tough-cookie@^4.0.0:
|
|||||||
punycode "^2.1.1"
|
punycode "^2.1.1"
|
||||||
universalify "^0.1.2"
|
universalify "^0.1.2"
|
||||||
|
|
||||||
|
tr46@~0.0.3:
|
||||||
|
version "0.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
|
||||||
|
integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
|
||||||
|
|
||||||
tslib@^1.10.0:
|
tslib@^1.10.0:
|
||||||
version "1.14.1"
|
version "1.14.1"
|
||||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
||||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||||
|
|
||||||
tslib@^2.0.0, tslib@^2.2.0:
|
tslib@^2.0.0, tslib@^2.2.0:
|
||||||
version "2.3.0"
|
version "2.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
|
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
|
||||||
integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
|
integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
|
||||||
|
|
||||||
tunnel@0.0.6, tunnel@^0.0.6:
|
tunnel@0.0.6, tunnel@^0.0.6:
|
||||||
version "0.0.6"
|
version "0.0.6"
|
||||||
@@ -367,11 +393,24 @@ uuid@^3.3.2, uuid@^3.3.3:
|
|||||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
|
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
|
||||||
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
|
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
|
||||||
|
|
||||||
uuid@^8.3.0:
|
uuid@^8.3.0, uuid@^8.3.2:
|
||||||
version "8.3.2"
|
version "8.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
|
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
|
||||||
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
|
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
|
||||||
|
|
||||||
|
webidl-conversions@^3.0.0:
|
||||||
|
version "3.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
|
||||||
|
integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
|
||||||
|
|
||||||
|
whatwg-url@^5.0.0:
|
||||||
|
version "5.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
|
||||||
|
integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
|
||||||
|
dependencies:
|
||||||
|
tr46 "~0.0.3"
|
||||||
|
webidl-conversions "^3.0.0"
|
||||||
|
|
||||||
xml2js@^0.4.19:
|
xml2js@^0.4.19:
|
||||||
version "0.4.23"
|
version "0.4.23"
|
||||||
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66"
|
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66"
|
||||||
@@ -384,3 +423,8 @@ xmlbuilder@~11.0.0:
|
|||||||
version "11.0.1"
|
version "11.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
|
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
|
||||||
integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
|
integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
|
||||||
|
|
||||||
|
yallist@^4.0.0:
|
||||||
|
version "4.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
|
||||||
|
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
|
||||||
|
|||||||
Reference in New Issue
Block a user