mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 14:34:21 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1198b07430 | ||
|
|
70da3bbf44 | ||
|
|
6bd3d993c6 | ||
|
|
5f19ec79ce | ||
|
|
d4526a5553 | ||
|
|
e9d41d6cc1 | ||
|
|
22fdc77bf4 | ||
|
|
98f8f7e659 | ||
|
|
56dbe84af1 | ||
|
|
e8677f0f39 | ||
|
|
7f2d473c10 | ||
|
|
bd03e04863 | ||
|
|
9c6c84224a | ||
|
|
5daca16544 | ||
|
|
558057564b | ||
|
|
432702e864 | ||
|
|
b203567269 | ||
|
|
c6e5aea595 | ||
|
|
360dc864d5 | ||
|
|
251b9047a8 | ||
|
|
961f85197f | ||
|
|
28f930222f | ||
|
|
df99e806d4 | ||
|
|
ff4c96868c | ||
|
|
b256bd96bb | ||
|
|
af848b40be | ||
|
|
8575951200 | ||
|
|
036ef458dd | ||
|
|
552f83fe52 | ||
|
|
54a18e26db | ||
|
|
cd48c8e227 | ||
|
|
a05e47355e | ||
|
|
eba3a0f992 | ||
|
|
679e23d4a3 | ||
|
|
9f4cc09ff9 | ||
|
|
4d745286b4 | ||
|
|
5cfe23c062 | ||
|
|
f887fb3d0e | ||
|
|
b1c3bf6751 | ||
|
|
d37167af45 | ||
|
|
52b8784594 | ||
|
|
9aede54d98 | ||
|
|
24a61db157 | ||
|
|
5311f05890 | ||
|
|
cb3f1e45ed | ||
|
|
4f1c6a74a7 | ||
|
|
b252db7f27 | ||
|
|
250fcd6a74 | ||
|
|
bc1dd263b6 | ||
|
|
8a45918450 | ||
|
|
92a3389c13 | ||
|
|
7d546f4868 | ||
|
|
4e64415f09 | ||
|
|
d2b39ad0b5 | ||
|
|
e939497f6f | ||
|
|
6cecb48364 | ||
|
|
4d88f85d08 | ||
|
|
55283cc231 | ||
|
|
904f3fef85 | ||
|
|
ec02537da5 | ||
|
|
089557fc38 | ||
|
|
e6689b4deb | ||
|
|
9669f3ee51 | ||
|
|
31a7f6d628 | ||
|
|
59b5745c73 | ||
|
|
d03a71de6e | ||
|
|
ddde3938f5 | ||
|
|
5a73aa9f67 | ||
|
|
d01c52ad8b | ||
|
|
377a94bc68 | ||
|
|
66dc012cc3 | ||
|
|
2789f85824 | ||
|
|
fbb865d04d | ||
|
|
96ac949ea0 | ||
|
|
92aece5fc9 | ||
|
|
db791aad7b | ||
|
|
d3c9825d67 | ||
|
|
f60ef1e808 |
@@ -3,7 +3,12 @@ description: Create a report to help us improve
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: Please note we will close your issue without comment if you do not fill out the requested information.
|
||||
value: |
|
||||
First, take some time to think whether this is really an issue of ruby/setup-ruby and whether it is fixable in this action.
|
||||
This action basically just downloads a prebuilt Ruby and adds it to `PATH`, so it is unlikely the bug is in this action.
|
||||
Give some thoughts whether it could be an issue in your workflow, in the gems you use, in GitHub Actions, in Ruby, RubyGems, Bundler, etc.
|
||||
This is NOT the place to ask help about your workflow failing (ask that on [GitHub Community](https://github.com/orgs/community/discussions/categories/actions) or [Discussions](https://github.com/ruby/setup-ruby/discussions) instead), it is only to report issues about ruby/setup-ruby.
|
||||
Please note we will close your issue without comment if you do not fill out the requested information.
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Ensure the following before filing this issue
|
||||
@@ -26,21 +31,9 @@ body:
|
||||
- self-hosted runner
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
render: yaml
|
||||
label: The workflow code or a link to the workflow file
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
attributes:
|
||||
label: Link to the log of a failed workflow job, or to a gist with the output
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
render: shell
|
||||
label: The command and output of the failing step
|
||||
label: Link to the failed workflow job (must be a public workflow job, so the necessary information is available)
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: 'github-actions'
|
||||
directory: '/'
|
||||
schedule:
|
||||
interval: 'weekly'
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
permissions:
|
||||
contents: write # for git push
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- run: git push origin HEAD:v1
|
||||
|
||||
+64
-22
@@ -17,9 +17,9 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ ubuntu-18.04, ubuntu-20.04, ubuntu-22.04, macos-10.15, macos-11, macos-12, windows-2019, windows-2022 ]
|
||||
os: [ ubuntu-20.04, ubuntu-22.04, macos-11, macos-12, macos-13, macos-14, macos-arm-oss, 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', '3.2', ruby-head,
|
||||
'1.9', '2.0', '2.1', '2.2', '2.3', '2.4', '2.5', '2.6', '2.7', '3.0', '3.1', '3.2', '3.3', ruby-head,
|
||||
jruby, jruby-head,
|
||||
truffleruby, truffleruby-head,
|
||||
truffleruby+graalvm, truffleruby+graalvm-head
|
||||
@@ -31,6 +31,24 @@ jobs:
|
||||
- { os: windows-2022, ruby: mswin }
|
||||
- { os: windows-2022, ruby: ucrt }
|
||||
exclude:
|
||||
# https://github.com/ruby/setup-ruby/issues/496
|
||||
- { os: ubuntu-22.04, ruby: '2.2' }
|
||||
# These old Rubies fail to compile on macos-arm-oss (macOS 13, arm64), which is used for ruby/ruby-builder
|
||||
- { os: macos-14, ruby: '1.9' }
|
||||
- { os: macos-14, ruby: '2.0' }
|
||||
- { os: macos-14, ruby: '2.1' }
|
||||
- { os: macos-14, ruby: '2.2' }
|
||||
- { os: macos-14, ruby: '2.3' }
|
||||
- { os: macos-14, ruby: '2.4' }
|
||||
- { os: macos-14, ruby: '2.5' }
|
||||
- { os: macos-arm-oss, ruby: '1.9' }
|
||||
- { os: macos-arm-oss, ruby: '2.0' }
|
||||
- { os: macos-arm-oss, ruby: '2.1' }
|
||||
- { os: macos-arm-oss, ruby: '2.2' }
|
||||
- { os: macos-arm-oss, ruby: '2.3' }
|
||||
- { os: macos-arm-oss, ruby: '2.4' }
|
||||
- { os: macos-arm-oss, ruby: '2.5' }
|
||||
# Windows
|
||||
- { os: windows-2019, ruby: '1.9' }
|
||||
- { os: windows-2019, ruby: debug }
|
||||
- { os: windows-2019, ruby: truffleruby }
|
||||
@@ -47,7 +65,7 @@ jobs:
|
||||
name: ${{ matrix.os }} ${{ matrix.ruby }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: ./
|
||||
with:
|
||||
@@ -148,7 +166,7 @@ jobs:
|
||||
name: "Test with no Gemfile"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- run: rm Gemfile
|
||||
- uses: ./
|
||||
with:
|
||||
@@ -156,21 +174,32 @@ jobs:
|
||||
- run: ruby -v
|
||||
|
||||
testLatestRubygemsVersion:
|
||||
name: "Test rubygems: latest upgrades the default RubyGems version"
|
||||
name: "Test rubygems: latest on ${{ matrix.ruby }}"
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- { ruby: '3.2', expected_rubygems_version: '3.5.3' }
|
||||
- { ruby: '3.0', expected_rubygems_version: '3.5.3' }
|
||||
- { ruby: '2.7', expected_rubygems_version: '3.4.22' }
|
||||
- { ruby: '2.6', expected_rubygems_version: '3.4.22' }
|
||||
- { ruby: '2.5', expected_rubygems_version: '3.3.27' }
|
||||
- { ruby: '2.3', expected_rubygems_version: '3.3.27' }
|
||||
- { ruby: '2.0', expected_rubygems_version: '2.7.11' }
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: '2.6'
|
||||
ruby-version: ${{ matrix.ruby }}
|
||||
rubygems: latest
|
||||
- run: ruby -e "exit(Gem.rubygems_version > Gem::Version.new('3.0.3'))"
|
||||
- run: ruby -e 'puts Gem::VERSION; exit(Gem.rubygems_version >= Gem::Version.new("${{ matrix.expected_rubygems_version }}"))'
|
||||
|
||||
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: actions/checkout@v4
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: '2.6'
|
||||
@@ -181,7 +210,7 @@ jobs:
|
||||
name: "Test rubygems: version noops if the default is newer"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: '3.1.0'
|
||||
@@ -192,7 +221,7 @@ jobs:
|
||||
name: "Test rubygems: version uses the Bundler installed by the rubygems update"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: '3.1.0'
|
||||
@@ -202,9 +231,9 @@ jobs:
|
||||
|
||||
testFixedBundlerVersionForOldRuby:
|
||||
name: "Test bundler: 1.x for old Ruby"
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: '2.2'
|
||||
@@ -215,7 +244,7 @@ jobs:
|
||||
name: "Test with a major Bundler version"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: '2.6'
|
||||
@@ -226,7 +255,7 @@ jobs:
|
||||
name: "Test with a minor Bundler version"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: '2.6'
|
||||
@@ -237,7 +266,7 @@ jobs:
|
||||
name: "Test with an exact Bundler version"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: '2.6'
|
||||
@@ -248,7 +277,7 @@ jobs:
|
||||
name: "Test with a Bundler pre/rc version"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: '2.6'
|
||||
@@ -261,7 +290,7 @@ jobs:
|
||||
env:
|
||||
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/bundler-dev.gemfile
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: ruby-head
|
||||
@@ -273,7 +302,7 @@ jobs:
|
||||
env:
|
||||
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/bundler1.gemfile
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: '2.7'
|
||||
@@ -291,7 +320,7 @@ jobs:
|
||||
env:
|
||||
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: '2.6'
|
||||
@@ -304,17 +333,30 @@ jobs:
|
||||
env:
|
||||
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/nokogiri.gemfile
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: truffleruby-head
|
||||
bundler-cache: true
|
||||
- run: bundle list | grep nokogiri
|
||||
|
||||
testWindowsToolchain:
|
||||
name: "Test windows-toolchain: none"
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: '2.7'
|
||||
windows-toolchain: none
|
||||
bundler: none
|
||||
- name: C:/msys64/mingw64/bin/gcc.exe not installed
|
||||
run: ruby -e "abort if File.exist?('C:/msys64/mingw64/bin/gcc.exe')"
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- run: yarn install
|
||||
- run: yarn run package
|
||||
- name: Check generated files are up to date
|
||||
|
||||
@@ -15,10 +15,10 @@ This action currently supports these versions of MRI, JRuby and TruffleRuby:
|
||||
|
||||
| Interpreter | Versions |
|
||||
| ----------- | -------- |
|
||||
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.2.1, head, debug, mingw, mswin, ucrt |
|
||||
| `jruby` | 9.1.17.0 - 9.4.1.0, head |
|
||||
| `truffleruby` | 19.3.0 - 22.3.1, head |
|
||||
| `truffleruby+graalvm` | 21.2.0 - 22.3.1, head |
|
||||
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.3.1, head, debug, mingw, mswin, ucrt |
|
||||
| `jruby` | 9.1.17.0 - 9.4.6.0, head |
|
||||
| `truffleruby` | 19.3.0 - 24.0.1, head |
|
||||
| `truffleruby+graalvm` | 21.2.0 - 24.0.1, head |
|
||||
|
||||
`ruby-debug` is the same as `ruby-head` but with assertions enabled (`-DRUBY_DEBUG=1`).
|
||||
|
||||
@@ -38,12 +38,12 @@ which means Ruby ≤ 2.4 is unmaintained and considered insecure.
|
||||
|
||||
### Supported Platforms
|
||||
|
||||
The action works on these [GitHub-hosted runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources) images. Runner images not listed below are not supported yet. `$OS-latest` just alias to one of these images.
|
||||
The action works on these [GitHub-hosted runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources) images. Runner images not listed below are not supported yet. `$OS-latest` just alias to one of these images.
|
||||
|
||||
| Operating System | Supported |
|
||||
| ---------------- | --------- |
|
||||
| Ubuntu | `ubuntu-18.04`, `ubuntu-20.04`, `ubuntu-22.04` |
|
||||
| macOS | `macos-10.15`, `macos-11`, `macos-12` |
|
||||
| Ubuntu | `ubuntu-20.04`, `ubuntu-22.04` |
|
||||
| macOS | `macos-11`, `macos-12`, `macos-13`, `macos-14` |
|
||||
| Windows | `windows-2019`, `windows-2022` |
|
||||
|
||||
The prebuilt releases are generated by [ruby-builder](https://github.com/ruby/ruby-builder)
|
||||
@@ -67,10 +67,10 @@ jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: '3.0' # Not needed with a .ruby-version file
|
||||
ruby-version: '3.3' # Not needed with a .ruby-version file
|
||||
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
||||
- run: bundle exec rake
|
||||
```
|
||||
@@ -89,10 +89,10 @@ jobs:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest]
|
||||
# Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0'
|
||||
ruby: ['2.7', '3.0', '3.1', head, jruby, jruby-head, truffleruby, truffleruby-head]
|
||||
ruby: ['2.7', '3.0', '3.1', '3.2', '3.3', head, jruby, jruby-head, truffleruby, truffleruby-head]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: ${{ matrix.ruby }}
|
||||
@@ -115,10 +115,10 @@ jobs:
|
||||
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
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: '3.0'
|
||||
ruby-version: '3.3'
|
||||
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
||||
- run: bundle exec rake
|
||||
```
|
||||
@@ -252,7 +252,6 @@ This action might work with [self-hosted runners](https://docs.github.com/en/act
|
||||
if the [Runner Image](https://github.com/actions/runner-images) is very similar to the ones used by GitHub runners. Notably:
|
||||
|
||||
* 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.
|
||||
* Make sure to use the same version of libssl.
|
||||
* 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,
|
||||
@@ -260,9 +259,12 @@ if the [Runner Image](https://github.com/actions/runner-images) is very similar
|
||||
This is necessary since the Ruby builds embed the install path when built and cannot be moved around.
|
||||
* `/home/runner` must be writable by the `runner` user.
|
||||
|
||||
In other cases, please use a system Ruby or [install Ruby manually](https://github.com/postmodern/chruby/wiki#installing-rubies) instead.
|
||||
In other cases, you will need to install Ruby in the runner tool cache as shown by the action when it detects that case
|
||||
(run it so it will show you where to install Ruby).
|
||||
You could of course also not use this action and e.g. use Ruby from a system package or use a Docker image instead.
|
||||
|
||||
On a self-hosted runner you need to define the `ImageOs` as an evironment variable on the host, you can do this in the `~/actions-runner/.env` file (See [#230](https://github.com/ruby/setup-ruby/issues/230)).
|
||||
See also the [`self-hosted:` input](action.yml).
|
||||
You can set it to `true` if you want to use custom-built Rubies in your self-hosted toolcache instead of prebuild Rubies.
|
||||
|
||||
## History
|
||||
|
||||
|
||||
+17
-2
@@ -12,7 +12,8 @@ inputs:
|
||||
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.
|
||||
For 'latest', `gem update --system` is run to update to the latest compatible RubyGems version.
|
||||
Ruby head/master builds will not be updated.
|
||||
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:
|
||||
description: |
|
||||
@@ -30,9 +31,23 @@ inputs:
|
||||
description: |
|
||||
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.
|
||||
self-hosted:
|
||||
description: |
|
||||
Consider the runner as a self-hosted runner, which means not using prebuilt Ruby binaries which only work
|
||||
on GitHub-hosted runners or self-hosted runners with a very similar image to the ones used by GitHub runners.
|
||||
The default is to detect this automatically based on the OS, OS version and architecture.
|
||||
windows-toolchain:
|
||||
description: |
|
||||
This input allows to override the default toolchain setup on Windows.
|
||||
The default setting ('default') installs a toolchain based on the selected Ruby.
|
||||
Specifically, it installs MSYS2 if not already there and installs mingw/ucrt/mswin build tools and packages.
|
||||
It also sets environment variables using 'ridk' or 'vcvars64.bat' based on the selected Ruby.
|
||||
At present, the only other setting than 'default' is 'none', which only adds Ruby to PATH.
|
||||
No build tools or packages are installed, nor are any ENV setting changed to activate them.
|
||||
|
||||
outputs:
|
||||
ruby-prefix:
|
||||
description: 'The prefix of the installed ruby'
|
||||
runs:
|
||||
using: 'node16'
|
||||
using: 'node20'
|
||||
main: 'dist/index.js'
|
||||
|
||||
+12
-4
@@ -80,7 +80,7 @@ export async function installBundler(bundlerVersionInput, rubygemsInputSet, lock
|
||||
|
||||
if (bundlerVersion === 'default') {
|
||||
if (common.isBundler2dot2Default(engine, rubyVersion)) {
|
||||
if (common.windows && engine === 'ruby' && (common.isStableVersion(rubyVersion) || rubyVersion === 'head')) {
|
||||
if (common.windows && engine === 'ruby' && (common.isStableVersion(engine, rubyVersion) || rubyVersion === 'head')) {
|
||||
// https://github.com/ruby/setup-ruby/issues/371
|
||||
console.log(`Installing latest Bundler for ${engine}-${rubyVersion} on Windows because bin/bundle does not work in bash otherwise`)
|
||||
bundlerVersion = 'latest'
|
||||
@@ -191,7 +191,8 @@ export async function bundleInstall(gemfile, lockFile, platform, engine, rubyVer
|
||||
// restore cache & install
|
||||
let cachedKey = null
|
||||
try {
|
||||
cachedKey = await cache.restoreCache(paths, key, restoreKeys)
|
||||
// .slice() to workaround https://github.com/actions/toolkit/issues/1377
|
||||
cachedKey = await cache.restoreCache(paths.slice(), key, restoreKeys)
|
||||
} catch (error) {
|
||||
if (error.name === cache.ValidationError.name) {
|
||||
throw error;
|
||||
@@ -232,8 +233,15 @@ export async function bundleInstall(gemfile, lockFile, platform, engine, rubyVer
|
||||
}
|
||||
|
||||
async function computeBaseKey(platform, engine, version, lockFile, cacheVersion) {
|
||||
const cacheVersionSuffix = DEFAULT_CACHE_VERSION === cacheVersion ? '' : `-cachever:${cacheVersion}`
|
||||
let key = `setup-ruby-bundler-cache-v4-${platform}-${engine}-${version}${cacheVersionSuffix}`
|
||||
const cwd = process.cwd()
|
||||
const bundleWith = process.env['BUNDLE_WITH'] || ''
|
||||
const bundleWithout = process.env['BUNDLE_WITHOUT'] || ''
|
||||
const bundleOnly = process.env['BUNDLE_ONLY'] || ''
|
||||
let key = `setup-ruby-bundler-cache-v6-${common.getOSNameVersionArch()}-${engine}-${version}-wd-${cwd}-with-${bundleWith}-without-${bundleWithout}-only-${bundleOnly}`
|
||||
|
||||
if (cacheVersion !== DEFAULT_CACHE_VERSION) {
|
||||
key += `-v-${cacheVersion}`
|
||||
}
|
||||
|
||||
if (common.isHeadVersion(version)) {
|
||||
if (engine !== 'jruby') {
|
||||
|
||||
@@ -5,12 +5,19 @@ const util = require('util')
|
||||
const stream = require('stream')
|
||||
const crypto = require('crypto')
|
||||
const core = require('@actions/core')
|
||||
const tc = require('@actions/tool-cache')
|
||||
const { performance } = require('perf_hooks')
|
||||
const linuxOSInfo = require('linux-os-info')
|
||||
import macosRelease from 'macos-release'
|
||||
|
||||
export const windows = (os.platform() === 'win32')
|
||||
// Extract to SSD on Windows, see https://github.com/ruby/setup-ruby/pull/14
|
||||
export const drive = (windows ? (process.env['GITHUB_WORKSPACE'] || 'C')[0] : undefined)
|
||||
|
||||
export const inputs = {
|
||||
selfHosted: undefined
|
||||
}
|
||||
|
||||
export function partition(string, separator) {
|
||||
const i = string.indexOf(separator)
|
||||
if (i === -1) {
|
||||
@@ -63,8 +70,12 @@ export function isHeadVersion(rubyVersion) {
|
||||
return ['head', 'debug', 'mingw', 'mswin', 'ucrt'].includes(rubyVersion)
|
||||
}
|
||||
|
||||
export function isStableVersion(rubyVersion) {
|
||||
return /^\d+(\.\d+)*$/.test(rubyVersion)
|
||||
export function isStableVersion(engine, rubyVersion) {
|
||||
if (engine.startsWith('truffleruby')) {
|
||||
return /^\d+(\.\d+)*(-preview\d+)?$/.test(rubyVersion)
|
||||
} else {
|
||||
return /^\d+(\.\d+)*$/.test(rubyVersion)
|
||||
}
|
||||
}
|
||||
|
||||
export function hasBundlerDefaultGem(engine, rubyVersion) {
|
||||
@@ -151,75 +162,148 @@ export async function hashFile(file) {
|
||||
return hash.digest('hex')
|
||||
}
|
||||
|
||||
function getImageOS() {
|
||||
const imageOS = process.env['ImageOS']
|
||||
if (!imageOS) {
|
||||
throw new Error('The environment variable ImageOS must be set')
|
||||
}
|
||||
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',
|
||||
const GitHubHostedPlatforms = [
|
||||
'ubuntu-20.04-x64',
|
||||
'ubuntu-22.04-x64',
|
||||
'macos-11-x64',
|
||||
'macos-12-x64',
|
||||
'macos-13-x64',
|
||||
'macos-13-arm64',
|
||||
'macos-14-x64',
|
||||
'macos-14-arm64',
|
||||
'windows-2019-x64',
|
||||
'windows-2022-x64',
|
||||
]
|
||||
|
||||
export function getVirtualEnvironmentName() {
|
||||
const imageOS = getImageOS()
|
||||
|
||||
let match = imageOS.match(/^ubuntu(\d+)/) // e.g. ubuntu18
|
||||
if (match) {
|
||||
return `ubuntu-${match[1]}.04`
|
||||
// Actually a self-hosted runner for which the OS and OS version does not correspond to a GitHub-hosted runner image,
|
||||
export function isSelfHostedRunner() {
|
||||
if (inputs.selfHosted === undefined) {
|
||||
throw new Error('inputs.selfHosted should have been already set')
|
||||
}
|
||||
|
||||
match = imageOS.match(/^macos(\d{2})(\d+)?/) // e.g. macos1015, macos11
|
||||
if (match) {
|
||||
if (match[2]) {
|
||||
return `macos-${match[1]}.${match[2]}`
|
||||
} else {
|
||||
return `macos-${match[1]}`
|
||||
}
|
||||
return inputs.selfHosted === 'true' ||
|
||||
!GitHubHostedPlatforms.includes(getOSNameVersionArch())
|
||||
}
|
||||
|
||||
export function selfHostedRunnerReason() {
|
||||
if (inputs.selfHosted === 'true') {
|
||||
return 'the self-hosted input was set'
|
||||
} else if (!GitHubHostedPlatforms.includes(getOSNameVersionArch())) {
|
||||
return 'the platform does not match a GitHub-hosted runner image (or that image is deprecated and no longer supported)'
|
||||
} else {
|
||||
return 'unknown reason'
|
||||
}
|
||||
}
|
||||
|
||||
let osNameVersion = undefined
|
||||
|
||||
export function getOSNameVersion() {
|
||||
if (osNameVersion !== undefined) {
|
||||
return osNameVersion
|
||||
}
|
||||
|
||||
match = imageOS.match(/^win(\d+)/) // e.g. win19
|
||||
if (match) {
|
||||
return `windows-20${match[1]}`
|
||||
const platform = os.platform()
|
||||
let osName
|
||||
let osVersion
|
||||
if (platform === 'linux') {
|
||||
const info = linuxOSInfo({mode: 'sync'})
|
||||
osName = info.id
|
||||
osVersion = info.version_id
|
||||
} else if (platform === 'darwin') {
|
||||
osName = 'macos'
|
||||
osVersion = macosRelease().version
|
||||
} else if (platform === 'win32') {
|
||||
osName = 'windows'
|
||||
osVersion = findWindowsVersion()
|
||||
} else {
|
||||
throw new Error(`Unknown platform ${platform}`)
|
||||
}
|
||||
|
||||
throw new Error(`Unknown ImageOS ${imageOS}`)
|
||||
osNameVersion = `${osName}-${osVersion}`
|
||||
return osNameVersion
|
||||
}
|
||||
|
||||
export function getOSNameVersionArch() {
|
||||
return `${getOSNameVersion()}-${os.arch()}`
|
||||
}
|
||||
|
||||
function findWindowsVersion() {
|
||||
const version = os.version();
|
||||
const match = version.match(/^Windows Server (\d+) Datacenter/)
|
||||
if (match) {
|
||||
return match[1]
|
||||
} else {
|
||||
throw new Error('Could not find Windows version')
|
||||
}
|
||||
}
|
||||
|
||||
export function shouldUseToolCache(engine, version) {
|
||||
return engine === 'ruby' && !isHeadVersion(version)
|
||||
return (engine === 'ruby' && !isHeadVersion(version)) || isSelfHostedRunner()
|
||||
}
|
||||
|
||||
function getPlatformToolCache(platform) {
|
||||
// Hardcode paths rather than using $RUNNER_TOOL_CACHE because the prebuilt Rubies cannot be moved anyway
|
||||
export function getToolCachePath() {
|
||||
if (isSelfHostedRunner()) {
|
||||
return getRunnerToolCache()
|
||||
} else {
|
||||
// Rubies prebuilt by this action embed this path rather than using $RUNNER_TOOL_CACHE
|
||||
// so use that path if not isSelfHostedRunner()
|
||||
return getDefaultToolCachePath()
|
||||
}
|
||||
}
|
||||
|
||||
export function getRunnerToolCache() {
|
||||
const runnerToolCache = process.env['RUNNER_TOOL_CACHE']
|
||||
if (!runnerToolCache) {
|
||||
throw new Error('$RUNNER_TOOL_CACHE must be set')
|
||||
}
|
||||
return runnerToolCache
|
||||
}
|
||||
|
||||
// Rubies prebuilt by this action embed this path rather than using $RUNNER_TOOL_CACHE
|
||||
function getDefaultToolCachePath() {
|
||||
const platform = getOSNameVersion()
|
||||
if (platform.startsWith('ubuntu-')) {
|
||||
return '/opt/hostedtoolcache'
|
||||
} else if (platform.startsWith('macos-')) {
|
||||
return '/Users/runner/hostedtoolcache'
|
||||
} else if (platform.startsWith('windows-')) {
|
||||
return 'C:/hostedtoolcache/windows'
|
||||
return 'C:\\hostedtoolcache\\windows'
|
||||
} else {
|
||||
throw new Error('Unknown platform')
|
||||
}
|
||||
}
|
||||
|
||||
export function getToolCacheRubyPrefix(platform, version) {
|
||||
const toolCache = getPlatformToolCache(platform)
|
||||
return path.join(toolCache, 'Ruby', version, 'x64')
|
||||
// tc.find() but using RUNNER_TOOL_CACHE=getToolCachePath()
|
||||
export function toolCacheFind(engine, version) {
|
||||
const originalToolCache = getToolCachePath()
|
||||
process.env['RUNNER_TOOL_CACHE'] = getToolCachePath()
|
||||
try {
|
||||
return tc.find(engineToToolCacheName(engine), version)
|
||||
} finally {
|
||||
process.env['RUNNER_TOOL_CACHE'] = originalToolCache
|
||||
}
|
||||
}
|
||||
|
||||
function engineToToolCacheName(engine) {
|
||||
return {
|
||||
ruby: 'Ruby',
|
||||
jruby: 'JRuby',
|
||||
truffleruby: 'TruffleRuby',
|
||||
"truffleruby+graalvm": 'TruffleRubyGraalVM'
|
||||
}[engine]
|
||||
}
|
||||
|
||||
export function getToolCacheRubyPrefix(platform, engine, version) {
|
||||
const toolCache = getToolCachePath()
|
||||
return path.join(toolCache, engineToToolCacheName(engine), version, os.arch())
|
||||
}
|
||||
|
||||
export function toolCacheCompleteFile(toolCacheRubyPrefix) {
|
||||
return `${toolCacheRubyPrefix}.complete`
|
||||
}
|
||||
|
||||
export function createToolCacheCompleteFile(toolCacheRubyPrefix) {
|
||||
const completeFile = `${toolCacheRubyPrefix}.complete`
|
||||
fs.writeFileSync(completeFile, '')
|
||||
fs.writeFileSync(toolCacheCompleteFile(toolCacheRubyPrefix), '')
|
||||
}
|
||||
|
||||
// convert windows path like C:\Users\runneradmin to /c/Users/runneradmin
|
||||
@@ -259,7 +343,8 @@ export function setupPath(newPathEntries) {
|
||||
|
||||
// Then add new path entries using core.addPath()
|
||||
let newPath
|
||||
if (windows) {
|
||||
const windowsToolchain = core.getInput('windows-toolchain')
|
||||
if (windows && windowsToolchain !== 'none') {
|
||||
// main Ruby dll determines whether mingw or ucrt build
|
||||
msys2Type = rubyIsUCRT(newPathEntries[0]) ? 'ucrt64' : 'mingw64'
|
||||
|
||||
|
||||
+2789
-5787
File diff suppressed because one or more lines are too long
@@ -16,6 +16,8 @@ const inputDefaults = {
|
||||
'bundler-cache': 'false',
|
||||
'working-directory': '.',
|
||||
'cache-version': bundler.DEFAULT_CACHE_VERSION,
|
||||
'self-hosted': 'false',
|
||||
'windows-toolchain': 'default',
|
||||
}
|
||||
|
||||
// entry point when this action is run on its own
|
||||
@@ -29,6 +31,9 @@ export async function run() {
|
||||
core.setFailed(error.stack)
|
||||
}
|
||||
}
|
||||
// Explicit process.exit() to not wait hanging promises,
|
||||
// see https://github.com/ruby/setup-ruby/issues/543
|
||||
process.exit()
|
||||
}
|
||||
|
||||
// entry point when this action is run from other actions
|
||||
@@ -39,14 +44,15 @@ export async function setupRuby(options = {}) {
|
||||
inputs[key] = core.getInput(key) || inputDefaults[key]
|
||||
}
|
||||
}
|
||||
common.inputs.selfHosted = inputs['self-hosted']
|
||||
|
||||
process.chdir(inputs['working-directory'])
|
||||
|
||||
const platform = common.getVirtualEnvironmentName()
|
||||
const platform = common.getOSNameVersion()
|
||||
const [engine, parsedVersion] = parseRubyEngineAndVersion(inputs['ruby-version'])
|
||||
|
||||
let installer
|
||||
if (platform.startsWith('windows-') && engine === 'ruby') {
|
||||
if (platform.startsWith('windows-') && engine === 'ruby' && !common.isSelfHostedRunner()) {
|
||||
installer = require('./windows')
|
||||
} else {
|
||||
installer = require('./ruby-builder')
|
||||
@@ -60,7 +66,7 @@ export async function setupRuby(options = {}) {
|
||||
|
||||
// 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') &&
|
||||
if (platform.startsWith('windows') && engine === 'jruby' &&
|
||||
!fs.existsSync('C:\\msys64\\mingw64\\bin\\gcc.exe')) {
|
||||
await require('./windows').installJRubyTools()
|
||||
}
|
||||
@@ -73,7 +79,7 @@ export async function setupRuby(options = {}) {
|
||||
const rubygemsInputSet = inputs['rubygems'] !== 'default'
|
||||
if (rubygemsInputSet) {
|
||||
await common.measure('Updating RubyGems', async () =>
|
||||
rubygems.rubygemsUpdate(inputs['rubygems'], rubyPrefix))
|
||||
rubygems.rubygemsUpdate(inputs['rubygems'], rubyPrefix, platform, engine, version))
|
||||
}
|
||||
|
||||
// When setup-ruby is used by other actions, this allows code in them to run
|
||||
@@ -143,7 +149,7 @@ function validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVe
|
||||
if (!engineVersions.includes(parsedVersion)) {
|
||||
const latestToFirstVersion = engineVersions.slice().reverse()
|
||||
// Try to match stable versions first, so an empty version (engine-only) matches the latest stable version
|
||||
let found = latestToFirstVersion.find(v => common.isStableVersion(v) && v.startsWith(parsedVersion))
|
||||
let found = latestToFirstVersion.find(v => common.isStableVersion(engine, v) && v.startsWith(parsedVersion))
|
||||
if (!found) {
|
||||
// Exclude head versions, they must be exact matches
|
||||
found = latestToFirstVersion.find(v => !common.isHeadVersion(v) && v.startsWith(parsedVersion))
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
"@actions/exec": "^1.1.1",
|
||||
"@actions/io": "^1.1.2",
|
||||
"@actions/tool-cache": "^2",
|
||||
"linux-os-info": "^2.0.0",
|
||||
"macos-release": "^3.1.0",
|
||||
"semver": "^7.3.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -8,17 +8,18 @@
|
||||
"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", "2.7.7",
|
||||
"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.0.5",
|
||||
"3.1.0-preview1", "3.1.0", "3.1.1", "3.1.2", "3.1.3",
|
||||
"3.2.0-preview1", "3.2.0-preview2", "3.2.0-preview3", "3.2.0-rc1", "3.2.0", "3.2.1",
|
||||
"2.7.0", "2.7.1", "2.7.2", "2.7.3", "2.7.4", "2.7.5", "2.7.6", "2.7.7", "2.7.8",
|
||||
"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.0.5", "3.0.6", "3.0.7",
|
||||
"3.1.0-preview1", "3.1.0", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5",
|
||||
"3.2.0-preview1", "3.2.0-preview2", "3.2.0-preview3", "3.2.0-rc1", "3.2.0", "3.2.1", "3.2.2", "3.2.3", "3.2.4",
|
||||
"3.3.0-preview1", "3.3.0-preview2", "3.3.0-preview3", "3.3.0-rc1", "3.3.0", "3.3.1",
|
||||
"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", "9.3.7.0", "9.3.8.0", "9.3.9.0", "9.3.10.0",
|
||||
"9.4.0.0", "9.4.1.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", "9.3.7.0", "9.3.8.0", "9.3.9.0", "9.3.10.0", "9.3.11.0", "9.3.13.0", "9.3.14.0",
|
||||
"9.4.0.0", "9.4.1.0", "9.4.2.0", "9.4.3.0", "9.4.4.0", "9.4.5.0", "9.4.6.0",
|
||||
"head"
|
||||
],
|
||||
"truffleruby": [
|
||||
@@ -26,11 +27,15 @@
|
||||
"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", "22.2.0", "22.3.0", "22.3.1",
|
||||
"23.0.0-preview1", "23.0.0", "23.1.0", "23.1.1", "23.1.2",
|
||||
"24.0.0", "24.0.1",
|
||||
"head"
|
||||
],
|
||||
"truffleruby+graalvm": [
|
||||
"21.2.0", "21.3.0",
|
||||
"22.0.0.2", "22.1.0", "22.2.0", "22.3.0", "22.3.1",
|
||||
"23.0.0-preview1", "23.0.0", "23.1.0", "23.1.1", "23.1.2",
|
||||
"24.0.0", "24.0.1",
|
||||
"head"
|
||||
]
|
||||
}
|
||||
|
||||
+30
-18
@@ -1,6 +1,7 @@
|
||||
const os = require('os')
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const core = require('@actions/core')
|
||||
const exec = require('@actions/exec')
|
||||
const io = require('@actions/io')
|
||||
const tc = require('@actions/tool-cache')
|
||||
@@ -13,21 +14,31 @@ const releasesURL = 'https://github.com/ruby/ruby-builder/releases'
|
||||
const windows = common.windows
|
||||
|
||||
export function getAvailableVersions(platform, engine) {
|
||||
if (!common.supportedPlatforms.includes(platform)) {
|
||||
throw new Error(`Unsupported platform ${platform}`)
|
||||
}
|
||||
|
||||
return rubyBuilderVersions[engine]
|
||||
}
|
||||
|
||||
export async function install(platform, engine, version) {
|
||||
let rubyPrefix, inToolCache
|
||||
if (common.shouldUseToolCache(engine, version)) {
|
||||
inToolCache = tc.find('Ruby', version)
|
||||
inToolCache = common.toolCacheFind(engine, version)
|
||||
if (inToolCache) {
|
||||
rubyPrefix = inToolCache
|
||||
} else {
|
||||
rubyPrefix = common.getToolCacheRubyPrefix(platform, version)
|
||||
const toolCacheRubyPrefix = common.getToolCacheRubyPrefix(platform, engine, version)
|
||||
if (common.isSelfHostedRunner()) {
|
||||
const rubyBuildDefinition = engine === 'ruby' ? version : `${engine}-${version}`
|
||||
core.error(
|
||||
`The current runner (${common.getOSNameVersionArch()}) was detected as self-hosted because ${common.selfHostedRunnerReason()}.\n` +
|
||||
`In such a case, you should install Ruby in the $RUNNER_TOOL_CACHE yourself, for example using https://github.com/rbenv/ruby-build\n` +
|
||||
`You can take inspiration from this workflow for more details: https://github.com/ruby/ruby-builder/blob/master/.github/workflows/build.yml\n` +
|
||||
`$ ruby-build ${rubyBuildDefinition} ${toolCacheRubyPrefix}\n` +
|
||||
`Once that completes successfully, mark it as complete with:\n` +
|
||||
`$ touch ${common.toolCacheCompleteFile(toolCacheRubyPrefix)}\n` +
|
||||
`It is your responsibility to ensure installing Ruby like that is not done in parallel.\n`)
|
||||
process.exit(1)
|
||||
} else {
|
||||
rubyPrefix = toolCacheRubyPrefix
|
||||
}
|
||||
}
|
||||
} else if (windows) {
|
||||
rubyPrefix = path.join(`${common.drive}:`, `${engine}-${version}`)
|
||||
@@ -39,7 +50,7 @@ export async function install(platform, engine, version) {
|
||||
common.setupPath([path.join(rubyPrefix, 'bin')])
|
||||
|
||||
if (!inToolCache) {
|
||||
await preparePrefix(rubyPrefix)
|
||||
await io.mkdirP(rubyPrefix)
|
||||
if (engine === 'truffleruby+graalvm') {
|
||||
await installWithRubyBuild(engine, version, rubyPrefix)
|
||||
} else {
|
||||
@@ -47,16 +58,13 @@ export async function install(platform, engine, version) {
|
||||
}
|
||||
}
|
||||
|
||||
return rubyPrefix
|
||||
}
|
||||
|
||||
async function preparePrefix(rubyPrefix) {
|
||||
const parentDir = path.dirname(rubyPrefix)
|
||||
|
||||
await io.rmRF(rubyPrefix)
|
||||
if (!(fs.existsSync(parentDir) && fs.statSync(parentDir).isDirectory())) {
|
||||
await io.mkdirP(parentDir)
|
||||
// https://github.com/oracle/truffleruby/issues/3390
|
||||
if (engine.startsWith('truffleruby') && common.floatVersion(version) >= 24.0 && !common.isSelfHostedRunner() && common.getOSNameVersionArch() === 'macos-12-x64') {
|
||||
console.log('Setting MACOSX_DEPLOYMENT_TARGET=11.0 to workaround bug in XCode 14.2 linker not respecting RTLD_LAZY, see https://github.com/oracle/truffleruby/issues/3390')
|
||||
core.exportVariable('MACOSX_DEPLOYMENT_TARGET', '11.0')
|
||||
}
|
||||
|
||||
return rubyPrefix
|
||||
}
|
||||
|
||||
async function installWithRubyBuild(engine, version, rubyPrefix) {
|
||||
@@ -99,10 +107,14 @@ async function downloadAndExtract(platform, engine, version, rubyPrefix) {
|
||||
|
||||
function getDownloadURL(platform, engine, version) {
|
||||
let builderPlatform = platform
|
||||
if (platform.startsWith('windows-')) {
|
||||
if (platform.startsWith('windows-') && os.arch() === 'x64') {
|
||||
builderPlatform = 'windows-latest'
|
||||
} else if (platform.startsWith('macos-')) {
|
||||
builderPlatform = 'macos-latest'
|
||||
if (os.arch() === 'x64') {
|
||||
builderPlatform = 'macos-latest'
|
||||
} else if (os.arch() === 'arm64') {
|
||||
builderPlatform = 'macos-13-arm64'
|
||||
}
|
||||
}
|
||||
|
||||
if (common.isHeadVersion(version)) {
|
||||
|
||||
+30
-2
@@ -1,8 +1,9 @@
|
||||
const common = require('./common')
|
||||
const path = require('path')
|
||||
const exec = require('@actions/exec')
|
||||
const semver = require('semver')
|
||||
|
||||
export async function rubygemsUpdate(rubygemsVersionInput, rubyPrefix) {
|
||||
export async function rubygemsUpdate(rubygemsVersionInput, rubyPrefix, platform, engine, rubyVersion) {
|
||||
const gem = path.join(rubyPrefix, 'bin', 'gem')
|
||||
|
||||
let gemVersion = ''
|
||||
@@ -18,7 +19,7 @@ export async function rubygemsUpdate(rubygemsVersionInput, rubyPrefix) {
|
||||
|
||||
if (rubygemsVersionInput === 'latest') {
|
||||
console.log('Updating RubyGems to latest version')
|
||||
await exec.exec(gem, ['update', '--system'])
|
||||
await rubygemsLatest(gem, platform, engine, rubyVersion)
|
||||
} else if (semver.gt(rubygemsVersionInput, gemVersion)) {
|
||||
console.log(`Updating RubyGems to ${rubygemsVersionInput}`)
|
||||
await exec.exec(gem, ['update', '--system', rubygemsVersionInput])
|
||||
@@ -28,3 +29,30 @@ export async function rubygemsUpdate(rubygemsVersionInput, rubyPrefix) {
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// Older RubyGems versions do not account for 'required_ruby_version' when
|
||||
// running 'gem update --system', so we have to force a compatible version of
|
||||
// rubygems-update. See https://github.com/ruby/setup-ruby/pull/551 and
|
||||
// https://github.com/rubygems/rubygems/issues/7329
|
||||
async function rubygemsLatest(gem, platform, engine, rubyVersion) {
|
||||
if (engine === 'ruby') {
|
||||
const floatVersion = common.floatVersion(rubyVersion)
|
||||
if (common.isHeadVersion(rubyVersion)) {
|
||||
console.log('Ruby master builds use included RubyGems')
|
||||
} else if (floatVersion >= 3.0) {
|
||||
await exec.exec(gem, ['update', '--system'])
|
||||
} else if (floatVersion >= 2.6) {
|
||||
await exec.exec(gem, ['update', '--system', '3.4.22'])
|
||||
} else if (floatVersion >= 2.3) {
|
||||
await exec.exec(gem, ['update', '--system', '3.3.27'])
|
||||
} else if (floatVersion >= 1.9) {
|
||||
await exec.exec(`${gem} install rubygems-update -v 2.7.11 --no-document`)
|
||||
await exec.exec('update_rubygems')
|
||||
} else {
|
||||
console.log(`Cannot update RubyGems for Ruby version ${rubyVersion}`)
|
||||
}
|
||||
} else {
|
||||
// non MRI Rubies (TruffleRuby and JRuby)
|
||||
await exec.exec(gem, ['update', '--system'])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,15 +4,18 @@ versions = JSON.load(hash).transform_keys(&:to_sym)
|
||||
|
||||
by_minor = versions[:ruby].group_by { |v| v[/^\d\.\d/] }
|
||||
|
||||
(1..7).each do |minor|
|
||||
p by_minor["2.#{minor}"].map { |v| "ruby-#{v}" }
|
||||
by_minor.each_pair do |minor, versions|
|
||||
puts versions.map { |v| "ruby-#{v}" }.join(', ') if minor
|
||||
end
|
||||
|
||||
puts
|
||||
p (versions[:truffleruby] - %w[head]).map { |v| "truffleruby-#{v}" }
|
||||
puts (versions[:truffleruby] - %w[head]).map { |v| "truffleruby-#{v}" }.join(', ')
|
||||
|
||||
puts
|
||||
p (versions[:jruby] - %w[head]).map { |v| "jruby-#{v}" }
|
||||
puts (versions[:"truffleruby+graalvm"] - %w[head]).map { |v| "truffleruby+graalvm-#{v}" }.join(', ')
|
||||
|
||||
puts
|
||||
puts (versions[:jruby] - %w[head]).map { |v| "jruby-#{v}" }.join(', ')
|
||||
|
||||
(versions[:jruby] - %w[head]).each do |v|
|
||||
puts "- { os: windows-latest, jruby-version: #{v}, ruby: jruby-#{v} }"
|
||||
|
||||
@@ -41,17 +41,28 @@
|
||||
"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",
|
||||
"2.7.7": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.7-1/rubyinstaller-2.7.7-1-x64.7z",
|
||||
"2.7.8": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.8-1/rubyinstaller-2.7.8-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.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.4": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.4-1/rubyinstaller-3.0.4-1-x64.7z",
|
||||
"3.0.5": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.5-1/rubyinstaller-3.0.5-1-x64.7z",
|
||||
"3.0.6": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.6-1/rubyinstaller-3.0.6-1-x64.7z",
|
||||
"3.0.7": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.7-1/rubyinstaller-3.0.7-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",
|
||||
"3.1.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.3-1/rubyinstaller-3.1.3-1-x64.7z",
|
||||
"3.1.4": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.4-1/rubyinstaller-3.1.4-1-x64.7z",
|
||||
"3.1.5": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.5-1/rubyinstaller-3.1.5-1-x64.7z",
|
||||
"3.2.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.0-1/rubyinstaller-3.2.0-1-x64.7z",
|
||||
"3.2.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.1-1/rubyinstaller-3.2.1-1-x64.7z",
|
||||
"3.2.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.2-1/rubyinstaller-3.2.2-1-x64.7z",
|
||||
"3.2.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.3-1/rubyinstaller-3.2.3-1-x64.7z",
|
||||
"3.2.4": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.4-1/rubyinstaller-3.2.4-1-x64.7z",
|
||||
"3.3.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.0-1/rubyinstaller-3.3.0-1-x64.7z",
|
||||
"3.3.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.1-1/rubyinstaller-3.3.1-1-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",
|
||||
"mswin": "https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mswin.7z",
|
||||
|
||||
+19
-37
@@ -20,20 +20,20 @@ const msys2GCCReleaseURI = 'https://github.com/ruby/setup-msys2-gcc/releases/do
|
||||
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'
|
||||
// needed for Ruby 2.0-2.3, cert file used by Git for Windows
|
||||
let certFile = 'C:\\Program Files\\Git\\mingw64\\etc\\ssl\\cert.pem'
|
||||
if (!fs.existsSync(certFile)) {
|
||||
certFile = 'C:\\Program Files\\Git\\mingw64\\ssl\\cert.pem'
|
||||
if (!fs.existsSync(certFile)) {
|
||||
throw new Error("Cannot find Git's cert file")
|
||||
}
|
||||
}
|
||||
|
||||
// location & path for old RubyInstaller DevKit (MSYS1), used with Ruby 2.0-2.3
|
||||
const msys1 = `${drive}:\\DevKit64`
|
||||
const msysPathEntries = [`${msys1}\\mingw\\x86_64-w64-mingw32\\bin`, `${msys1}\\mingw\\bin`, `${msys1}\\bin`]
|
||||
|
||||
const virtualEnv = common.getVirtualEnvironmentName()
|
||||
|
||||
export function getAvailableVersions(platform, engine) {
|
||||
if (!common.supportedPlatforms.includes(platform)) {
|
||||
throw new Error(`Unsupported platform ${platform}`)
|
||||
}
|
||||
|
||||
if (engine === 'ruby') {
|
||||
return Object.keys(rubyInstallerVersions)
|
||||
} else {
|
||||
@@ -46,7 +46,7 @@ export async function install(platform, engine, 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)
|
||||
const hasMSYS2PreInstalled = ['windows-2019', 'windows-2016'].includes(platform)
|
||||
|
||||
if (!url.endsWith('.7z')) {
|
||||
throw new Error(`URL should end in .7z: ${url}`)
|
||||
@@ -55,22 +55,27 @@ export async function install(platform, engine, version) {
|
||||
|
||||
let rubyPrefix, inToolCache
|
||||
if (common.shouldUseToolCache(engine, version)) {
|
||||
inToolCache = tc.find('Ruby', version)
|
||||
inToolCache = common.toolCacheFind(engine, version)
|
||||
if (inToolCache) {
|
||||
rubyPrefix = inToolCache
|
||||
} else {
|
||||
rubyPrefix = common.getToolCacheRubyPrefix(platform, version)
|
||||
rubyPrefix = common.getToolCacheRubyPrefix(platform, engine, version)
|
||||
}
|
||||
} else {
|
||||
rubyPrefix = `${drive}:\\${base}`
|
||||
}
|
||||
|
||||
let toolchainPaths = (version === 'mswin') ? await setupMSWin() : await setupMingw(version)
|
||||
|
||||
if (!inToolCache) {
|
||||
await downloadAndExtract(engine, version, url, base, rubyPrefix);
|
||||
}
|
||||
|
||||
const windowsToolchain = core.getInput('windows-toolchain')
|
||||
if (windowsToolchain === 'none') {
|
||||
common.setupPath([`${rubyPrefix}\\bin`])
|
||||
return rubyPrefix
|
||||
}
|
||||
|
||||
let toolchainPaths = (version === 'mswin') ? await setupMSWin() : await setupMingw(version)
|
||||
const msys2Type = common.setupPath([`${rubyPrefix}\\bin`, ...toolchainPaths])
|
||||
|
||||
// install msys2 tools for all Ruby versions, only install mingw or ucrt for Rubies >= 2.4
|
||||
@@ -103,7 +108,7 @@ async function installGCCTools(type, version) {
|
||||
// 2022-Dec ruby/msys2-gcc-pkgs now uses a suffix to delineate different archive versions.
|
||||
// At present, the only use is to indicate the included OpenSSL version.
|
||||
// With no suffix, archives include OpenSSL 1.1.1, with a '-3.0' suffix, they include
|
||||
// OpenSSL 3.0.x. Note that the mswin archive uses OpenSSL 3.
|
||||
// OpenSSL 3.0.x. Note that the mswin archive uses OpenSSL 3.
|
||||
// As of Jan-2023, OpenSSL 3 is used in Ruby 3.2 & all head versions. MSYS2 updated
|
||||
// to OpenSSL 3 on 14-Jan-2023.
|
||||
let suffix = ''
|
||||
@@ -212,29 +217,6 @@ async function installMSYS1(version) {
|
||||
|
||||
async function setupMSWin() {
|
||||
core.exportVariable('MAKE', 'nmake.exe')
|
||||
|
||||
// Pre-installed OpenSSL use C:\Program Files\Common Files\SSL
|
||||
let certsDir = 'C:\\Program Files\\Common Files\\SSL\\certs'
|
||||
if (!fs.existsSync(certsDir)) {
|
||||
fs.mkdirSync(certsDir, { recursive: true })
|
||||
}
|
||||
|
||||
// cert.pem location is hard-coded by OpenSSL msvc builds
|
||||
let cert = 'C:\\Program Files\\Common Files\\SSL\\cert.pem'
|
||||
if (!fs.existsSync(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())
|
||||
}
|
||||
|
||||
|
||||
@@ -3,25 +3,25 @@
|
||||
|
||||
|
||||
"@actions/cache@^3":
|
||||
version "3.0.6"
|
||||
resolved "https://registry.yarnpkg.com/@actions/cache/-/cache-3.0.6.tgz#b76c51a78c927fcf0eb631b96a07e34f575c422b"
|
||||
integrity sha512-Tttit+nqmxgb2M5Ufj5p8Lwd+fx329HOTLzxMrY4aaaZqBzqetgWlEfszMyiXfX4cJML+bzLJbyD9rNYt8TJ8g==
|
||||
version "3.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@actions/cache/-/cache-3.2.2.tgz#e7bbb5f9b67c613f96f98f91506c69424c9aa288"
|
||||
integrity sha512-6D0Jq5JrLZRQ3VApeQwQkkV20ZZXjXsHNYXd9VjNUdi9E0h93wESpxfMJ2JWLCUCgHNLcfY0v3GjNM+2FdRMlg==
|
||||
dependencies:
|
||||
"@actions/core" "^1.10.0"
|
||||
"@actions/exec" "^1.0.1"
|
||||
"@actions/glob" "^0.1.0"
|
||||
"@actions/http-client" "^2.0.1"
|
||||
"@actions/http-client" "^2.1.1"
|
||||
"@actions/io" "^1.0.1"
|
||||
"@azure/abort-controller" "^1.1.0"
|
||||
"@azure/ms-rest-js" "^2.6.0"
|
||||
"@azure/storage-blob" "^12.8.0"
|
||||
"@azure/storage-blob" "^12.13.0"
|
||||
semver "^6.1.0"
|
||||
uuid "^3.3.3"
|
||||
|
||||
"@actions/core@^1.10.0", "@actions/core@^1.2.6":
|
||||
version "1.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.10.0.tgz#44551c3c71163949a2f06e94d9ca2157a0cfac4f"
|
||||
integrity sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==
|
||||
version "1.10.1"
|
||||
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.10.1.tgz#61108e7ac40acae95ee36da074fa5850ca4ced8a"
|
||||
integrity sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==
|
||||
dependencies:
|
||||
"@actions/http-client" "^2.0.1"
|
||||
uuid "^8.3.2"
|
||||
@@ -41,17 +41,17 @@
|
||||
"@actions/core" "^1.2.6"
|
||||
minimatch "^3.0.4"
|
||||
|
||||
"@actions/http-client@^2.0.1":
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.0.1.tgz#873f4ca98fe32f6839462a6f046332677322f99c"
|
||||
integrity sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==
|
||||
"@actions/http-client@^2.0.1", "@actions/http-client@^2.1.1":
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.1.1.tgz#a8e97699c315bed0ecaeaaeb640948470d4586a0"
|
||||
integrity sha512-qhrkRMB40bbbLo7gF+0vu+X+UawOvQQqNAA/5Unx774RS8poaOhThDOG6BGmxvAnxhQnDp2BG/ZUm65xZILTpw==
|
||||
dependencies:
|
||||
tunnel "^0.0.6"
|
||||
|
||||
"@actions/io@^1.0.1", "@actions/io@^1.1.1", "@actions/io@^1.1.2":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.2.tgz#766ac09674a289ce0f1550ffe0a6eac9261a8ea9"
|
||||
integrity sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw==
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.3.tgz#4cdb6254da7962b07473ff5c335f3da485d94d71"
|
||||
integrity sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==
|
||||
|
||||
"@actions/tool-cache@^2":
|
||||
version "2.0.1"
|
||||
@@ -73,17 +73,18 @@
|
||||
tslib "^2.2.0"
|
||||
|
||||
"@azure/core-auth@^1.1.4", "@azure/core-auth@^1.3.0":
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.4.0.tgz#6fa9661c1705857820dbc216df5ba5665ac36a9e"
|
||||
integrity sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ==
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.5.0.tgz#a41848c5c31cb3b7c84c409885267d55a2c92e44"
|
||||
integrity sha512-udzoBuYG1VBoHVohDTrvKjyzel34zt77Bhp7dQntVGGD0ehVq48owENbBG8fIgkHRNUBQH5k1r0hpoMu5L8+kw==
|
||||
dependencies:
|
||||
"@azure/abort-controller" "^1.0.0"
|
||||
"@azure/core-util" "^1.1.0"
|
||||
tslib "^2.2.0"
|
||||
|
||||
"@azure/core-http@^2.0.0":
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@azure/core-http/-/core-http-2.3.1.tgz#eed8a7d012ba8c576c557828f66af0fc4e52b23a"
|
||||
integrity sha512-cur03BUwV0Tbv81bQBOLafFB02B6G++K6F2O3IMl8pSE2QlXm3cu11bfyBNlDUKi5U+xnB3GC63ae3athhkx6Q==
|
||||
"@azure/core-http@^3.0.0":
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@azure/core-http/-/core-http-3.0.3.tgz#792c0af7d8ebec7d34a99bbd7108aa370cd49948"
|
||||
integrity sha512-QMib3wXotJMFhHgmJBPUF9YsyErw34H0XDFQd9CauH7TPB+RGcyl9Ayy7iURtJB04ngXhE6YwrQsWDXlSLrilg==
|
||||
dependencies:
|
||||
"@azure/abort-controller" "^1.0.0"
|
||||
"@azure/core-auth" "^1.3.0"
|
||||
@@ -95,25 +96,25 @@
|
||||
form-data "^4.0.0"
|
||||
node-fetch "^2.6.7"
|
||||
process "^0.11.10"
|
||||
tough-cookie "^4.0.0"
|
||||
tslib "^2.2.0"
|
||||
tunnel "^0.0.6"
|
||||
uuid "^8.3.0"
|
||||
xml2js "^0.4.19"
|
||||
xml2js "^0.5.0"
|
||||
|
||||
"@azure/core-lro@^2.2.0":
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@azure/core-lro/-/core-lro-2.4.0.tgz#e3fdff797b045ee753aab25c3d2ecc0aa3e0a539"
|
||||
integrity sha512-F65+rYkll1dpw3RGm8/SSiSj+/QkMeYDanzS/QKlM1dmuneVyXbO46C88V1MRHluLGdMP6qfD3vDRYALn0z0tQ==
|
||||
version "2.5.4"
|
||||
resolved "https://registry.yarnpkg.com/@azure/core-lro/-/core-lro-2.5.4.tgz#b21e2bcb8bd9a8a652ff85b61adeea51a8055f90"
|
||||
integrity sha512-3GJiMVH7/10bulzOKGrrLeG/uCBH/9VtxqaMcB9lIqAeamI/xYQSHJL/KcsLDuH+yTjYpro/u6D/MuRe4dN70Q==
|
||||
dependencies:
|
||||
"@azure/abort-controller" "^1.0.0"
|
||||
"@azure/core-util" "^1.2.0"
|
||||
"@azure/logger" "^1.0.0"
|
||||
tslib "^2.2.0"
|
||||
|
||||
"@azure/core-paging@^1.1.1":
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@azure/core-paging/-/core-paging-1.4.0.tgz#b04a73ad18149733a848c3089a5e5ed144592338"
|
||||
integrity sha512-tabFtZTg8D9XqZKEfNUOGh63SuYeOxmvH4GDcOJN+R1bZWZ1FZskctgY9Pmuwzhn+0Xvq9rmimK9hsvtLkeBsw==
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@azure/core-paging/-/core-paging-1.5.0.tgz#5a5b09353e636072e6a7fc38f7879e11d0afb15f"
|
||||
integrity sha512-zqWdVIt+2Z+3wqxEOGzR5hXFZ8MGKK52x4vFLw8n58pR6ZfKRx3EXYTxTaYxYHc/PexPUTyimcTWFJbji9Z6Iw==
|
||||
dependencies:
|
||||
tslib "^2.2.0"
|
||||
|
||||
@@ -125,43 +126,42 @@
|
||||
"@opentelemetry/api" "^1.0.1"
|
||||
tslib "^2.2.0"
|
||||
|
||||
"@azure/core-util@^1.1.1":
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.1.1.tgz#8f87b3dd468795df0f0849d9f096c3e7b29452c1"
|
||||
integrity sha512-A4TBYVQCtHOigFb2ETiiKFDocBoI1Zk2Ui1KpI42aJSIDexF7DHQFpnjonltXAIU/ceH+1fsZAWWgvX6/AKzog==
|
||||
"@azure/core-util@^1.1.0", "@azure/core-util@^1.1.1", "@azure/core-util@^1.2.0":
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.4.0.tgz#c120a56b3e48a9e4d20619a0b00268ae9de891c7"
|
||||
integrity sha512-eGAyJpm3skVQoLiRqm/xPa+SXi/NPDdSHMxbRAz2lSprd+Zs+qrpQGQQ2VQ3Nttu+nSZR4XoYQC71LbEI7jsig==
|
||||
dependencies:
|
||||
"@azure/abort-controller" "^1.0.0"
|
||||
tslib "^2.2.0"
|
||||
|
||||
"@azure/logger@^1.0.0":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.0.3.tgz#6e36704aa51be7d4a1bae24731ea580836293c96"
|
||||
integrity sha512-aK4s3Xxjrx3daZr3VylxejK3vG5ExXck5WOHDJ8in/k9AqlfIyFMMT1uG7u8mNjX+QRILTIn0/Xgschfh/dQ9g==
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.0.4.tgz#28bc6d0e5b3c38ef29296b32d35da4e483593fa1"
|
||||
integrity sha512-ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==
|
||||
dependencies:
|
||||
tslib "^2.2.0"
|
||||
|
||||
"@azure/ms-rest-js@^2.6.0":
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-2.6.2.tgz#185a9d643ea55c696134af76a5c6026c94e26217"
|
||||
integrity sha512-0/8rOxAoR9M3qKUdbGOIYtHtQkm4m5jdoDNdxTU0DkOr84KwyAdJuW/RfjJinGyig4h73DNF0rdCl6XowgCYcg==
|
||||
version "2.7.0"
|
||||
resolved "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-2.7.0.tgz#8639065577ffdf4946951e1d246334ebfd72d537"
|
||||
integrity sha512-ngbzWbqF+NmztDOpLBVDxYM+XLcUj7nKhxGbSU9WtIsXfRB//cf2ZbAG5HkOrhU9/wd/ORRB6lM/d69RKVjiyA==
|
||||
dependencies:
|
||||
"@azure/core-auth" "^1.1.4"
|
||||
abort-controller "^3.0.0"
|
||||
form-data "^2.5.0"
|
||||
node-fetch "^2.6.7"
|
||||
tough-cookie "^3.0.1"
|
||||
tslib "^1.10.0"
|
||||
tunnel "0.0.6"
|
||||
uuid "^8.3.2"
|
||||
xml2js "^0.4.19"
|
||||
xml2js "^0.5.0"
|
||||
|
||||
"@azure/storage-blob@^12.8.0":
|
||||
version "12.12.0"
|
||||
resolved "https://registry.yarnpkg.com/@azure/storage-blob/-/storage-blob-12.12.0.tgz#25e277c885692d5adcd8c2a949789b2837a74c59"
|
||||
integrity sha512-o/Mf6lkyYG/eBW4/hXB9864RxVNmAkcKHjsGR6Inlp5hupa3exjSyH2KjO3tLO//YGA+tS+17hM2bxRl9Sn16g==
|
||||
"@azure/storage-blob@^12.13.0":
|
||||
version "12.16.0"
|
||||
resolved "https://registry.yarnpkg.com/@azure/storage-blob/-/storage-blob-12.16.0.tgz#c41fb1e538d6f6e2a6756bfcc69382eededf4fa1"
|
||||
integrity sha512-jz33rUSUGUB65FgYrTRgRDjG6hdPHwfvHe+g/UrwVG8MsyLqSxg9TaW7Yuhjxu1v1OZ5xam2NU6+IpCN0xJO8Q==
|
||||
dependencies:
|
||||
"@azure/abort-controller" "^1.0.0"
|
||||
"@azure/core-http" "^2.0.0"
|
||||
"@azure/core-http" "^3.0.0"
|
||||
"@azure/core-lro" "^2.2.0"
|
||||
"@azure/core-paging" "^1.1.1"
|
||||
"@azure/core-tracing" "1.0.0-preview.13"
|
||||
@@ -170,22 +170,22 @@
|
||||
tslib "^2.2.0"
|
||||
|
||||
"@opentelemetry/api@^1.0.1":
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.3.0.tgz#27c6f776ac3c1c616651e506a89f438a0ed6a055"
|
||||
integrity sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.6.0.tgz#de2c6823203d6f319511898bb5de7e70f5267e19"
|
||||
integrity sha512-OWlrQAnWn9577PhVgqjUvMr1pg57Bc4jv0iL4w0PRuOSRvq67rvHW9Ie/dZVMvCzhSCB+UxhcY/PmCmFj33Q+g==
|
||||
|
||||
"@types/node-fetch@^2.5.0":
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da"
|
||||
integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==
|
||||
version "2.6.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.5.tgz#972756a9a0fe354b2886bf3defe667ddb4f0d30a"
|
||||
integrity sha512-OZsUlr2nxvkqUFLSaY2ZbA+P1q22q+KrlxWOn/38RX+u5kTkYL2mTujEpzUhGkS+K/QCYp9oagfXG39XOzyySg==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
form-data "^3.0.0"
|
||||
form-data "^4.0.0"
|
||||
|
||||
"@types/node@*":
|
||||
version "18.11.9"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4"
|
||||
integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==
|
||||
version "20.6.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.6.2.tgz#a065925409f59657022e9063275cd0b9bd7e1b12"
|
||||
integrity sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==
|
||||
|
||||
"@types/tunnel@^0.0.3":
|
||||
version "0.0.3"
|
||||
@@ -260,15 +260,6 @@ form-data@^2.5.0:
|
||||
combined-stream "^1.0.6"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
form-data@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
|
||||
integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
|
||||
dependencies:
|
||||
asynckit "^0.4.0"
|
||||
combined-stream "^1.0.8"
|
||||
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"
|
||||
@@ -278,10 +269,10 @@ form-data@^4.0.0:
|
||||
combined-stream "^1.0.8"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
ip-regex@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
|
||||
integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==
|
||||
linux-os-info@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/linux-os-info/-/linux-os-info-2.0.0.tgz#32a251077c13af1a69dbcb36a168901208e32776"
|
||||
integrity sha512-ZopyH4kT2Ehnmix8iUgS/41pfv7fSlUV1JukIn3DB3qD3byvhBNtgCbUApoAtiqcHRLKXCY3zakXlJgiExm2Qg==
|
||||
|
||||
lru-cache@^6.0.0:
|
||||
version "6.0.0"
|
||||
@@ -290,6 +281,11 @@ lru-cache@^6.0.0:
|
||||
dependencies:
|
||||
yallist "^4.0.0"
|
||||
|
||||
macos-release@^3.1.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.2.0.tgz#dcee82b6a4932971b1538dbf6f3aabc4a903b613"
|
||||
integrity sha512-fSErXALFNsnowREYZ49XCdOHF8wOPWuFOGQrAhP7x5J/BqQv+B02cNsTykGpDgRVx43EKg++6ANmTaGTtW+hUA==
|
||||
|
||||
mime-db@1.52.0:
|
||||
version "1.52.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
|
||||
@@ -310,9 +306,9 @@ minimatch@^3.0.4:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
node-fetch@^2.6.7:
|
||||
version "2.6.7"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
|
||||
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
|
||||
version "2.7.0"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
|
||||
integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
|
||||
dependencies:
|
||||
whatwg-url "^5.0.0"
|
||||
|
||||
@@ -321,62 +317,23 @@ process@^0.11.10:
|
||||
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
|
||||
integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
|
||||
|
||||
psl@^1.1.28, psl@^1.1.33:
|
||||
version "1.9.0"
|
||||
resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
|
||||
integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
|
||||
|
||||
punycode@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
||||
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
|
||||
|
||||
querystringify@^2.1.1:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
|
||||
integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
|
||||
|
||||
requires-port@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
|
||||
integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
|
||||
|
||||
sax@>=0.6.0:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
|
||||
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
|
||||
|
||||
semver@^6.1.0:
|
||||
version "6.3.0"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
||||
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
||||
version "6.3.1"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
|
||||
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
|
||||
|
||||
semver@^7.3.7:
|
||||
version "7.3.8"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
|
||||
integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
|
||||
version "7.5.4"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
|
||||
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
|
||||
dependencies:
|
||||
lru-cache "^6.0.0"
|
||||
|
||||
tough-cookie@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2"
|
||||
integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==
|
||||
dependencies:
|
||||
ip-regex "^2.1.0"
|
||||
psl "^1.1.28"
|
||||
punycode "^2.1.1"
|
||||
|
||||
tough-cookie@^4.0.0:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874"
|
||||
integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==
|
||||
dependencies:
|
||||
psl "^1.1.33"
|
||||
punycode "^2.1.1"
|
||||
universalify "^0.2.0"
|
||||
url-parse "^1.5.3"
|
||||
|
||||
tr46@~0.0.3:
|
||||
version "0.0.3"
|
||||
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
|
||||
@@ -388,28 +345,15 @@ tslib@^1.10.0:
|
||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||
|
||||
tslib@^2.2.0:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
|
||||
integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
|
||||
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
|
||||
|
||||
tunnel@0.0.6, tunnel@^0.0.6:
|
||||
version "0.0.6"
|
||||
resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c"
|
||||
integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==
|
||||
|
||||
universalify@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0"
|
||||
integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==
|
||||
|
||||
url-parse@^1.5.3:
|
||||
version "1.5.10"
|
||||
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
|
||||
integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
|
||||
dependencies:
|
||||
querystringify "^2.1.1"
|
||||
requires-port "^1.0.0"
|
||||
|
||||
uuid@^3.3.2, uuid@^3.3.3:
|
||||
version "3.4.0"
|
||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
|
||||
@@ -433,10 +377,10 @@ whatwg-url@^5.0.0:
|
||||
tr46 "~0.0.3"
|
||||
webidl-conversions "^3.0.0"
|
||||
|
||||
xml2js@^0.4.19:
|
||||
version "0.4.23"
|
||||
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66"
|
||||
integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==
|
||||
xml2js@^0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.5.0.tgz#d9440631fbb2ed800203fad106f2724f62c493b7"
|
||||
integrity sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==
|
||||
dependencies:
|
||||
sax ">=0.6.0"
|
||||
xmlbuilder "~11.0.0"
|
||||
|
||||
Reference in New Issue
Block a user