mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 14:34:21 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7bae1d00b5 | ||
|
|
4d521eadc8 | ||
|
|
1d9686e3ef | ||
|
|
bea2fb915c | ||
|
|
f269373437 | ||
|
|
784fcda67f | ||
|
|
f6e05710ec | ||
|
|
207a39969b | ||
|
|
086ffb1a20 | ||
|
|
27ceac8081 | ||
|
|
aac0c64812 | ||
|
|
727fd4feab | ||
|
|
79c01b8847 | ||
|
|
c04af2bb72 | ||
|
|
17f5c914a0 | ||
|
|
5496baa6db | ||
|
|
0ec4904dc7 | ||
|
|
f321cf5a4d | ||
|
|
6af8267b44 | ||
|
|
a6b46b8a08 | ||
|
|
52753b7da8 | ||
|
|
a6e6f86333 | ||
|
|
bc2ba926aa | ||
|
|
371544706a | ||
|
|
50ba3386b0 | ||
|
|
161cd54b69 | ||
|
|
2a9a743e19 | ||
|
|
3a77c29278 | ||
|
|
382d786c8a | ||
|
|
97e35c5302 | ||
|
|
1d0e911f61 | ||
|
|
c48bc1e88d | ||
|
|
713e0f1ab5 | ||
|
|
af43264f2b | ||
|
|
3251c5c21b | ||
|
|
21a479f2d7 | ||
|
|
3783f195e2 | ||
|
|
ff740bc00a | ||
|
|
78c01b705f | ||
|
|
d5fb7a202f | ||
|
|
0cde4689ba | ||
|
|
a56d16ef33 | ||
|
|
12dfa2bb47 | ||
|
|
68b705993a | ||
|
|
d046db60e3 | ||
|
|
d4138ebc47 | ||
|
|
049eae0450 | ||
|
|
ff22bbb25f | ||
|
|
943103cae7 | ||
|
|
7dc18ff0ca | ||
|
|
00a1085dff | ||
|
|
868b8c0873 | ||
|
|
4f20bb7102 | ||
|
|
6615b4b8a0 | ||
|
|
82dd21cb95 | ||
|
|
cacc9f1c0b | ||
|
|
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 |
@@ -31,21 +31,9 @@ body:
|
|||||||
- self-hosted runner
|
- self-hosted runner
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
|
||||||
attributes:
|
|
||||||
render: yaml
|
|
||||||
label: The workflow code or a link to the workflow file
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: input
|
- type: input
|
||||||
attributes:
|
attributes:
|
||||||
label: Link to the log of a failed workflow job, or to a gist with the output
|
label: Link to the failed workflow job (must be a public workflow job, so the necessary information is available)
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
|
||||||
attributes:
|
|
||||||
render: shell
|
|
||||||
label: The command and output of the failing step
|
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: 'github-actions'
|
||||||
|
directory: '/'
|
||||||
|
schedule:
|
||||||
|
interval: 'weekly'
|
||||||
@@ -1,17 +1,24 @@
|
|||||||
name: Update the v1 branch when a release is published
|
name: Create a Release
|
||||||
on:
|
on:
|
||||||
release:
|
workflow_dispatch:
|
||||||
types: [published]
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: write # for creating release
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
env:
|
||||||
contents: write # for git push
|
GH_TOKEN: ${{ github.token }}
|
||||||
|
GH_REPO: ${{ github.repository }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
- uses: ./
|
||||||
|
with:
|
||||||
|
ruby-version: '3.3'
|
||||||
|
- run: ruby release.rb
|
||||||
|
# The same as the update-v1-branch.yml workflow.
|
||||||
|
# That workflow is not triggered by the release created above because of
|
||||||
|
# https://docs.github.com/en/actions/security-guides/automatic-token-authentication#using-the-github_token-in-a-workflow
|
||||||
- run: git push origin HEAD:v1
|
- run: git push origin HEAD:v1
|
||||||
|
|||||||
+74
-27
@@ -17,9 +17,9 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ ubuntu-20.04, ubuntu-22.04, macos-11, macos-12, windows-2019, windows-2022 ]
|
os: [ ubuntu-20.04, ubuntu-22.04, ubuntu-24.04, macos-12, macos-13, macos-14, macos-15, windows-2019, windows-2022 ]
|
||||||
ruby: [
|
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', '3.4', ruby-head,
|
||||||
jruby, jruby-head,
|
jruby, jruby-head,
|
||||||
truffleruby, truffleruby-head,
|
truffleruby, truffleruby-head,
|
||||||
truffleruby+graalvm, truffleruby+graalvm-head
|
truffleruby+graalvm, truffleruby+graalvm-head
|
||||||
@@ -30,24 +30,47 @@ jobs:
|
|||||||
- { os: windows-2022, ruby: mingw }
|
- { os: windows-2022, ruby: mingw }
|
||||||
- { os: windows-2022, ruby: mswin }
|
- { os: windows-2022, ruby: mswin }
|
||||||
- { os: windows-2022, ruby: ucrt }
|
- { os: windows-2022, ruby: ucrt }
|
||||||
|
- { os: ubuntu-24.04, ruby: asan }
|
||||||
exclude:
|
exclude:
|
||||||
|
# https://github.com/ruby/setup-ruby/issues/496
|
||||||
|
- { os: ubuntu-22.04, ruby: '2.2' }
|
||||||
|
- { os: ubuntu-24.04, ruby: '1.9' }
|
||||||
|
- { os: ubuntu-24.04, ruby: '2.2' }
|
||||||
|
# These old Rubies fail to compile on macOS arm64
|
||||||
|
- { 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-15, ruby: '1.9' }
|
||||||
|
- { os: macos-15, ruby: '2.0' }
|
||||||
|
- { os: macos-15, ruby: '2.1' }
|
||||||
|
- { os: macos-15, ruby: '2.2' }
|
||||||
|
- { os: macos-15, ruby: '2.3' }
|
||||||
|
- { os: macos-15, ruby: '2.4' }
|
||||||
|
- { os: macos-15, ruby: '2.5' }
|
||||||
|
# Windows (note: previews are not available on Windows)
|
||||||
- { os: windows-2019, ruby: '1.9' }
|
- { os: windows-2019, ruby: '1.9' }
|
||||||
- { os: windows-2019, ruby: debug }
|
|
||||||
- { os: windows-2019, ruby: truffleruby }
|
|
||||||
- { os: windows-2019, ruby: truffleruby-head }
|
|
||||||
- { os: windows-2019, ruby: truffleruby+graalvm }
|
|
||||||
- { os: windows-2019, ruby: truffleruby+graalvm-head }
|
|
||||||
- { os: windows-2022, ruby: '1.9' }
|
- { os: windows-2022, ruby: '1.9' }
|
||||||
|
- { os: windows-2019, ruby: '3.4' } # 3.4.0-preview2
|
||||||
|
- { os: windows-2022, ruby: '3.4' } # 3.4.0-preview2
|
||||||
|
- { os: windows-2019, ruby: debug }
|
||||||
- { os: windows-2022, ruby: debug }
|
- { os: windows-2022, ruby: debug }
|
||||||
|
- { os: windows-2019, ruby: truffleruby }
|
||||||
- { os: windows-2022, ruby: truffleruby }
|
- { os: windows-2022, ruby: truffleruby }
|
||||||
|
- { os: windows-2019, ruby: truffleruby-head }
|
||||||
- { os: windows-2022, ruby: truffleruby-head }
|
- { os: windows-2022, ruby: truffleruby-head }
|
||||||
|
- { os: windows-2019, ruby: truffleruby+graalvm }
|
||||||
- { os: windows-2022, ruby: truffleruby+graalvm }
|
- { os: windows-2022, ruby: truffleruby+graalvm }
|
||||||
|
- { os: windows-2019, ruby: truffleruby+graalvm-head }
|
||||||
- { os: windows-2022, ruby: truffleruby+graalvm-head }
|
- { 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@v3
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -148,7 +171,7 @@ jobs:
|
|||||||
name: "Test with no Gemfile"
|
name: "Test with no Gemfile"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- run: rm Gemfile
|
- run: rm Gemfile
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -156,21 +179,32 @@ jobs:
|
|||||||
- run: ruby -v
|
- run: ruby -v
|
||||||
|
|
||||||
testLatestRubygemsVersion:
|
testLatestRubygemsVersion:
|
||||||
name: "Test rubygems: latest upgrades the default RubyGems version"
|
name: "Test rubygems: latest on ${{ matrix.ruby }}"
|
||||||
runs-on: ubuntu-latest
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: '2.6'
|
ruby-version: ${{ matrix.ruby }}
|
||||||
rubygems: latest
|
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:
|
testFixedRubygemsVersionUpgrades:
|
||||||
name: "Test rubygems: version upgrades RubyGems to that version if the default is older"
|
name: "Test rubygems: version upgrades RubyGems to that version if the default is older"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: '2.6'
|
ruby-version: '2.6'
|
||||||
@@ -181,7 +215,7 @@ jobs:
|
|||||||
name: "Test rubygems: version noops if the default is newer"
|
name: "Test rubygems: version noops if the default is newer"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: '3.1.0'
|
ruby-version: '3.1.0'
|
||||||
@@ -192,7 +226,7 @@ jobs:
|
|||||||
name: "Test rubygems: version uses the Bundler installed by the rubygems update"
|
name: "Test rubygems: version uses the Bundler installed by the rubygems update"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: '3.1.0'
|
ruby-version: '3.1.0'
|
||||||
@@ -202,9 +236,9 @@ jobs:
|
|||||||
|
|
||||||
testFixedBundlerVersionForOldRuby:
|
testFixedBundlerVersionForOldRuby:
|
||||||
name: "Test bundler: 1.x for old Ruby"
|
name: "Test bundler: 1.x for old Ruby"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-20.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: '2.2'
|
ruby-version: '2.2'
|
||||||
@@ -215,7 +249,7 @@ jobs:
|
|||||||
name: "Test with a major Bundler version"
|
name: "Test with a major Bundler version"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: '2.6'
|
ruby-version: '2.6'
|
||||||
@@ -226,7 +260,7 @@ jobs:
|
|||||||
name: "Test with a minor Bundler version"
|
name: "Test with a minor Bundler version"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: '2.6'
|
ruby-version: '2.6'
|
||||||
@@ -237,7 +271,7 @@ jobs:
|
|||||||
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@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: '2.6'
|
ruby-version: '2.6'
|
||||||
@@ -248,7 +282,7 @@ jobs:
|
|||||||
name: "Test with a Bundler pre/rc version"
|
name: "Test with a Bundler pre/rc version"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: '2.6'
|
ruby-version: '2.6'
|
||||||
@@ -261,7 +295,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/bundler-dev.gemfile
|
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/bundler-dev.gemfile
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: ruby-head
|
ruby-version: ruby-head
|
||||||
@@ -273,7 +307,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/bundler1.gemfile
|
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/bundler1.gemfile
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: '2.7'
|
ruby-version: '2.7'
|
||||||
@@ -291,7 +325,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
|
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: '2.6'
|
ruby-version: '2.6'
|
||||||
@@ -304,17 +338,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/nokogiri.gemfile
|
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/nokogiri.gemfile
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
ruby-version: truffleruby-head
|
ruby-version: truffleruby-head
|
||||||
bundler-cache: true
|
bundler-cache: true
|
||||||
- run: bundle list | grep nokogiri
|
- 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:
|
lint:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- 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
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
name: Update the v1 branch when a release is published manually
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types: [published]
|
||||||
|
permissions:
|
||||||
|
contents: write # for git push
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update_branch:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- run: git push origin HEAD:v1
|
||||||
@@ -1 +0,0 @@
|
|||||||
ruby-2.6.5
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
nodejs 16.0.0
|
|
||||||
ruby 2.7.0
|
|
||||||
@@ -24,3 +24,7 @@ $ cp pre-commit .git/hooks/pre-commit
|
|||||||
|
|
||||||
This is entirely automated now since [this issue](https://github.com/ruby/setup-ruby/issues/254).
|
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.
|
If you do not see a new version more than 24 hours after it was released feel free to file an issue.
|
||||||
|
|
||||||
|
## Release
|
||||||
|
|
||||||
|
Maintainers can create a release automatically by running [this workflow](https://github.com/ruby/setup-ruby/actions/workflows/release.yml).
|
||||||
|
|||||||
@@ -15,12 +15,16 @@ 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.2.1, head, debug, mingw, mswin, ucrt |
|
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.4.0-preview2, head, debug, mingw, mswin, ucrt |
|
||||||
| `jruby` | 9.1.17.0 - 9.4.1.0, head |
|
| `jruby` | 9.1.17.0 - 9.4.8.0, head |
|
||||||
| `truffleruby` | 19.3.0 - 22.3.1, head |
|
| `truffleruby` | 19.3.0 - 24.1.1, head |
|
||||||
| `truffleruby+graalvm` | 21.2.0 - 22.3.1, head |
|
| `truffleruby+graalvm` | 21.2.0 - 24.1.1, head |
|
||||||
|
|
||||||
`ruby-debug` is the same as `ruby-head` but with assertions enabled (`-DRUBY_DEBUG=1`).
|
`ruby-debug` is the same as `ruby-head` but with assertions enabled (`-DRUBY_DEBUG=1`).
|
||||||
|
|
||||||
|
`ruby-asan` is the same as `ruby-head` but with AddressSanitizer (ASan) enabled, helpful for finding memory issues in native extensions.
|
||||||
|
Native extensions are automatically compiled with AddressSanitizer when using `ruby-asan`.
|
||||||
|
`ruby-asan` is currently only available on `ubuntu-24.04`.
|
||||||
|
|
||||||
Regarding Windows ruby master builds, `mingw` is a MSYS2/MinGW build, `head` & `ucrt` are MSYS2/UCRT64
|
Regarding Windows ruby master builds, `mingw` is a MSYS2/MinGW build, `head` & `ucrt` are MSYS2/UCRT64
|
||||||
builds, and `mswin` is a MSVC/VS 2022 build.
|
builds, and `mswin` is a MSVC/VS 2022 build.
|
||||||
@@ -38,12 +42,12 @@ which means Ruby ≤ 2.4 is unmaintained and considered insecure.
|
|||||||
|
|
||||||
### Supported Platforms
|
### 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 |
|
| Operating System | Supported |
|
||||||
| ---------------- | --------- |
|
| ---------------- | --------- |
|
||||||
| Ubuntu | `ubuntu-20.04`, `ubuntu-22.04` |
|
| Ubuntu | `ubuntu-20.04`, `ubuntu-22.04`, `ubuntu-24.04` |
|
||||||
| macOS | `macos-11`, `macos-12` |
|
| macOS | `macos-12`, `macos-13`, `macos-14` |
|
||||||
| Windows | `windows-2019`, `windows-2022` |
|
| Windows | `windows-2019`, `windows-2022` |
|
||||||
|
|
||||||
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)
|
||||||
@@ -51,10 +55,10 @@ and on Windows by [RubyInstaller2](https://github.com/oneclick/rubyinstaller2).
|
|||||||
The `mingw`, `ucrt` and `mswin` builds are generated by [ruby-loco](https://github.com/MSP-Greg/ruby-loco).
|
The `mingw`, `ucrt` and `mswin` builds are generated by [ruby-loco](https://github.com/MSP-Greg/ruby-loco).
|
||||||
`ruby-head` is generated by [ruby-dev-builder](https://github.com/ruby/ruby-dev-builder),
|
`ruby-head` is generated by [ruby-dev-builder](https://github.com/ruby/ruby-dev-builder),
|
||||||
`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` and `truffleruby+graalvm-head` are 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).
|
The full list of available Ruby versions can be seen in [ruby-builder-versions.json](ruby-builder-versions.json) for Ubuntu and macOS
|
||||||
The full list of available Ruby versions can be seen in [ruby-builder-versions.json](ruby-builder-versions.json)
|
(although some combinations are not available, see [the full list](https://github.com/ruby/ruby-builder/releases/tag/toolcache))
|
||||||
for Ubuntu and macOS and in [windows-versions.json](windows-versions.json) for Windows.
|
and in [windows-versions.json](windows-versions.json) for Windows.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
@@ -67,10 +71,10 @@ jobs:
|
|||||||
test:
|
test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ruby/setup-ruby@v1
|
- uses: ruby/setup-ruby@v1
|
||||||
with:
|
with:
|
||||||
ruby-version: '3.0' # Not needed with a .ruby-version file
|
ruby-version: '3.3' # Not needed with a `.ruby-version` or `.tool-versions`
|
||||||
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
|
||||||
```
|
```
|
||||||
@@ -89,10 +93,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.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 }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ruby/setup-ruby@v1
|
- uses: ruby/setup-ruby@v1
|
||||||
with:
|
with:
|
||||||
ruby-version: ${{ matrix.ruby }}
|
ruby-version: ${{ matrix.ruby }}
|
||||||
@@ -115,10 +119,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@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: ruby/setup-ruby@v1
|
- uses: ruby/setup-ruby@v1
|
||||||
with:
|
with:
|
||||||
ruby-version: '3.0'
|
ruby-version: '3.3'
|
||||||
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
|
||||||
```
|
```
|
||||||
@@ -233,6 +237,7 @@ It is recommended to first get your build working on Ubuntu and macOS before try
|
|||||||
* 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`.
|
||||||
* Use JRuby 9.2.20+ on Windows (older versions have [bugs](https://github.com/ruby/setup-ruby/issues/18#issuecomment-889072695)).
|
* 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)).
|
* 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)).
|
||||||
|
* When compiling extension code, note that the packages required to build Ruby are included when using Windows 2022, but that Windows 2019 does not include all of them, and may require installing package(s). This can be done with [setup-ruby-pkgs](https://github.com/ruby/setup-ruby-pkgs) or via MSYS2's pacman. These packages may be required when installing or updating Ruby std-lib extension gems.
|
||||||
|
|
||||||
## Versioning
|
## Versioning
|
||||||
|
|
||||||
@@ -263,6 +268,9 @@ In other cases, you will need to install Ruby in the runner tool cache as shown
|
|||||||
(run it so it will show you where to install Ruby).
|
(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.
|
You could of course also not use this action and e.g. use Ruby from a system package or use a Docker image instead.
|
||||||
|
|
||||||
|
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
|
## History
|
||||||
|
|
||||||
This action used to be at `eregon/use-ruby-action` and was moved to the `ruby` organization.
|
This action used to be at `eregon/use-ruby-action` and was moved to the `ruby` organization.
|
||||||
|
|||||||
+17
-2
@@ -12,7 +12,8 @@ inputs:
|
|||||||
description: |
|
description: |
|
||||||
The version of RubyGems to use. Either 'default' (the default), 'latest', or a version number (e.g., 3.3.5).
|
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 '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.
|
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: |
|
||||||
@@ -30,9 +31,23 @@ inputs:
|
|||||||
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.
|
||||||
|
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:
|
outputs:
|
||||||
ruby-prefix:
|
ruby-prefix:
|
||||||
description: 'The prefix of the installed ruby'
|
description: 'The prefix of the installed ruby'
|
||||||
runs:
|
runs:
|
||||||
using: 'node16'
|
using: 'node20'
|
||||||
main: 'dist/index.js'
|
main: 'dist/index.js'
|
||||||
|
|||||||
+5
-3
@@ -80,7 +80,7 @@ export async function installBundler(bundlerVersionInput, rubygemsInputSet, lock
|
|||||||
|
|
||||||
if (bundlerVersion === 'default') {
|
if (bundlerVersion === 'default') {
|
||||||
if (common.isBundler2dot2Default(engine, rubyVersion)) {
|
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
|
// 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`)
|
console.log(`Installing latest Bundler for ${engine}-${rubyVersion} on Windows because bin/bundle does not work in bash otherwise`)
|
||||||
bundlerVersion = 'latest'
|
bundlerVersion = 'latest'
|
||||||
@@ -191,7 +191,8 @@ export async function bundleInstall(gemfile, lockFile, platform, engine, rubyVer
|
|||||||
// restore cache & install
|
// restore cache & install
|
||||||
let cachedKey = null
|
let cachedKey = null
|
||||||
try {
|
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) {
|
} catch (error) {
|
||||||
if (error.name === cache.ValidationError.name) {
|
if (error.name === cache.ValidationError.name) {
|
||||||
throw error;
|
throw error;
|
||||||
@@ -235,7 +236,8 @@ async function computeBaseKey(platform, engine, version, lockFile, cacheVersion)
|
|||||||
const cwd = process.cwd()
|
const cwd = process.cwd()
|
||||||
const bundleWith = process.env['BUNDLE_WITH'] || ''
|
const bundleWith = process.env['BUNDLE_WITH'] || ''
|
||||||
const bundleWithout = process.env['BUNDLE_WITHOUT'] || ''
|
const bundleWithout = process.env['BUNDLE_WITHOUT'] || ''
|
||||||
let key = `setup-ruby-bundler-cache-v5-${common.getOSNameVersionArch()}-${engine}-${version}-wd-${cwd}-with-${bundleWith}-without-${bundleWithout}`
|
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) {
|
if (cacheVersion !== DEFAULT_CACHE_VERSION) {
|
||||||
key += `-v-${cacheVersion}`
|
key += `-v-${cacheVersion}`
|
||||||
|
|||||||
@@ -5,14 +5,18 @@ const util = require('util')
|
|||||||
const stream = require('stream')
|
const stream = require('stream')
|
||||||
const crypto = require('crypto')
|
const crypto = require('crypto')
|
||||||
const core = require('@actions/core')
|
const core = require('@actions/core')
|
||||||
|
const tc = require('@actions/tool-cache')
|
||||||
const { performance } = require('perf_hooks')
|
const { performance } = require('perf_hooks')
|
||||||
const linuxOSInfo = require('linux-os-info')
|
const linuxOSInfo = require('linux-os-info')
|
||||||
import macosRelease from 'macos-release'
|
|
||||||
|
|
||||||
export const windows = (os.platform() === 'win32')
|
export const windows = (os.platform() === 'win32')
|
||||||
// Extract to SSD on Windows, see https://github.com/ruby/setup-ruby/pull/14
|
// 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 drive = (windows ? (process.env['GITHUB_WORKSPACE'] || 'C')[0] : undefined)
|
||||||
|
|
||||||
|
export const inputs = {
|
||||||
|
selfHosted: undefined
|
||||||
|
}
|
||||||
|
|
||||||
export function partition(string, separator) {
|
export function partition(string, separator) {
|
||||||
const i = string.indexOf(separator)
|
const i = string.indexOf(separator)
|
||||||
if (i === -1) {
|
if (i === -1) {
|
||||||
@@ -62,11 +66,15 @@ export async function time(name, block) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function isHeadVersion(rubyVersion) {
|
export function isHeadVersion(rubyVersion) {
|
||||||
return ['head', 'debug', 'mingw', 'mswin', 'ucrt'].includes(rubyVersion)
|
return ['head', 'debug', 'mingw', 'mswin', 'ucrt', 'asan'].includes(rubyVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isStableVersion(rubyVersion) {
|
export function isStableVersion(engine, rubyVersion) {
|
||||||
return /^\d+(\.\d+)*$/.test(rubyVersion)
|
if (engine.startsWith('truffleruby')) {
|
||||||
|
return /^\d+(\.\d+)*(-preview\d+)?$/.test(rubyVersion)
|
||||||
|
} else {
|
||||||
|
return /^\d+(\.\d+)*$/.test(rubyVersion)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function hasBundlerDefaultGem(engine, rubyVersion) {
|
export function hasBundlerDefaultGem(engine, rubyVersion) {
|
||||||
@@ -153,54 +161,105 @@ export async function hashFile(file) {
|
|||||||
return hash.digest('hex')
|
return hash.digest('hex')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// macos is not listed explicitly, see below
|
||||||
const GitHubHostedPlatforms = [
|
const GitHubHostedPlatforms = [
|
||||||
'ubuntu-20.04-x64',
|
'ubuntu-20.04-x64',
|
||||||
'ubuntu-22.04-x64',
|
'ubuntu-22.04-x64',
|
||||||
'macos-11-x64',
|
'ubuntu-24.04-x64',
|
||||||
'macos-12-x64',
|
|
||||||
'windows-2019-x64',
|
'windows-2019-x64',
|
||||||
'windows-2022-x64',
|
'windows-2022-x64',
|
||||||
]
|
]
|
||||||
|
|
||||||
// Actually a self-hosted runner which does not correspond to a GitHub-hosted runner image
|
// Precisely: whether we have builds for that platform and there are GitHub-hosted runners to test it
|
||||||
export function isSelfHostedRunner() {
|
function isSupportedPlatform() {
|
||||||
return !GitHubHostedPlatforms.includes(getOSNameVersionArch())
|
const platform = getOSName()
|
||||||
|
switch (platform) {
|
||||||
|
case 'ubuntu':
|
||||||
|
return GitHubHostedPlatforms.includes(getOSNameVersionArch())
|
||||||
|
case 'macos':
|
||||||
|
// See https://github.com/ruby/ruby-builder/blob/master/README.md#naming
|
||||||
|
// 13 on arm64 because of old macos-arm-oss runners
|
||||||
|
return (os.arch() === 'x64' && parseInt(getOSVersion()) >= 12) ||
|
||||||
|
(os.arch() === 'arm64' && parseInt(getOSVersion()) >= 13)
|
||||||
|
case 'windows':
|
||||||
|
return GitHubHostedPlatforms.includes(getOSNameVersionArch())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let virtualEnvironmentName = undefined
|
// 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')
|
||||||
|
}
|
||||||
|
|
||||||
export function getVirtualEnvironmentName() {
|
return inputs.selfHosted === 'true' || !isSupportedPlatform()
|
||||||
if (virtualEnvironmentName !== undefined) {
|
}
|
||||||
return virtualEnvironmentName
|
|
||||||
|
export function selfHostedRunnerReason() {
|
||||||
|
if (inputs.selfHosted === 'true') {
|
||||||
|
return 'the self-hosted input was set'
|
||||||
|
} else if (!isSupportedPlatform()) {
|
||||||
|
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 osName = undefined
|
||||||
|
let osVersion = undefined
|
||||||
|
|
||||||
|
export function getOSName() {
|
||||||
|
if (osName !== undefined) {
|
||||||
|
return osName
|
||||||
}
|
}
|
||||||
|
|
||||||
const platform = os.platform()
|
const platform = os.platform()
|
||||||
let osName
|
|
||||||
let osVersion
|
|
||||||
if (platform === 'linux') {
|
if (platform === 'linux') {
|
||||||
const info = linuxOSInfo({mode: 'sync'})
|
const info = linuxOSInfo({mode: 'sync'})
|
||||||
osName = info.id
|
osName = info.id
|
||||||
osVersion = info.version_id
|
|
||||||
} else if (platform === 'darwin') {
|
} else if (platform === 'darwin') {
|
||||||
osName = 'macos'
|
osName = 'macos'
|
||||||
osVersion = macosRelease().version
|
|
||||||
} else if (platform === 'win32') {
|
} else if (platform === 'win32') {
|
||||||
osName = 'windows'
|
osName = 'windows'
|
||||||
|
} else {
|
||||||
|
throw new Error(`Unknown platform ${platform}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
return osName
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getOSVersion() {
|
||||||
|
if (osVersion !== undefined) {
|
||||||
|
return osVersion
|
||||||
|
}
|
||||||
|
|
||||||
|
const platform = os.platform()
|
||||||
|
if (platform === 'linux') {
|
||||||
|
const info = linuxOSInfo({mode: 'sync'})
|
||||||
|
osVersion = info.version_id
|
||||||
|
} else if (platform === 'darwin') {
|
||||||
|
// See https://github.com/sindresorhus/macos-release/blob/main/index.js
|
||||||
|
const darwinVersion = parseInt(os.release().match(/^\d+/)[0])
|
||||||
|
osVersion = `${darwinVersion - 9}`
|
||||||
|
} else if (platform === 'win32') {
|
||||||
osVersion = findWindowsVersion()
|
osVersion = findWindowsVersion()
|
||||||
} else {
|
} else {
|
||||||
throw new Error(`Unknown platform ${platform}`)
|
throw new Error(`Unknown platform ${platform}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
virtualEnvironmentName = `${osName}-${osVersion}`
|
return osVersion
|
||||||
return virtualEnvironmentName
|
}
|
||||||
|
|
||||||
|
export function getOSNameVersion() {
|
||||||
|
return `${getOSName()}-${getOSVersion()}`
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getOSNameVersionArch() {
|
export function getOSNameVersionArch() {
|
||||||
return `${getVirtualEnvironmentName()}-${os.arch()}`
|
return `${getOSName()}-${getOSVersion()}-${os.arch()}`
|
||||||
}
|
}
|
||||||
|
|
||||||
function findWindowsVersion() {
|
function findWindowsVersion() {
|
||||||
const version = os.version();
|
const version = os.version()
|
||||||
const match = version.match(/^Windows Server (\d+) Datacenter/)
|
const match = version.match(/^Windows Server (\d+) Datacenter/)
|
||||||
if (match) {
|
if (match) {
|
||||||
return match[1]
|
return match[1]
|
||||||
@@ -213,35 +272,60 @@ export function shouldUseToolCache(engine, version) {
|
|||||||
return (engine === 'ruby' && !isHeadVersion(version)) || isSelfHostedRunner()
|
return (engine === 'ruby' && !isHeadVersion(version)) || isSelfHostedRunner()
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPlatformToolCache(platform) {
|
export function getToolCachePath() {
|
||||||
if (isSelfHostedRunner()) {
|
if (isSelfHostedRunner()) {
|
||||||
const runnerToolCache = process.env['RUNNER_TOOL_CACHE']
|
return getRunnerToolCache()
|
||||||
if (!runnerToolCache) {
|
|
||||||
throw new Error('$RUNNER_TOOL_CACHE must be set on self-hosted runners')
|
|
||||||
}
|
|
||||||
return runnerToolCache
|
|
||||||
}
|
|
||||||
// Hardcode paths rather than using $RUNNER_TOOL_CACHE because the prebuilt Rubies cannot be moved anyway
|
|
||||||
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'
|
|
||||||
} else {
|
} else {
|
||||||
throw new Error('Unknown platform')
|
// 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 getToolCacheRubyPrefix(platform, engine, version) {
|
export function getRunnerToolCache() {
|
||||||
const toolCache = getPlatformToolCache(platform)
|
const runnerToolCache = process.env['RUNNER_TOOL_CACHE']
|
||||||
const name = {
|
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 = getOSName()
|
||||||
|
switch (platform) {
|
||||||
|
case 'ubuntu':
|
||||||
|
return '/opt/hostedtoolcache'
|
||||||
|
case 'macos':
|
||||||
|
return '/Users/runner/hostedtoolcache'
|
||||||
|
case 'windows':
|
||||||
|
return 'C:\\hostedtoolcache\\windows'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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',
|
ruby: 'Ruby',
|
||||||
jruby: 'JRuby',
|
jruby: 'JRuby',
|
||||||
truffleruby: 'TruffleRuby',
|
truffleruby: 'TruffleRuby',
|
||||||
"truffleruby+graalvm": 'TruffleRubyGraalVM'
|
"truffleruby+graalvm": 'TruffleRubyGraalVM'
|
||||||
}[engine]
|
}[engine]
|
||||||
return path.join(toolCache, name, version, os.arch())
|
}
|
||||||
|
|
||||||
|
export function getToolCacheRubyPrefix(platform, engine, version) {
|
||||||
|
const toolCache = getToolCachePath()
|
||||||
|
return path.join(toolCache, engineToToolCacheName(engine), version, os.arch())
|
||||||
}
|
}
|
||||||
|
|
||||||
export function toolCacheCompleteFile(toolCacheRubyPrefix) {
|
export function toolCacheCompleteFile(toolCacheRubyPrefix) {
|
||||||
@@ -289,7 +373,8 @@ 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) {
|
const windowsToolchain = core.getInput('windows-toolchain')
|
||||||
|
if (windows && windowsToolchain !== 'none') {
|
||||||
// main Ruby dll determines whether mingw or ucrt build
|
// main Ruby dll determines whether mingw or ucrt build
|
||||||
msys2Type = rubyIsUCRT(newPathEntries[0]) ? 'ucrt64' : 'mingw64'
|
msys2Type = rubyIsUCRT(newPathEntries[0]) ? 'ucrt64' : 'mingw64'
|
||||||
|
|
||||||
|
|||||||
+2597
-5837
File diff suppressed because one or more lines are too long
@@ -16,6 +16,8 @@ const inputDefaults = {
|
|||||||
'bundler-cache': 'false',
|
'bundler-cache': 'false',
|
||||||
'working-directory': '.',
|
'working-directory': '.',
|
||||||
'cache-version': bundler.DEFAULT_CACHE_VERSION,
|
'cache-version': bundler.DEFAULT_CACHE_VERSION,
|
||||||
|
'self-hosted': 'false',
|
||||||
|
'windows-toolchain': 'default',
|
||||||
}
|
}
|
||||||
|
|
||||||
// entry point when this action is run on its own
|
// entry point when this action is run on its own
|
||||||
@@ -29,6 +31,9 @@ export async function run() {
|
|||||||
core.setFailed(error.stack)
|
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
|
// entry point when this action is run from other actions
|
||||||
@@ -39,10 +44,11 @@ export async function setupRuby(options = {}) {
|
|||||||
inputs[key] = core.getInput(key) || inputDefaults[key]
|
inputs[key] = core.getInput(key) || inputDefaults[key]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
common.inputs.selfHosted = inputs['self-hosted']
|
||||||
|
|
||||||
process.chdir(inputs['working-directory'])
|
process.chdir(inputs['working-directory'])
|
||||||
|
|
||||||
const platform = common.getVirtualEnvironmentName()
|
const platform = common.getOSNameVersion()
|
||||||
const [engine, parsedVersion] = parseRubyEngineAndVersion(inputs['ruby-version'])
|
const [engine, parsedVersion] = parseRubyEngineAndVersion(inputs['ruby-version'])
|
||||||
|
|
||||||
let installer
|
let installer
|
||||||
@@ -52,8 +58,14 @@ export async function setupRuby(options = {}) {
|
|||||||
installer = require('./ruby-builder')
|
installer = require('./ruby-builder')
|
||||||
}
|
}
|
||||||
|
|
||||||
const engineVersions = installer.getAvailableVersions(platform, engine)
|
let version
|
||||||
const version = validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVersion)
|
if (common.isSelfHostedRunner()) {
|
||||||
|
// The list of available Rubies in the hostedtoolcache is unrelated to getAvailableVersions()
|
||||||
|
version = parsedVersion
|
||||||
|
} else {
|
||||||
|
const engineVersions = installer.getAvailableVersions(platform, engine)
|
||||||
|
version = validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVersion)
|
||||||
|
}
|
||||||
|
|
||||||
createGemRC(engine, version)
|
createGemRC(engine, version)
|
||||||
envPreInstall()
|
envPreInstall()
|
||||||
@@ -73,7 +85,7 @@ export async function setupRuby(options = {}) {
|
|||||||
const rubygemsInputSet = inputs['rubygems'] !== 'default'
|
const rubygemsInputSet = inputs['rubygems'] !== 'default'
|
||||||
if (rubygemsInputSet) {
|
if (rubygemsInputSet) {
|
||||||
await common.measure('Updating RubyGems', async () =>
|
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
|
// When setup-ruby is used by other actions, this allows code in them to run
|
||||||
@@ -143,7 +155,7 @@ function validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVe
|
|||||||
if (!engineVersions.includes(parsedVersion)) {
|
if (!engineVersions.includes(parsedVersion)) {
|
||||||
const latestToFirstVersion = engineVersions.slice().reverse()
|
const latestToFirstVersion = engineVersions.slice().reverse()
|
||||||
// Try to match stable versions first, so an empty version (engine-only) matches the latest stable version
|
// 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) {
|
if (!found) {
|
||||||
// Exclude head versions, they must be exact matches
|
// Exclude head versions, they must be exact matches
|
||||||
found = latestToFirstVersion.find(v => !common.isHeadVersion(v) && v.startsWith(parsedVersion))
|
found = latestToFirstVersion.find(v => !common.isHeadVersion(v) && v.startsWith(parsedVersion))
|
||||||
@@ -153,11 +165,35 @@ function validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVe
|
|||||||
version = found
|
version = found
|
||||||
} 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`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Well known version-platform combinations which do not work:
|
||||||
|
if (engine === 'ruby' && platform.startsWith('macos') && os.arch() === 'arm64' && common.floatVersion(version) < 2.6) {
|
||||||
|
throw new Error(`CRuby < 2.6 does not support macos-arm64.
|
||||||
|
Either use a newer Ruby version or use a macOS image running on amd64, e.g., macos-13 or macos-12.
|
||||||
|
Note that GitHub changed the meaning of macos-latest from macos-12 (amd64) to macos-14 (arm64):
|
||||||
|
https://github.blog/changelog/2024-04-01-macos-14-sonoma-is-generally-available-and-the-latest-macos-runner-image/
|
||||||
|
|
||||||
|
If you are using a matrix of Ruby versions, a good solution is to run only < 2.6 on amd64, like so:
|
||||||
|
matrix:
|
||||||
|
ruby: ['2.4', '2.5', '2.6', '2.7', '3.0', '3.1', '3.2', '3.3']
|
||||||
|
os: [ ubuntu-latest, macos-latest ]
|
||||||
|
# CRuby < 2.6 does not support macos-arm64, so test those on amd64 instead
|
||||||
|
exclude:
|
||||||
|
- { os: macos-latest, ruby: '2.4' }
|
||||||
|
- { os: macos-latest, ruby: '2.5' }
|
||||||
|
include:
|
||||||
|
- { os: macos-13, ruby: '2.4' }
|
||||||
|
- { os: macos-13, ruby: '2.5' }
|
||||||
|
|
||||||
|
But of course you should consider dropping support for these long-EOL Rubies, which cannot even be built on recent macOS machines.`)
|
||||||
|
} else if (engine === 'truffleruby' && platform.startsWith('windows')) {
|
||||||
|
throw new Error('TruffleRuby does not currently support Windows.')
|
||||||
|
}
|
||||||
|
|
||||||
return version
|
return version
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,6 @@
|
|||||||
"@actions/io": "^1.1.2",
|
"@actions/io": "^1.1.2",
|
||||||
"@actions/tool-cache": "^2",
|
"@actions/tool-cache": "^2",
|
||||||
"linux-os-info": "^2.0.0",
|
"linux-os-info": "^2.0.0",
|
||||||
"macos-release": "^3.1.0",
|
|
||||||
"semver": "^7.3.7"
|
"semver": "^7.3.7"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
+17
@@ -0,0 +1,17 @@
|
|||||||
|
require 'json'
|
||||||
|
|
||||||
|
def run(command_line)
|
||||||
|
puts "$ #{command_line}"
|
||||||
|
output = `#{command_line}`
|
||||||
|
puts output
|
||||||
|
raise $?.inspect unless $?.success?
|
||||||
|
output
|
||||||
|
end
|
||||||
|
|
||||||
|
latest_release_tag = run 'gh release view --json tagName'
|
||||||
|
latest_release_tag = JSON.load(latest_release_tag).fetch('tagName')
|
||||||
|
|
||||||
|
raise latest_release_tag unless latest_release_tag =~ /\Av(\d+).(\d+).(\d+)\z/
|
||||||
|
tag = "v#{$1}.#{Integer($2)+1}.0"
|
||||||
|
|
||||||
|
run "gh release create --generate-notes --latest #{tag}"
|
||||||
@@ -8,17 +8,19 @@
|
|||||||
"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.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.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.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",
|
"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.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.0-preview1", "3.1.0", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6",
|
||||||
"3.2.0-preview1", "3.2.0-preview2", "3.2.0-preview3", "3.2.0-rc1", "3.2.0", "3.2.1",
|
"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.2.5",
|
||||||
"head", "debug"
|
"3.3.0-preview1", "3.3.0-preview2", "3.3.0-preview3", "3.3.0-rc1", "3.3.0", "3.3.1", "3.3.2", "3.3.3", "3.3.4", "3.3.5",
|
||||||
|
"3.4.0-preview1", "3.4.0-preview2",
|
||||||
|
"head", "debug", "asan"
|
||||||
],
|
],
|
||||||
"jruby": [
|
"jruby": [
|
||||||
"9.1.17.0",
|
"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.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.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.3.15.0",
|
||||||
"9.4.0.0", "9.4.1.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", "9.4.7.0", "9.4.8.0",
|
||||||
"head"
|
"head"
|
||||||
],
|
],
|
||||||
"truffleruby": [
|
"truffleruby": [
|
||||||
@@ -26,11 +28,15 @@
|
|||||||
"20.0.0", "20.1.0", "20.2.0", "20.3.0",
|
"20.0.0", "20.1.0", "20.2.0", "20.3.0",
|
||||||
"21.0.0", "21.1.0", "21.2.0", "21.2.0.1", "21.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",
|
"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", "24.0.2", "24.1.0", "24.1.1",
|
||||||
"head"
|
"head"
|
||||||
],
|
],
|
||||||
"truffleruby+graalvm": [
|
"truffleruby+graalvm": [
|
||||||
"21.2.0", "21.3.0",
|
"21.2.0", "21.3.0",
|
||||||
"22.0.0.2", "22.1.0", "22.2.0", "22.3.0", "22.3.1",
|
"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", "24.0.2", "24.1.0", "24.1.1",
|
||||||
"head"
|
"head"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-37
@@ -20,7 +20,7 @@ export function getAvailableVersions(platform, engine) {
|
|||||||
export async function install(platform, engine, version) {
|
export async function install(platform, engine, version) {
|
||||||
let rubyPrefix, inToolCache
|
let rubyPrefix, inToolCache
|
||||||
if (common.shouldUseToolCache(engine, version)) {
|
if (common.shouldUseToolCache(engine, version)) {
|
||||||
inToolCache = tc.find('Ruby', version)
|
inToolCache = common.toolCacheFind(engine, version)
|
||||||
if (inToolCache) {
|
if (inToolCache) {
|
||||||
rubyPrefix = inToolCache
|
rubyPrefix = inToolCache
|
||||||
} else {
|
} else {
|
||||||
@@ -28,8 +28,8 @@ export async function install(platform, engine, version) {
|
|||||||
if (common.isSelfHostedRunner()) {
|
if (common.isSelfHostedRunner()) {
|
||||||
const rubyBuildDefinition = engine === 'ruby' ? version : `${engine}-${version}`
|
const rubyBuildDefinition = engine === 'ruby' ? version : `${engine}-${version}`
|
||||||
core.error(
|
core.error(
|
||||||
`The current runner (${common.getOSNameVersionArch()}) was detected as self-hosted and not matching a GitHub-hosted runner image.\n` +
|
`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` +
|
`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` +
|
`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` +
|
`$ ruby-build ${rubyBuildDefinition} ${toolCacheRubyPrefix}\n` +
|
||||||
`Once that completes successfully, mark it as complete with:\n` +
|
`Once that completes successfully, mark it as complete with:\n` +
|
||||||
@@ -50,48 +50,36 @@ export async function install(platform, engine, version) {
|
|||||||
common.setupPath([path.join(rubyPrefix, 'bin')])
|
common.setupPath([path.join(rubyPrefix, 'bin')])
|
||||||
|
|
||||||
if (!inToolCache) {
|
if (!inToolCache) {
|
||||||
await preparePrefix(rubyPrefix)
|
await io.mkdirP(rubyPrefix)
|
||||||
if (engine === 'truffleruby+graalvm') {
|
await downloadAndExtract(platform, engine, version, rubyPrefix)
|
||||||
await installWithRubyBuild(engine, version, rubyPrefix)
|
}
|
||||||
} else {
|
|
||||||
await downloadAndExtract(platform, engine, version, rubyPrefix)
|
// 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
|
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)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function installWithRubyBuild(engine, version, rubyPrefix) {
|
|
||||||
const tmp = process.env['RUNNER_TEMP'] || os.tmpdir()
|
|
||||||
const rubyBuildDir = path.join(tmp, 'ruby-build-for-setup-ruby')
|
|
||||||
await common.measure('Cloning ruby-build', async () => {
|
|
||||||
await exec.exec('git', ['clone', 'https://github.com/rbenv/ruby-build.git', rubyBuildDir])
|
|
||||||
})
|
|
||||||
|
|
||||||
const rubyName = `${engine}-${version === 'head' ? 'dev' : version}`
|
|
||||||
await common.measure(`Installing ${engine}-${version} with ruby-build`, async () => {
|
|
||||||
await exec.exec(`${rubyBuildDir}/bin/ruby-build`, [rubyName, rubyPrefix])
|
|
||||||
})
|
|
||||||
|
|
||||||
await io.rmRF(rubyBuildDir)
|
|
||||||
}
|
|
||||||
|
|
||||||
async function downloadAndExtract(platform, engine, version, rubyPrefix) {
|
async function downloadAndExtract(platform, engine, version, rubyPrefix) {
|
||||||
const parentDir = path.dirname(rubyPrefix)
|
const parentDir = path.dirname(rubyPrefix)
|
||||||
|
|
||||||
const downloadPath = await common.measure('Downloading Ruby', async () => {
|
const downloadPath = await common.measure('Downloading Ruby', async () => {
|
||||||
const url = getDownloadURL(platform, engine, version)
|
const url = getDownloadURL(platform, engine, version)
|
||||||
console.log(url)
|
console.log(url)
|
||||||
return await tc.downloadTool(url)
|
try {
|
||||||
|
return await tc.downloadTool(url)
|
||||||
|
} catch (error) {
|
||||||
|
if (error.message.includes('404')) {
|
||||||
|
throw new Error(`Unavailable version ${version} for ${engine} on ${platform}
|
||||||
|
You can request it at https://github.com/ruby/setup-ruby/issues
|
||||||
|
Cause: ${error.message}`)
|
||||||
|
} else {
|
||||||
|
throw error
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
await common.measure('Extracting Ruby', async () => {
|
await common.measure('Extracting Ruby', async () => {
|
||||||
@@ -110,10 +98,14 @@ async function downloadAndExtract(platform, engine, version, rubyPrefix) {
|
|||||||
|
|
||||||
function getDownloadURL(platform, engine, version) {
|
function getDownloadURL(platform, engine, version) {
|
||||||
let builderPlatform = platform
|
let builderPlatform = platform
|
||||||
if (platform.startsWith('windows-')) {
|
if (platform.startsWith('windows-') && os.arch() === 'x64') {
|
||||||
builderPlatform = 'windows-latest'
|
builderPlatform = 'windows-latest'
|
||||||
} else if (platform.startsWith('macos-')) {
|
} 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)) {
|
if (common.isHeadVersion(version)) {
|
||||||
@@ -124,5 +116,9 @@ function getDownloadURL(platform, engine, version) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getLatestHeadBuildURL(platform, engine, version) {
|
function getLatestHeadBuildURL(platform, engine, version) {
|
||||||
return `https://github.com/ruby/${engine}-dev-builder/releases/latest/download/${engine}-${version}-${platform}.tar.gz`
|
var repo = `${engine}-dev-builder`
|
||||||
|
if (engine === 'truffleruby+graalvm') {
|
||||||
|
repo = 'truffleruby-dev-builder'
|
||||||
|
}
|
||||||
|
return `https://github.com/ruby/${repo}/releases/latest/download/${engine}-${version}-${platform}.tar.gz`
|
||||||
}
|
}
|
||||||
|
|||||||
+30
-2
@@ -1,8 +1,9 @@
|
|||||||
|
const common = require('./common')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const exec = require('@actions/exec')
|
const exec = require('@actions/exec')
|
||||||
const semver = require('semver')
|
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')
|
const gem = path.join(rubyPrefix, 'bin', 'gem')
|
||||||
|
|
||||||
let gemVersion = ''
|
let gemVersion = ''
|
||||||
@@ -18,7 +19,7 @@ export async function rubygemsUpdate(rubygemsVersionInput, rubyPrefix) {
|
|||||||
|
|
||||||
if (rubygemsVersionInput === 'latest') {
|
if (rubygemsVersionInput === 'latest') {
|
||||||
console.log('Updating RubyGems to latest version')
|
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)) {
|
} else if (semver.gt(rubygemsVersionInput, gemVersion)) {
|
||||||
console.log(`Updating RubyGems to ${rubygemsVersionInput}`)
|
console.log(`Updating RubyGems to ${rubygemsVersionInput}`)
|
||||||
await exec.exec(gem, ['update', '--system', rubygemsVersionInput])
|
await exec.exec(gem, ['update', '--system', rubygemsVersionInput])
|
||||||
@@ -28,3 +29,30 @@ export async function rubygemsUpdate(rubygemsVersionInput, rubyPrefix) {
|
|||||||
|
|
||||||
return true
|
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/] }
|
by_minor = versions[:ruby].group_by { |v| v[/^\d\.\d/] }
|
||||||
|
|
||||||
(1..7).each do |minor|
|
by_minor.each_pair do |minor, versions|
|
||||||
p by_minor["2.#{minor}"].map { |v| "ruby-#{v}" }
|
puts versions.map { |v| "ruby-#{v}" }.join(', ') if minor
|
||||||
end
|
end
|
||||||
|
|
||||||
puts
|
puts
|
||||||
p (versions[:truffleruby] - %w[head]).map { |v| "truffleruby-#{v}" }
|
puts (versions[:truffleruby] - %w[head]).map { |v| "truffleruby-#{v}" }.join(', ')
|
||||||
|
|
||||||
puts
|
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|
|
(versions[:jruby] - %w[head]).each do |v|
|
||||||
puts "- { os: windows-latest, jruby-version: #{v}, ruby: jruby-#{v} }"
|
puts "- { os: windows-latest, jruby-version: #{v}, ruby: jruby-#{v} }"
|
||||||
|
|||||||
@@ -41,18 +41,34 @@
|
|||||||
"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",
|
"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.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.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.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.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.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.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.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.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.1.6": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.6-1/rubyinstaller-3.1.6-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.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.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.2.5": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.5-1/rubyinstaller-3.2.5-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",
|
||||||
|
"3.3.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.2-1/rubyinstaller-3.3.2-1-x64.7z",
|
||||||
|
"3.3.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.3-1/rubyinstaller-3.3.3-1-x64.7z",
|
||||||
|
"3.3.4": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.4-1/rubyinstaller-3.3.4-1-x64.7z",
|
||||||
|
"3.3.5": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.5-1/rubyinstaller-3.3.5-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",
|
||||||
|
|||||||
+17
-29
@@ -20,8 +20,14 @@ const msys2GCCReleaseURI = 'https://github.com/ruby/setup-msys2-gcc/releases/do
|
|||||||
const msys2BasePath = process.env['GHCUP_MSYS2']
|
const msys2BasePath = process.env['GHCUP_MSYS2']
|
||||||
const vcPkgBasePath = process.env['VCPKG_INSTALLATION_ROOT']
|
const vcPkgBasePath = process.env['VCPKG_INSTALLATION_ROOT']
|
||||||
|
|
||||||
// needed for Ruby 2.0-2.3, and mswin, cert file used by Git for Windows
|
// needed for Ruby 2.0-2.3, cert file used by Git for Windows
|
||||||
const certFile = 'C:\\Program Files\\Git\\mingw64\\ssl\\cert.pem'
|
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
|
// location & path for old RubyInstaller DevKit (MSYS1), used with Ruby 2.0-2.3
|
||||||
const msys1 = `${drive}:\\DevKit64`
|
const msys1 = `${drive}:\\DevKit64`
|
||||||
@@ -49,7 +55,7 @@ export async function install(platform, engine, version) {
|
|||||||
|
|
||||||
let rubyPrefix, inToolCache
|
let rubyPrefix, inToolCache
|
||||||
if (common.shouldUseToolCache(engine, version)) {
|
if (common.shouldUseToolCache(engine, version)) {
|
||||||
inToolCache = tc.find('Ruby', version)
|
inToolCache = common.toolCacheFind(engine, version)
|
||||||
if (inToolCache) {
|
if (inToolCache) {
|
||||||
rubyPrefix = inToolCache
|
rubyPrefix = inToolCache
|
||||||
} else {
|
} else {
|
||||||
@@ -59,12 +65,17 @@ export async function install(platform, engine, version) {
|
|||||||
rubyPrefix = `${drive}:\\${base}`
|
rubyPrefix = `${drive}:\\${base}`
|
||||||
}
|
}
|
||||||
|
|
||||||
let toolchainPaths = (version === 'mswin') ? await setupMSWin() : await setupMingw(version)
|
|
||||||
|
|
||||||
if (!inToolCache) {
|
if (!inToolCache) {
|
||||||
await downloadAndExtract(engine, version, url, base, rubyPrefix);
|
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])
|
const msys2Type = common.setupPath([`${rubyPrefix}\\bin`, ...toolchainPaths])
|
||||||
|
|
||||||
// install msys2 tools for all Ruby versions, only install mingw or ucrt for Rubies >= 2.4
|
// install msys2 tools for all Ruby versions, only install mingw or ucrt for Rubies >= 2.4
|
||||||
@@ -97,7 +108,7 @@ async function installGCCTools(type, version) {
|
|||||||
// 2022-Dec ruby/msys2-gcc-pkgs now uses a suffix to delineate different archive versions.
|
// 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.
|
// 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
|
// 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
|
// As of Jan-2023, OpenSSL 3 is used in Ruby 3.2 & all head versions. MSYS2 updated
|
||||||
// to OpenSSL 3 on 14-Jan-2023.
|
// to OpenSSL 3 on 14-Jan-2023.
|
||||||
let suffix = ''
|
let suffix = ''
|
||||||
@@ -206,29 +217,6 @@ async function installMSYS1(version) {
|
|||||||
|
|
||||||
async function setupMSWin() {
|
async function setupMSWin() {
|
||||||
core.exportVariable('MAKE', 'nmake.exe')
|
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())
|
return await common.measure('Setting up MSVC environment', async () => addVCVARSEnv())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,25 +3,25 @@
|
|||||||
|
|
||||||
|
|
||||||
"@actions/cache@^3":
|
"@actions/cache@^3":
|
||||||
version "3.0.6"
|
version "3.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/@actions/cache/-/cache-3.0.6.tgz#b76c51a78c927fcf0eb631b96a07e34f575c422b"
|
resolved "https://registry.yarnpkg.com/@actions/cache/-/cache-3.2.2.tgz#e7bbb5f9b67c613f96f98f91506c69424c9aa288"
|
||||||
integrity sha512-Tttit+nqmxgb2M5Ufj5p8Lwd+fx329HOTLzxMrY4aaaZqBzqetgWlEfszMyiXfX4cJML+bzLJbyD9rNYt8TJ8g==
|
integrity sha512-6D0Jq5JrLZRQ3VApeQwQkkV20ZZXjXsHNYXd9VjNUdi9E0h93wESpxfMJ2JWLCUCgHNLcfY0v3GjNM+2FdRMlg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@actions/core" "^1.10.0"
|
"@actions/core" "^1.10.0"
|
||||||
"@actions/exec" "^1.0.1"
|
"@actions/exec" "^1.0.1"
|
||||||
"@actions/glob" "^0.1.0"
|
"@actions/glob" "^0.1.0"
|
||||||
"@actions/http-client" "^2.0.1"
|
"@actions/http-client" "^2.1.1"
|
||||||
"@actions/io" "^1.0.1"
|
"@actions/io" "^1.0.1"
|
||||||
"@azure/abort-controller" "^1.1.0"
|
"@azure/abort-controller" "^1.1.0"
|
||||||
"@azure/ms-rest-js" "^2.6.0"
|
"@azure/ms-rest-js" "^2.6.0"
|
||||||
"@azure/storage-blob" "^12.8.0"
|
"@azure/storage-blob" "^12.13.0"
|
||||||
semver "^6.1.0"
|
semver "^6.1.0"
|
||||||
uuid "^3.3.3"
|
uuid "^3.3.3"
|
||||||
|
|
||||||
"@actions/core@^1.10.0", "@actions/core@^1.2.6":
|
"@actions/core@^1.10.0", "@actions/core@^1.2.6":
|
||||||
version "1.10.0"
|
version "1.10.1"
|
||||||
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.10.0.tgz#44551c3c71163949a2f06e94d9ca2157a0cfac4f"
|
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.10.1.tgz#61108e7ac40acae95ee36da074fa5850ca4ced8a"
|
||||||
integrity sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==
|
integrity sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@actions/http-client" "^2.0.1"
|
"@actions/http-client" "^2.0.1"
|
||||||
uuid "^8.3.2"
|
uuid "^8.3.2"
|
||||||
@@ -41,17 +41,17 @@
|
|||||||
"@actions/core" "^1.2.6"
|
"@actions/core" "^1.2.6"
|
||||||
minimatch "^3.0.4"
|
minimatch "^3.0.4"
|
||||||
|
|
||||||
"@actions/http-client@^2.0.1":
|
"@actions/http-client@^2.0.1", "@actions/http-client@^2.1.1":
|
||||||
version "2.0.1"
|
version "2.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.0.1.tgz#873f4ca98fe32f6839462a6f046332677322f99c"
|
resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.1.1.tgz#a8e97699c315bed0ecaeaaeb640948470d4586a0"
|
||||||
integrity sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==
|
integrity sha512-qhrkRMB40bbbLo7gF+0vu+X+UawOvQQqNAA/5Unx774RS8poaOhThDOG6BGmxvAnxhQnDp2BG/ZUm65xZILTpw==
|
||||||
dependencies:
|
dependencies:
|
||||||
tunnel "^0.0.6"
|
tunnel "^0.0.6"
|
||||||
|
|
||||||
"@actions/io@^1.0.1", "@actions/io@^1.1.1", "@actions/io@^1.1.2":
|
"@actions/io@^1.0.1", "@actions/io@^1.1.1", "@actions/io@^1.1.2":
|
||||||
version "1.1.2"
|
version "1.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.2.tgz#766ac09674a289ce0f1550ffe0a6eac9261a8ea9"
|
resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.3.tgz#4cdb6254da7962b07473ff5c335f3da485d94d71"
|
||||||
integrity sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw==
|
integrity sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==
|
||||||
|
|
||||||
"@actions/tool-cache@^2":
|
"@actions/tool-cache@^2":
|
||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
@@ -73,17 +73,18 @@
|
|||||||
tslib "^2.2.0"
|
tslib "^2.2.0"
|
||||||
|
|
||||||
"@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.4.0"
|
version "1.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.4.0.tgz#6fa9661c1705857820dbc216df5ba5665ac36a9e"
|
resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.5.0.tgz#a41848c5c31cb3b7c84c409885267d55a2c92e44"
|
||||||
integrity sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ==
|
integrity sha512-udzoBuYG1VBoHVohDTrvKjyzel34zt77Bhp7dQntVGGD0ehVq48owENbBG8fIgkHRNUBQH5k1r0hpoMu5L8+kw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@azure/abort-controller" "^1.0.0"
|
"@azure/abort-controller" "^1.0.0"
|
||||||
|
"@azure/core-util" "^1.1.0"
|
||||||
tslib "^2.2.0"
|
tslib "^2.2.0"
|
||||||
|
|
||||||
"@azure/core-http@^2.0.0":
|
"@azure/core-http@^3.0.0":
|
||||||
version "2.3.1"
|
version "3.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/core-http/-/core-http-2.3.1.tgz#eed8a7d012ba8c576c557828f66af0fc4e52b23a"
|
resolved "https://registry.yarnpkg.com/@azure/core-http/-/core-http-3.0.3.tgz#792c0af7d8ebec7d34a99bbd7108aa370cd49948"
|
||||||
integrity sha512-cur03BUwV0Tbv81bQBOLafFB02B6G++K6F2O3IMl8pSE2QlXm3cu11bfyBNlDUKi5U+xnB3GC63ae3athhkx6Q==
|
integrity sha512-QMib3wXotJMFhHgmJBPUF9YsyErw34H0XDFQd9CauH7TPB+RGcyl9Ayy7iURtJB04ngXhE6YwrQsWDXlSLrilg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@azure/abort-controller" "^1.0.0"
|
"@azure/abort-controller" "^1.0.0"
|
||||||
"@azure/core-auth" "^1.3.0"
|
"@azure/core-auth" "^1.3.0"
|
||||||
@@ -95,25 +96,25 @@
|
|||||||
form-data "^4.0.0"
|
form-data "^4.0.0"
|
||||||
node-fetch "^2.6.7"
|
node-fetch "^2.6.7"
|
||||||
process "^0.11.10"
|
process "^0.11.10"
|
||||||
tough-cookie "^4.0.0"
|
|
||||||
tslib "^2.2.0"
|
tslib "^2.2.0"
|
||||||
tunnel "^0.0.6"
|
tunnel "^0.0.6"
|
||||||
uuid "^8.3.0"
|
uuid "^8.3.0"
|
||||||
xml2js "^0.4.19"
|
xml2js "^0.5.0"
|
||||||
|
|
||||||
"@azure/core-lro@^2.2.0":
|
"@azure/core-lro@^2.2.0":
|
||||||
version "2.4.0"
|
version "2.5.4"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/core-lro/-/core-lro-2.4.0.tgz#e3fdff797b045ee753aab25c3d2ecc0aa3e0a539"
|
resolved "https://registry.yarnpkg.com/@azure/core-lro/-/core-lro-2.5.4.tgz#b21e2bcb8bd9a8a652ff85b61adeea51a8055f90"
|
||||||
integrity sha512-F65+rYkll1dpw3RGm8/SSiSj+/QkMeYDanzS/QKlM1dmuneVyXbO46C88V1MRHluLGdMP6qfD3vDRYALn0z0tQ==
|
integrity sha512-3GJiMVH7/10bulzOKGrrLeG/uCBH/9VtxqaMcB9lIqAeamI/xYQSHJL/KcsLDuH+yTjYpro/u6D/MuRe4dN70Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@azure/abort-controller" "^1.0.0"
|
"@azure/abort-controller" "^1.0.0"
|
||||||
|
"@azure/core-util" "^1.2.0"
|
||||||
"@azure/logger" "^1.0.0"
|
"@azure/logger" "^1.0.0"
|
||||||
tslib "^2.2.0"
|
tslib "^2.2.0"
|
||||||
|
|
||||||
"@azure/core-paging@^1.1.1":
|
"@azure/core-paging@^1.1.1":
|
||||||
version "1.4.0"
|
version "1.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/core-paging/-/core-paging-1.4.0.tgz#b04a73ad18149733a848c3089a5e5ed144592338"
|
resolved "https://registry.yarnpkg.com/@azure/core-paging/-/core-paging-1.5.0.tgz#5a5b09353e636072e6a7fc38f7879e11d0afb15f"
|
||||||
integrity sha512-tabFtZTg8D9XqZKEfNUOGh63SuYeOxmvH4GDcOJN+R1bZWZ1FZskctgY9Pmuwzhn+0Xvq9rmimK9hsvtLkeBsw==
|
integrity sha512-zqWdVIt+2Z+3wqxEOGzR5hXFZ8MGKK52x4vFLw8n58pR6ZfKRx3EXYTxTaYxYHc/PexPUTyimcTWFJbji9Z6Iw==
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib "^2.2.0"
|
tslib "^2.2.0"
|
||||||
|
|
||||||
@@ -125,43 +126,42 @@
|
|||||||
"@opentelemetry/api" "^1.0.1"
|
"@opentelemetry/api" "^1.0.1"
|
||||||
tslib "^2.2.0"
|
tslib "^2.2.0"
|
||||||
|
|
||||||
"@azure/core-util@^1.1.1":
|
"@azure/core-util@^1.1.0", "@azure/core-util@^1.1.1", "@azure/core-util@^1.2.0":
|
||||||
version "1.1.1"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.1.1.tgz#8f87b3dd468795df0f0849d9f096c3e7b29452c1"
|
resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.4.0.tgz#c120a56b3e48a9e4d20619a0b00268ae9de891c7"
|
||||||
integrity sha512-A4TBYVQCtHOigFb2ETiiKFDocBoI1Zk2Ui1KpI42aJSIDexF7DHQFpnjonltXAIU/ceH+1fsZAWWgvX6/AKzog==
|
integrity sha512-eGAyJpm3skVQoLiRqm/xPa+SXi/NPDdSHMxbRAz2lSprd+Zs+qrpQGQQ2VQ3Nttu+nSZR4XoYQC71LbEI7jsig==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@azure/abort-controller" "^1.0.0"
|
"@azure/abort-controller" "^1.0.0"
|
||||||
tslib "^2.2.0"
|
tslib "^2.2.0"
|
||||||
|
|
||||||
"@azure/logger@^1.0.0":
|
"@azure/logger@^1.0.0":
|
||||||
version "1.0.3"
|
version "1.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.0.3.tgz#6e36704aa51be7d4a1bae24731ea580836293c96"
|
resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.0.4.tgz#28bc6d0e5b3c38ef29296b32d35da4e483593fa1"
|
||||||
integrity sha512-aK4s3Xxjrx3daZr3VylxejK3vG5ExXck5WOHDJ8in/k9AqlfIyFMMT1uG7u8mNjX+QRILTIn0/Xgschfh/dQ9g==
|
integrity sha512-ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib "^2.2.0"
|
tslib "^2.2.0"
|
||||||
|
|
||||||
"@azure/ms-rest-js@^2.6.0":
|
"@azure/ms-rest-js@^2.6.0":
|
||||||
version "2.6.2"
|
version "2.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-2.6.2.tgz#185a9d643ea55c696134af76a5c6026c94e26217"
|
resolved "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-2.7.0.tgz#8639065577ffdf4946951e1d246334ebfd72d537"
|
||||||
integrity sha512-0/8rOxAoR9M3qKUdbGOIYtHtQkm4m5jdoDNdxTU0DkOr84KwyAdJuW/RfjJinGyig4h73DNF0rdCl6XowgCYcg==
|
integrity sha512-ngbzWbqF+NmztDOpLBVDxYM+XLcUj7nKhxGbSU9WtIsXfRB//cf2ZbAG5HkOrhU9/wd/ORRB6lM/d69RKVjiyA==
|
||||||
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.7"
|
node-fetch "^2.6.7"
|
||||||
tough-cookie "^3.0.1"
|
|
||||||
tslib "^1.10.0"
|
tslib "^1.10.0"
|
||||||
tunnel "0.0.6"
|
tunnel "0.0.6"
|
||||||
uuid "^8.3.2"
|
uuid "^8.3.2"
|
||||||
xml2js "^0.4.19"
|
xml2js "^0.5.0"
|
||||||
|
|
||||||
"@azure/storage-blob@^12.8.0":
|
"@azure/storage-blob@^12.13.0":
|
||||||
version "12.12.0"
|
version "12.16.0"
|
||||||
resolved "https://registry.yarnpkg.com/@azure/storage-blob/-/storage-blob-12.12.0.tgz#25e277c885692d5adcd8c2a949789b2837a74c59"
|
resolved "https://registry.yarnpkg.com/@azure/storage-blob/-/storage-blob-12.16.0.tgz#c41fb1e538d6f6e2a6756bfcc69382eededf4fa1"
|
||||||
integrity sha512-o/Mf6lkyYG/eBW4/hXB9864RxVNmAkcKHjsGR6Inlp5hupa3exjSyH2KjO3tLO//YGA+tS+17hM2bxRl9Sn16g==
|
integrity sha512-jz33rUSUGUB65FgYrTRgRDjG6hdPHwfvHe+g/UrwVG8MsyLqSxg9TaW7Yuhjxu1v1OZ5xam2NU6+IpCN0xJO8Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@azure/abort-controller" "^1.0.0"
|
"@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-lro" "^2.2.0"
|
||||||
"@azure/core-paging" "^1.1.1"
|
"@azure/core-paging" "^1.1.1"
|
||||||
"@azure/core-tracing" "1.0.0-preview.13"
|
"@azure/core-tracing" "1.0.0-preview.13"
|
||||||
@@ -170,22 +170,22 @@
|
|||||||
tslib "^2.2.0"
|
tslib "^2.2.0"
|
||||||
|
|
||||||
"@opentelemetry/api@^1.0.1":
|
"@opentelemetry/api@^1.0.1":
|
||||||
version "1.3.0"
|
version "1.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.3.0.tgz#27c6f776ac3c1c616651e506a89f438a0ed6a055"
|
resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.6.0.tgz#de2c6823203d6f319511898bb5de7e70f5267e19"
|
||||||
integrity sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==
|
integrity sha512-OWlrQAnWn9577PhVgqjUvMr1pg57Bc4jv0iL4w0PRuOSRvq67rvHW9Ie/dZVMvCzhSCB+UxhcY/PmCmFj33Q+g==
|
||||||
|
|
||||||
"@types/node-fetch@^2.5.0":
|
"@types/node-fetch@^2.5.0":
|
||||||
version "2.6.2"
|
version "2.6.5"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da"
|
resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.5.tgz#972756a9a0fe354b2886bf3defe667ddb4f0d30a"
|
||||||
integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==
|
integrity sha512-OZsUlr2nxvkqUFLSaY2ZbA+P1q22q+KrlxWOn/38RX+u5kTkYL2mTujEpzUhGkS+K/QCYp9oagfXG39XOzyySg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
form-data "^3.0.0"
|
form-data "^4.0.0"
|
||||||
|
|
||||||
"@types/node@*":
|
"@types/node@*":
|
||||||
version "18.11.9"
|
version "20.6.2"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.6.2.tgz#a065925409f59657022e9063275cd0b9bd7e1b12"
|
||||||
integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==
|
integrity sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==
|
||||||
|
|
||||||
"@types/tunnel@^0.0.3":
|
"@types/tunnel@^0.0.3":
|
||||||
version "0.0.3"
|
version "0.0.3"
|
||||||
@@ -260,15 +260,6 @@ form-data@^2.5.0:
|
|||||||
combined-stream "^1.0.6"
|
combined-stream "^1.0.6"
|
||||||
mime-types "^2.1.12"
|
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:
|
form-data@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
|
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
|
||||||
@@ -278,11 +269,6 @@ form-data@^4.0.0:
|
|||||||
combined-stream "^1.0.8"
|
combined-stream "^1.0.8"
|
||||||
mime-types "^2.1.12"
|
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:
|
linux-os-info@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/linux-os-info/-/linux-os-info-2.0.0.tgz#32a251077c13af1a69dbcb36a168901208e32776"
|
resolved "https://registry.yarnpkg.com/linux-os-info/-/linux-os-info-2.0.0.tgz#32a251077c13af1a69dbcb36a168901208e32776"
|
||||||
@@ -295,11 +281,6 @@ lru-cache@^6.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
yallist "^4.0.0"
|
yallist "^4.0.0"
|
||||||
|
|
||||||
macos-release@^3.1.0:
|
|
||||||
version "3.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.1.0.tgz#6165bb0736ae567ed6649e36ce6a24d87cbb7aca"
|
|
||||||
integrity sha512-/M/R0gCDgM+Cv1IuBG1XGdfTFnMEG6PZeT+KGWHO/OG+imqmaD9CH5vHBTycEM3+Kc4uG2Il+tFAuUWLqQOeUA==
|
|
||||||
|
|
||||||
mime-db@1.52.0:
|
mime-db@1.52.0:
|
||||||
version "1.52.0"
|
version "1.52.0"
|
||||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
|
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
|
||||||
@@ -320,9 +301,9 @@ minimatch@^3.0.4:
|
|||||||
brace-expansion "^1.1.7"
|
brace-expansion "^1.1.7"
|
||||||
|
|
||||||
node-fetch@^2.6.7:
|
node-fetch@^2.6.7:
|
||||||
version "2.6.7"
|
version "2.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
|
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
|
||||||
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
|
integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
|
||||||
dependencies:
|
dependencies:
|
||||||
whatwg-url "^5.0.0"
|
whatwg-url "^5.0.0"
|
||||||
|
|
||||||
@@ -331,62 +312,23 @@ process@^0.11.10:
|
|||||||
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
|
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
|
||||||
integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
|
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:
|
sax@>=0.6.0:
|
||||||
version "1.2.4"
|
version "1.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
|
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
|
||||||
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
|
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
|
||||||
|
|
||||||
semver@^6.1.0:
|
semver@^6.1.0:
|
||||||
version "6.3.0"
|
version "6.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
|
||||||
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
|
||||||
|
|
||||||
semver@^7.3.7:
|
semver@^7.3.7:
|
||||||
version "7.3.8"
|
version "7.5.4"
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
|
||||||
integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
|
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
|
||||||
dependencies:
|
dependencies:
|
||||||
lru-cache "^6.0.0"
|
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:
|
tr46@~0.0.3:
|
||||||
version "0.0.3"
|
version "0.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
|
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
|
||||||
@@ -398,28 +340,15 @@ tslib@^1.10.0:
|
|||||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||||
|
|
||||||
tslib@^2.2.0:
|
tslib@^2.2.0:
|
||||||
version "2.4.1"
|
version "2.6.2"
|
||||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
|
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
|
||||||
integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
|
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
|
||||||
|
|
||||||
tunnel@0.0.6, tunnel@^0.0.6:
|
tunnel@0.0.6, tunnel@^0.0.6:
|
||||||
version "0.0.6"
|
version "0.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c"
|
resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c"
|
||||||
integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==
|
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:
|
uuid@^3.3.2, uuid@^3.3.3:
|
||||||
version "3.4.0"
|
version "3.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
|
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
|
||||||
@@ -443,10 +372,10 @@ whatwg-url@^5.0.0:
|
|||||||
tr46 "~0.0.3"
|
tr46 "~0.0.3"
|
||||||
webidl-conversions "^3.0.0"
|
webidl-conversions "^3.0.0"
|
||||||
|
|
||||||
xml2js@^0.4.19:
|
xml2js@^0.5.0:
|
||||||
version "0.4.23"
|
version "0.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66"
|
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.5.0.tgz#d9440631fbb2ed800203fad106f2724f62c493b7"
|
||||||
integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==
|
integrity sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==
|
||||||
dependencies:
|
dependencies:
|
||||||
sax ">=0.6.0"
|
sax ">=0.6.0"
|
||||||
xmlbuilder "~11.0.0"
|
xmlbuilder "~11.0.0"
|
||||||
|
|||||||
Reference in New Issue
Block a user